2022-12-08 03:55:55 Was -4*C this morning driving to work 2022-12-08 03:56:50 Were you in warp drive or something? 2022-12-08 03:57:05 -4 * C sounds like some serious hyperspace shenanigans. 2022-12-08 04:04:34 Hehe 2022-12-08 04:05:03 He took the shortest path straight through a black hole :D 2022-12-08 04:14:19 I think at this point I would have saved time looking up the degrees symbol 2022-12-08 04:14:53 And denied us the opportunity to poke fun? For shame. 2022-12-08 04:15:19 Actually my message is related to today's XKCD 2022-12-08 04:15:37 Ah, I see. I don't read it. 2022-12-08 04:16:07 He still makes those? 2022-12-08 04:16:23 Not on purpose though 2022-12-08 04:16:52 Cringeworthiness springs eternal. 2022-12-08 04:17:02 Every 5th one is sort of funny, it's always been the way. Ones that aren't funny are at least interesting usually 2022-12-08 04:17:22 It's probably the least cringey webcomic though 2022-12-08 04:17:25 The bar is not high 2022-12-08 04:18:10 Hehe 2022-12-08 04:18:14 Oatmeal t ho 2022-12-08 04:18:15 There used to be one or two clever ones, mostly dark humour, but they're also prolific with it these days, as well. 2022-12-08 04:18:15 tho 2022-12-08 04:18:33 Oatmeal is hit or miss. Same with SMBC. 2022-12-08 04:18:57 Though I haven't read either in a few years now. 2022-12-08 04:19:55 Wondermark can still be funny occasionally. 2022-12-08 07:42:45 oh noe 2022-12-08 07:42:53 64 nicks here, 300+ nicks in #lisp D: 2022-12-08 07:43:16 Lemme troll them and see 2022-12-08 08:06:40 We don't still have a nick limit I hope 2022-12-08 08:14:00 no nick limit here 2022-12-08 08:54:25 Thanks 2022-12-08 08:54:36 Sorry I forget how to check, I know can be done with ChanServ 2022-12-08 09:20:43 So, the other day I mentioned the possibility of keeping things like strings and arrays in a "ring buffer" that wrapped around on itself, and didn't really have explicit notions of garbage collection and other "management" associated with it. Correct operation would be achieved by simply making it "big enough." Are there any extant languages that operate in anything like this way? I'm not aware of any, and 2022-12-08 09:20:45 given that it doesn't have "provable correctness" (you could always define a problem large enough to break it), I figure there may not be. On the other hand, sometimes I think everything has been tried at some point or another. 2022-12-08 09:21:49 640 processor registers ought to be enough for anyone 2022-12-08 09:22:45 Is that a joke, or is there actually a processor with that many? Yeah - one would think that would cover most needs. 2022-12-08 09:23:22 registers do not really have GC and provided there are enough of them ... 2022-12-08 09:25:47 Well, it's slightly different, though. A register will always have the last value you put into it. But this setup I'm picturing will place large structures in that buffer and hand you back an address to it on the regular stack. For a while, that value will be good, but once the buffer wraps and re-uses that RAM, you might still have that address on the stack but it's totally bogus now. 2022-12-08 09:26:06 The idea would be to be done with whatever you were doing before your pointers became stale. 2022-12-08 09:26:32 it's fine, until it isn't (like many things in computing) 2022-12-08 09:27:46 Sure. I think it could be made to work ok for a lot of applications. I just wondered if there are any systems that take that approach. 2022-12-08 09:32:24 I've looked at ring buffers for game energy systems and ring buffers while fast are pretty inflexible so if you need something more complicated uh rewrite 2022-12-08 09:37:13 "Is that a joke, or is there..." <- one exists with 1024 2022-12-08 09:37:22 Yeah - the payoff of it would be that really almost no management overhead would be required. I guess it's an extension of the PAD idea - PAD is using unallocated RAM. 2022-12-08 09:37:32 Wow, that is quite a lot. 2022-12-08 09:37:54 Are they individually referenced by name or index, or do they have some sort of "automation" layered on them? 2022-12-08 09:38:39 Or, I guess, do they present a standard register interface, or do you treat it like a small cache? 2022-12-08 09:39:41 both 2022-12-08 09:39:47 cant remember the name now 2022-12-08 09:44:18 Anyway, what's motivating me here is just to be able to deal with data that won't "fit" on the stack, while keeping the "operational flavor" of the system as close to normal Forth as possible. 2022-12-08 09:45:43 But I also want the operation of it to work with that ropes memory management I've talked about as well. Steps on a path. 2022-12-08 09:47:03 Adding the ropes would mean explicitly managing the allocation and deletion of items, which would allow items to stick around long term if I needed them to. But otherwise it would "work the same." 2022-12-08 09:48:43 I think having 64 bit processors makes this more attractive - that's enough to let you use some bits of an address item to carry other information. On narrower processors it would chew up an awful lot of your address space. 64 has room to spare. 2022-12-08 09:49:47 Might urn into trouble, depending on how hte OS you're running under manages the address space. I don't know - maybe Linux uses some of those high bits for something. 2022-12-08 09:50:23 Just because I only have 16 GB of RAM doesn't mean that my addresses are all zero above bit 33. 2022-12-08 09:51:07 6502 sort-of has 128 pseudo-registers 2022-12-08 09:54:59 I guess what defines the difference between a "register system" and a "memory system" for me is that register specifications are hard-coded into machine instructions, and that there's no notion of a "pointer" to a register. 2022-12-08 09:55:10 Not just fast vs. slow. 2022-12-08 09:55:42 I.e., the registers have no "adjacency" characteristics. 2022-12-08 09:58:03 If someone wanted to, they could have their registers just be the first few cells of RAM, and provide a mechanism for "short addresses" that instructions could use. So everything would look like a RAM reference, but you'd still get more compact instructions and faster hardware speed when you referenced those instead of addresses that went to physical RAM. 2022-12-08 09:59:11 That would actually make for some interesting addressing modes - you always want a way to use the value in a register as an address, but once you had that then you could use the value in any RAM cell as an address. The instruction would just be bigger if you used a "real RAM" address. 2022-12-08 10:01:32 Well you can hard-code an address into an instruction 2022-12-08 10:01:48 And hard-code a byte address into 6502 instructions 2022-12-08 10:02:07 Yeah; it just seems like the whole thing would be a little more "unified" with the setup I just described. 2022-12-08 10:02:09 It's all a bit arbitrary IMO 2022-12-08 10:02:23 It is, for sure. Hardware can be designed to do damn near anything. 2022-12-08 10:02:37 Most arch's have a "short address" mechanism like you've described 2022-12-08 10:02:47 And 6502 had such a mechanism too for the zero page 2022-12-08 10:02:58 Yes; I guess I was thinking of a "really short" one. :-) 2022-12-08 10:03:05 Like five bits or soemthing. 2022-12-08 10:03:08 KipIngram: The normal way is probably to use a big enough pool instead of a ring buffer 2022-12-08 10:03:12 I hate it when addresses short out 2022-12-08 10:03:44 At least, I can't see any obvious benefit to a ring compared to pool/region 2022-12-08 10:03:54 Well, with a ring you never "run out." Basically it would be treated like a pool. 2022-12-08 10:04:24 In both cases you "must" know you upper bound/worst case 2022-12-08 10:04:34 But a pool can abort 2022-12-08 10:04:39 probably depends on how bad the overwrites or blocking until something frees up problems are 2022-12-08 10:04:40 Abort > silent error 2022-12-08 10:04:56 Silent error is more forthy 2022-12-08 10:05:02 Sure, and with a ring you would have to watch out for whether the item you're processing now will fit in "the last part"; should you wrap now or wait? 2022-12-08 10:05:19 I wouldn't likely try to allow a data item to internally wrap. 2022-12-08 10:05:41 Because then I'd have to consider that possibility every time I dealt with any item. 2022-12-08 10:06:06 veltas: X) 2022-12-08 10:06:41 I guess a ring could be more performant if upper bound is indeed known 2022-12-08 10:06:49 So I'd probably want to parse items fully, so I knew how big they were, before putting them in the ring. Or else be prepared to do some kind of "Oops, I'm out of space; copy the first part of this one back to the bottom" sort of thing. 2022-12-08 10:06:51 And it's not too different from average case 2022-12-08 10:07:09 Then again, to free a pool is O(1), no? 2022-12-08 10:07:40 probably really good in a simple system where you can prove, block, or don't care about overwrites 2022-12-08 10:07:41 Yah, a simple fixed size memory manager isn't that expensive. 2022-12-08 10:08:03 could be the very wrong abstraction when those do not hold 2022-12-08 10:08:17 Unfortunately there's never a guarantee you can use specific address ranges, even on Linux. Can still do what you describe allocating pages though, just need to map the page number somewhere 2022-12-08 10:08:49 I agree with olle in principle 2022-12-08 10:08:59 Yeah, the issue with address bits comes in not from having a ring, but from attempting to "tag" stack items with type-like information in the high bits. 2022-12-08 10:09:19 separate concept 2022-12-08 10:10:23 The way I'd like for that to work would be to be able to take such an item, mask off the top eight bits or something, and have the address of the object. 2022-12-08 10:11:53 And whatever the "normal" state of those high bits is (I've usually assumed it's zero, but it's really whatever your system gives you), that would be the "type" for integer. So that normal Forth operation would automatically give you a correct type field up there for regular stack items. 2022-12-08 10:12:57 Well, that requires those bits be zero, I guess. You'd use tag 0 and tag FF both to specify "integer," so that both positive and negative integers "looked right" to the type system. 2022-12-08 10:13:54 Anyway, that's a digression from the earlier topic. 2022-12-08 10:16:58 You wanna box your stuff? 2022-12-08 10:17:13 ? 2022-12-08 10:17:22 Box types for gc 2022-12-08 10:17:25 boxed values 2022-12-08 10:18:33 Oh. Well, I don't know what that entails really; I've just tried at times to think of a way to extend Forth to be able to do things similar to Octave. Manipulate vectors and arrays, primarily, in some graceful fashion. 2022-12-08 10:18:56 These days that entails having stack items carry the address and type of the objects they reference, and the items themselves would live in some sort of heap. 2022-12-08 10:19:18 The ropes stuff and the ring buffer are just alternate ways of providing that heap, with different effort/performance tradeoff. 2022-12-08 10:20:02 In past years I've also thought about having a separate, explicit "type stack," but at the moment I'm more focused on trying to keep the information in the normal stack along with the values. 2022-12-08 10:21:27 OCaml marks ONE bit for boxed vs unboxed 2022-12-08 10:21:40 So ints are 31 bits I think 2022-12-08 10:25:23 Interesting. I gotta shove off for the office - back later on. 2022-12-08 10:25:46 \o 2022-12-08 10:40:43 Is 8th needed? 2022-12-08 10:40:55 Not sure why implementor didn't work on "normal" Forth instead 2022-12-08 11:34:04 Ron (the developer of 8th) used to develop a more traditional Forth called Reva 2022-12-08 11:34:22 https://ronware.org/dev/p.sh/reva/home 2022-12-08 11:38:54 I thought 8th was "like forth but not forth" 2022-12-08 12:07:14 crc: that still doesn't explain why not use an existing system 2022-12-08 13:24:34 8th has things (like actual data types) that break with traditional forth 2022-12-08 13:29:01 two forum posts re the background & differences are at https://8th-dev.com/forum/index.php/topic,714.0.html and https://8th-dev.com/forum/index.php/topic,94.0.html 2022-12-08 14:45:03 What's the copyright(s) for Vierte Dimension anyways? Is it libre? Or they just made their archives open to all? 2022-12-08 15:15:01 crc: You can't implement that inside classic Forth? 2022-12-08 15:21:58 crc: Meh, those pages look like ad for Java >< 2022-12-08 15:22:30 You could implement it inside a forth but that's just yet another layer 2022-12-08 15:22:35 Not good for performance etc 2022-12-08 15:24:16 Better than splitting the eco-system once again... :| 2022-12-08 15:24:48 Well Forth's incredibly split, you either do standard forth or you do whatever you want 2022-12-08 15:25:02 That's sad 2022-12-08 15:25:03 And people do 2022-12-08 15:25:18 No strong leadership? 2022-12-08 15:25:21 Well even Chuck Moore doesn't do standard forths 2022-12-08 15:25:42 I suppose part of the problem is he went off to focus on hardware for a while 2022-12-08 15:26:15 :d 2022-12-08 15:30:06 I use a non-standard dialect of Forth; I wouldn't be happy using an ANS Forth 2022-12-08 15:30:40 Yeah part of the problem with the standard is that it isn't good, it has tons of history in it and the new stuff doesn't really fit with the old that well 2022-12-08 15:30:57 I don't think the standards have ever done a good job unifying what people were doing, even back in the old days 2022-12-08 15:31:13 Which is why the early standards contain a lot of stuff that never made it into ANS 2022-12-08 15:32:06 But there is an aspect to forth of creating your own language, so it's natural that many dialects exist and is sort of intentional 2022-12-08 15:32:13 Forth is more of an idea than a language 2022-12-08 15:34:02 Sucks 2022-12-08 15:34:16 You pick a language because of the eco system 2022-12-08 15:34:36 Well you either work with standard Forth or you don't 2022-12-08 15:34:51 Just because people do non-standard forths doesn't mean you can't stick within the standard ecosystem 2022-12-08 15:35:04 Kinda besides the point 2022-12-08 15:35:56 I use my own ecosystem 2022-12-08 15:36:04 Everyone does xD 2022-12-08 15:36:05 For standard forths there's a website for forth packages, not sure what that's like 2022-12-08 15:36:07 In Forht-land 2022-12-08 15:36:15 There's the gforth community, there are the corporate forths 2022-12-08 15:36:44 That's all standard (or rather supports standard forth, they all extend it as well) 2022-12-08 15:36:55 My forth for the ZX Spectrum is ANS standard(ish) 2022-12-08 15:37:03 There's loads of standard stuff 2022-12-08 15:37:13 So let people do non-standard stuff, it's up to them 2022-12-08 15:38:14 If you want to try and work to build up the largest forth group then yes, use the standard 2022-12-08 15:38:48 Not everyone has that goal, it's my goal, I don't mind the old-fasioned forth style so I stick to that with what the standard supports 2022-12-08 15:45:01 Ya sure 2022-12-08 15:45:09 olle: It's not too hard to use C stuff in gforth and some other standard forths, so your 'ecosystem' is the largest one there is ... the C ecosystem 2022-12-08 15:45:18 Well 2022-12-08 15:45:18 If you want it 2022-12-08 15:49:08 olle: And then another point is that if you understand "the forth way" you know you don't *need* an ecosystem for a lot of worthy tasks anyway 2022-12-08 15:49:28 Just write your own code, keep it simple, minimise the requirements 2022-12-08 15:50:18 I've heard that :) But it's a death sentence for a language's growth potential 2022-12-08 15:50:30 Doomed to be esoteric 2022-12-08 15:50:37 Forth is actually growing though, recently 2022-12-08 15:50:51 All languages are growing, because devs are getting more 2022-12-08 15:51:05 I don't doubt it won't become a top 10 language 2022-12-08 15:51:14 And neither will its ideas 2022-12-08 15:51:31 The ideas are more applicable IMO, and learning Forth will help you understand a bit about how to program 2022-12-08 15:51:38 It's impacted my programming anyway 2022-12-08 15:52:22 Of course 2022-12-08 15:53:10 The embedded sphere would be better off if more people knew Forth, even if they didn't use it 2022-12-08 15:56:32 I was told forth was best lang out there for eDSL :D 2022-12-08 15:56:51 Probably it is 2022-12-08 15:56:53 That or lisp 2022-12-08 15:57:13 Ye, but lips is not that interesting for me actually, dunno why 2022-12-08 15:57:16 lisp* 2022-12-08 15:57:37 Then you google for "forth embedded dsl" - nothing xD 2022-12-08 15:57:47 But I like what I've learned so far 2022-12-08 16:00:42 The 'DSL's in forth are more like libraries really 2022-12-08 16:01:00 I still need to learn more 2022-12-08 16:01:05 About DOES> etc 2022-12-08 16:01:25 It's been said before on here that Forth isn't really a DSL creator, it can probably do a better job simulating that than a lot of other older languages 2022-12-08 16:01:26 And compare with query builder in PHP/Java and SQL eDSL in Forth 2022-12-08 16:01:32 But it's not usually used that way 2022-12-08 16:01:40 Yes, the embedded sphere WOULD be better off if more people knew Forth. 2022-12-08 16:01:56 would/could/should :) 2022-12-08 16:02:43 olle: Have you considered trying advent of code in Forth? 2022-12-08 16:03:11 The last two years me and some people did the first few problems in forth 2022-12-08 16:03:20 DOES> is pretty simple. You can define a new word foo which itself isused to create new words. The CREATE part of foo's definition specifies what memory gets allocated for the words foo creates, and the DOES> part specifies what those words (that foo creates) DO when you execute them. 2022-12-08 16:03:23 This year I wanted to focus on other things but I don't mind helping you attempt problems 2022-12-08 16:03:25 veltas: I'm going through rosetta code, slowly 2022-12-08 16:03:33 Your choice 2022-12-08 16:03:39 Still a noob 2022-12-08 16:03:40 : foo CREATE ...allocate memory... DOES> ...actions... ; 2022-12-08 16:03:43 foo bar 2022-12-08 16:03:49 You mean implementing rosetta code? 2022-12-08 16:03:56 bar has the memory you allocated, and does the actions when you run it. 2022-12-08 16:03:57 veltas: Just reading it so far 2022-12-08 16:04:08 Don't read: do 2022-12-08 16:04:10 Best way to learn 2022-12-08 16:04:11 KipIngram: Seems like there are lots of ways to explain the create does> thing :D 2022-12-08 16:04:12 The address of bar's memory is first placed on the stack by the system, and then the actions are executed. 2022-12-08 16:04:29 Yeah, probably. 2022-12-08 16:04:30 It's like monads in haskell haha 2022-12-08 16:04:38 One blog post per developer 2022-12-08 16:05:08 if blocks (forth file system) implemented directories, I am curious to know how they would be.. 2022-12-08 16:05:22 : CONSTANT CREATE , DOES> @ ; 2022-12-08 16:05:31 What's , ? 2022-12-08 16:05:48 dude, read starting forth.. 2022-12-08 16:05:51 writes a cell to HERE and increments HERE 2022-12-08 16:05:53 BLOCK just doesn't offer that sort of structure. So "if" it did that, it would "be" any way you wrote it to be - it's nonexistent functionality. 2022-12-08 16:05:54 haha trying to 2022-12-08 16:06:01 olle: Append a number to dictionary 2022-12-08 16:06:33 joe9: I have encouraged olle to ask dumb questions in here :P 2022-12-08 16:07:22 joe9: There are 'directories' in blocks, they list ranges of blocks implementing different things 2022-12-08 16:07:23 Bigger communities sometimes split beginner channels 2022-12-08 16:07:51 That's not "in BLOCK." It's just part of the data you choose to put into some of your blocks. 2022-12-08 16:08:00 Usually just code the gets directories, there are commands that will also list the first line of many blocks, so the first line usually contains the 'name' of the block or a relevant comment 2022-12-08 16:08:22 Of course that's what a directory is in any file system. It's a file that lists the names and locations of other files. 2022-12-08 16:08:24 There's no one way to do it 2022-12-08 16:09:05 id implement it as a string field and a pointer field 2022-12-08 16:09:15 this makes it a graph rather than a tree but w/e 2022-12-08 16:09:25 I've thought a fair bit about using b-trees to do a file system. 2022-12-08 16:09:31 looks like it would work fairly well. 2022-12-08 16:09:31 aren't some fs done as trees? 2022-12-08 16:09:37 Yes. 2022-12-08 16:09:38 HAMMER or HAMMER2? 2022-12-08 16:09:41 I'd think most of them. 2022-12-08 16:09:46 Right 2022-12-08 16:09:52 All filesystems are trees, what do you think a filesystem structure is? It's a big tree... 2022-12-08 16:10:11 Most things we refer to as a 'file system' is a tree 2022-12-08 16:10:23 But the unix file system actually isn;t 2022-12-08 16:10:26 due to hard links 2022-12-08 16:10:31 If your filesystem structure is just "files are lists of blocks, directories are lists of files" then it is still a tree 2022-12-08 16:10:41 Yes technically eris[m] it's more complicated than a tree 2022-12-08 16:10:44 But you know what I mean 2022-12-08 16:10:46 eris: Good point. 2022-12-08 16:11:03 Afaik it's a DAG or a full graph 2022-12-08 16:11:10 veltas: that assumes you can't create cycles 2022-12-08 16:11:22 I know what a tree is 2022-12-08 16:11:36 As soon as a directory can have a directory that's above it in the hierarchy, it stops being a tree 2022-12-08 16:12:17 Then don't allow that, or do if you don't mind it not being a tree 2022-12-08 16:12:52 yea 2022-12-08 16:12:56 As long as everyone online is disagreeing on semantic details, I'm happy 2022-12-08 16:13:00 Lmao 2022-12-08 16:13:16 This is why you can't "link" directories, you can only move, create, or delete empty ones 2022-12-08 16:13:35 I have written a filesystem so I feel a little like I'm being taught to suck eggs 2022-12-08 16:13:47 ? 2022-12-08 16:13:50 Why? 2022-12-08 16:14:16 Need a more specific question 2022-12-08 16:14:39 Well I don't need it at all, but I am not going to guess at what you're asking 2022-12-08 16:15:05 Why write your own fs? 2022-12-08 16:15:22 I wrote it for work, it solved requirements that no open source solution could solve 2022-12-08 16:15:47 Specifically it was designed for a very small space, and optimised for very small files 2022-12-08 16:15:58 i.e. not just padding each file to 512 bytes 2022-12-08 16:16:38 Right, embedded 2022-12-08 16:16:40 Or? 2022-12-08 16:16:44 Yes 2022-12-08 16:16:54 That's like being a real programmer 2022-12-08 16:18:35 And my understanding of Forth influenced the design 2022-12-08 16:18:51 and the implementation 2022-12-08 16:18:58 even though it was written in C 2022-12-08 16:20:27 veltas: Subset of C? 2022-12-08 16:28:41 No 2022-12-08 16:28:56 I wrote the filesystem thing in C 2022-12-08 16:37:13 Hm 2022-12-08 16:37:20 Is that even safe? ^^' 2022-12-08 16:44:30 I write 'safe code' i.e. not horrific to start with, and test a lot, so it's reasonable 2022-12-08 16:45:13 Got it :) 2022-12-08 16:45:42 Trust me the bar's not high, I've read source code for firmware that's probably on some computers you own (not my company) and it wouldn't hold up to casual open source scrutiny 2022-12-08 16:45:48 Yet alone a proper security review 2022-12-08 16:50:02 I guess 2022-12-08 16:50:17 People do medical research on our PHP 4-based application 2022-12-08 16:50:40 But age is one of the best betrics for decreased fault density 2022-12-08 16:50:41 Not surprised 2022-12-08 16:50:59 It's just not a good metric for changeability :) 2022-12-08 16:51:18 But not all domains require changes 2022-12-08 16:51:33 True 2022-12-08 16:51:44 Work with what you have, don't throw the baby out with the bathwater 2022-12-08 16:51:53 But when you can, sure, simplify stuff 2022-12-08 16:52:00 Without ruining your business case in the process 2022-12-08 16:52:40 I look after several hundred mission-critical Windows XP boxes 2022-12-08 16:52:42 2022-12-08 16:53:00 XP? 2022-12-08 16:53:03 yup 2022-12-08 16:53:08 ooold 2022-12-08 16:53:12 latest version of Windows that this stuff will run on 2022-12-08 16:53:21 Hehe 2022-12-08 16:53:38 trying to explain to $new_guy who is complaining that the manual I gave him is 14 years out of date that yes, it's 14 years out of date, and we're running the newest stuff 2022-12-08 16:53:50 veltas: We're doing refactoring, but it's a question of budget too. It pays the salaries, I guess. 2022-12-08 16:54:34 I'm fighting with our latest senior that no, we can't move everything to Symfony in a reasonable budget 2022-12-08 16:54:46 Well advantage of refactoring is it makes for easier changes in future, you can't predict future requirements 2022-12-08 16:55:08 Interface defs "should" be stable..... 2022-12-08 16:55:22 But again depends on how the domain changes 2022-12-08 16:55:35 Our doesn't change at all, so 2022-12-08 16:55:52 Do you have your own adhoc framework at the moment? 2022-12-08 16:56:14 veltas: A team migrated it 80% to Yii during google summer of code :) 2022-12-08 16:56:28 We're still working on that, hehe 2022-12-08 16:56:40 Really it's a victim of its own success 2022-12-08 16:58:29 Well at least they're both open source frameworks 2022-12-08 17:00:45 Sure sure 2022-12-08 17:00:53 If I hear "port this to that framework" I'm really hearing "integrate this 100000 lines of code into your codebase" 2022-12-08 17:01:09 If it's open source at least I can fix it when it inevitably goes wrong 2022-12-08 17:01:52 We did a bootstrap conversion this year. We had a senior meeting today where I wanted to discuss the decision that led to the migration. 2022-12-08 17:02:01 "I though it would be faster" 2022-12-08 17:02:11 Hindsight is 20/20 2022-12-08 17:02:13 Easy to profile this 2022-12-08 17:02:36 Faster to render or faster to design? 2022-12-08 17:02:44 Neither 2022-12-08 17:02:53 An imagined security issue 2022-12-08 17:03:05 And some other stuff. Some kind of group thinking in the end. 2022-12-08 17:03:23 Basically they wanted to use the flashy thing 2022-12-08 17:03:40 Or emotional decision making from the CTO. Maybe he panicked from the security report we got from the outside. 2022-12-08 17:03:52 It was incorrect in the end. 2022-12-08 17:06:01 It is a constant difficulty figuring out what matters as an engineer 2022-12-08 17:06:16 I try to apply risk assessment 2022-12-08 17:06:25 Usually the group will make the wrong decision 2022-12-08 17:06:26 But even so, yeah, it's hard 2022-12-08 17:06:48 Group psychology is a very specific thing 2022-12-08 17:07:06 And tied up to company culture 2022-12-08 17:07:21 I think having outsiders look at your shit might be the only way 2022-12-08 17:07:51 Like when a company engineer a bridge or tunnel. A completely separate company will also do an analysis on the design. Or so I've heard. 2022-12-08 17:07:57 It's called seeing the wood for the trees 2022-12-08 17:08:50 The other day I read in cognitive psychology a technique to analyze your own assumptions. 2022-12-08 17:09:10 To write down "IF THEN Or "IF I AVOID <...> THEN <...>" 2022-12-08 17:09:45 But you can't know what you assume! 2022-12-08 17:09:52 That's the trap 2022-12-08 17:11:20 You can't analyse everything but there's a state of mind of actually trying to think about things from multiple levels 2022-12-08 17:11:27 And that's better than nothing 2022-12-08 17:11:36 Most people just check out of that kind of thinking 2022-12-08 17:11:54 ^^ I agree with this. 2022-12-08 17:12:10 Knowing the landscape and "just seeing" that things are going to be ok will get you a long way. 2022-12-08 17:12:42 Everything can't be relegated to a bureaucratic process. 2022-12-08 17:13:01 But you can't get that message across to corporate types. 2022-12-08 17:13:49 Better than nothingm, sure 2022-12-08 17:14:52 It's fun to compare with Euclides and his math book that lasted for 1k years 2022-12-08 17:15:13 Then in 19th century they noticed he assumed a flat space. 2022-12-08 17:15:24 I think it's worth philosophising about technology generally, think about what fundamentally it is that we're doing, what's fake and what's a fad 2022-12-08 17:16:34 It's the root of me saying stuff like how a web browser is a souped up VT100 etc 2022-12-08 17:17:26 "X is just Y"? :) 2022-12-08 17:18:23 Think about that stuff seriously, but also don't just be reductionist: actually test these ideas and be brutally honest about them 2022-12-08 17:19:14 At some point a qualitative change happens 2022-12-08 17:19:20 Yes 2022-12-08 17:19:32 The web isn't really just a VT100 but it's sort of descended from it in important ways 2022-12-08 17:19:32 And it becomes a fascist radicalization platform lmao 2022-12-08 17:20:13 It helps to understand this family tree sometimes to make it easier to port your skills between different technologies, or to understand how it all comes together 2022-12-08 17:20:40 Mm 2022-12-08 17:21:11 It's sad considering the potential of comp sci to be a language designer profession 2022-12-08 17:21:19 A DSL for each domain 2022-12-08 17:21:30 Instead we have these "general" prog lang D: 2022-12-08 17:22:00 I think often you can do almost-DSL stuff just using highly declarative approaches 2022-12-08 17:22:03 Where power of expression is limited by design 2022-12-08 17:22:16 And also generally trying to represent the problem with data rather than code 2022-12-08 17:22:26 Limited to fit a corporate agenda 2022-12-08 17:22:54 There are some strategies, sure, like fluid interfaces described by martin fowler 2022-12-08 17:23:28 I am avoiding the political and societal stuff you're talking about because I don't want to explode the scope of this conversation too much lol 2022-12-08 17:23:38 xD 2022-12-08 17:23:54 That's for comp sci therapy channel 2022-12-08 17:30:30 OK so vt100 does not support css3? 2022-12-08 17:31:03 no 2022-12-08 17:32:04 well if I can't post my breakfast on it what's the point? 2022-12-08 17:32:06 anyway 2022-12-08 17:32:23 back to rosetta code 2022-12-08 17:33:02 olle: You can also compare rich text format with HTML and a lot of stuff 2022-12-08 17:33:28 "25 nooby Python habits you need to ditch" <--- We need forth youtube vids like these :D 2022-12-08 17:33:59 semantic web never happened :/ 2022-12-08 17:34:02 I've never watched a video like that