00:00:00 --- log: started forth/19.03.07 00:53:46 --- quit: xek_ (Remote host closed the connection) 00:54:06 --- join: xek_ (~xek@user-94-254-233-93.play-internet.pl) joined #forth 01:07:30 heh - my plan to avoid denial of service type attacks on the comms end of my rpany stuff was to reduce the number of instructions/operations per second - since it's for robotic type stuff, it seems to me that i can limit a clients execution of tokens to about 120 per second and it'd probably be more than fast enough 01:09:34 (naturally, it'd be safer to just restrict the access to ssh accessing a unix domain socket rather than an open/unrestricted open tcp socket :) - but i like a challenge) 01:19:40 think it's kinda funny that my rpany-pi project builds in 2m on the pi itself - rpany takes a bit longer, but it's building a few executables (none of which are needed for rpany-pi, so i could offer an option to install the header stuff only i guess...) 01:59:51 should've written it in forth, would build faster :) 02:02:58 --- quit: ashirase (Ping timeout: 255 seconds) 02:11:51 :) 02:14:09 now i'm thinking about auto inlining 02:14:15 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:34:44 i'm used to long build times - full builds of the video stuff on my older machine would take the best of an hour (and the unit tests even longer :)) 02:35:16 on my current machine, it's down to minutes for both though 02:35:40 hence 2m on a raspi seems perfect acceptable to me 02:46:49 debugging session ended with the bug turned out to be just I'm forgetting to put "-" in some control flow word definition 02:47:00 * presiden press F 02:47:22 :) 02:49:53 kinda funny - posted the rpany-pi link on the #raspberrypi channel yesterday - a scottish guy started talking to me about it, and we mostly ended up talking about scotland (since i come from there - the orkney islands specifically) 02:50:21 turns out that he's the guy who wrote the wiring pi lib my stuff was wrapping :) 02:50:37 if i'd known that, i'd have talked tech :D 02:53:42 small world though - turns out he has family there 02:53:57 in orkney that is 02:54:46 so do you! 02:56:22 all my family has left, sadly - i'm trying to arrange a trip up there this year though - been 10 years since i've been there 02:57:15 hell of a hike from belgium 03:02:48 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 03:45:50 --- quit: xek_ (Ping timeout: 240 seconds) 04:09:33 --- quit: nighty- (Remote host closed the connection) 04:41:14 --- quit: Zarutian (Read error: Connection reset by peer) 04:41:24 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 05:43:14 --- join: proteusguy (~proteusgu@2600:1700:d930:1ae0:59e6:bf5a:2b52:6a8e) joined #forth 05:43:14 --- mode: ChanServ set +v proteusguy 06:00:50 --- quit: dddddd (Ping timeout: 240 seconds) 06:01:16 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 06:13:32 --- quit: proteusguy (Ping timeout: 252 seconds) 06:23:22 --- join: proteusguy (~proteusgu@2600:1700:d930:1ae0:59e6:bf5a:2b52:6a8e) joined #forth 06:23:22 --- mode: ChanServ set +v proteusguy 06:31:57 --- join: nighty- (~nighty@b157153.ppp.asahi-net.or.jp) joined #forth 06:44:51 hmm - we have crazy days once a month at work - 3 days were the devs get to choose what they develop (whether on the official roadmap or not) - one of my colleagues has just created a cracker :D 06:45:08 --- quit: nighty- (Quit: Disappears in a puff of smoke) 06:45:15 das raciss 06:45:20 vulkan based filter graph :D 06:45:56 oh - is it? just meant something good back in my day 06:46:19 kids these days with the way they want to change the world mutter mutter 06:46:39 lol cracker predates you, i promise 06:46:49 :) 06:46:57 it's what black slaves in the us used to call white masters 06:47:08 ah :) 06:52:44 anyway - i suspect that management see this, they ain't gonna allow it to be released as open source :D 06:54:30 it's rendering something like 400 frames per second of hd on a single core of my thread ripper 06:54:53 that's umm... scary 06:55:20 --- quit: proteusguy (Ping timeout: 252 seconds) 06:57:33 it probably won't scale though - will hit bottlenecks left right and center - network, disk, gpu 06:58:39 but with that speed of rendering, it won't matter - you could be encoding multiple outputs in parallel to use all the available resources of a heavy iron box 06:59:48 single decode - generating many low res proxies/streams of different qualities and archival in parallel 07:00:07 * the_cuckoo geeks out 07:09:42 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 07:13:01 --- quit: MrMobius (Ping timeout: 255 seconds) 07:13:01 --- nick: [1]MrMobius -> MrMobius 07:19:19 --- quit: tabemann (Ping timeout: 255 seconds) 07:31:19 --- quit: Keshl (Read error: Connection reset by peer) 07:31:59 * KipIngram snickers 07:32:12 My family thinks it's a little weird sometimes how much fun I get out of this stuff. 07:32:22 But hey - to each his own, right? 07:32:33 for sure :) 07:33:06 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 07:35:10 anyway, this is also fun - it's video stuff - it's needs testing - so, yes, i really am working... honest... yes, it's my favourite film, but... it's work 07:35:36 the princess bride rocks :D 07:36:12 Yes, it's INONCEIVABLE. 07:36:19 :D 07:36:23 INCONCEIVABLE 07:36:34 you keep using that word... 07:36:42 Heh heh. 07:36:43 yeah - a real classic :) 07:36:47 i don't think it's spelled the way you think it's spelled 07:36:57 oooh - good one :) 07:37:27 Ugh. I may have it wrong. 07:37:42 Is it not "i before e except after c" following? 07:37:46 the second one was right 07:37:58 i was making fun of your typo version 07:38:09 Oh, right - yeah, typo the first time. 07:38:18 No caffeine yet. 07:38:40 back in the day when i was writing mlt, everything was about this film - including the name 'mlt' itself... 07:39:23 Sonny, true love is the greatest thing in the world - except for a nice MLT - mutton, lettuce, and tomato sandwich, where the mutton is nice and lean and the tomatoes are ripe 07:39:43 I loved Inigo Montoya. :-) 07:39:56 So much fun. 07:39:59 i called the main testing tool inigo :D 07:40:06 Hah hah hah. 07:40:38 "I am Inigo. You threw an exception - prepare to be debugged." 07:40:49 :) 07:41:14 / uvvdf 8 07:41:17 Ooops. 07:41:18 dan didn't like the obsession :) - he changed mlt to 'media loving toolkit' and inigo became melt 07:41:30 Both hands out of place. 07:44:06 all of mlt was written in c btw - there was a c++ wrapper which i added after, but ... eek... i think i screwed up there - just didn't know enough about c++ at the time 07:44:31 nobody knows enough about c++ to use it safely 07:44:53 heh - no - don't think that's true :) - just takes a while 07:45:34 humperdink: "i would not say such things if i were you" 07:45:55 (seemed an appropriate line to hear as your message came in :)) 07:46:33 the_cuckoo: no I am being really serious here. Nobody knows enough about cc+ to use it safely, not even the author of itself. 07:47:02 and again, i'll dispute that :) 07:48:11 Zarutian is referring to a quote from straustrup himself 07:48:51 heh - but still, not accurate :) (regardless of the authors inclusion) 07:50:42 it is accurate enough that many places where embedded controlers are in critical systems, their software is not allowed to be in c++ at all 07:51:50 and i'm sure other lanaguages are excluded too - java, python, bash? 07:52:34 and i wouldn't dispute the decision either 07:52:59 those are excluded due to inefficency not due to the same factor that c++ is banned 07:53:36 it's a complex language - it's easy to get it very wrong :) 07:54:11 yeah that's exactly what Zarutian is saying 07:54:39 that's not a desirable quality in a programming language 07:54:46 yes - i was only disputing the "it's not possible" and "no one" statements 07:54:50 it is needlessly complex language made more so due to its incomplete specification (often called "undefined behaviour") 07:55:08 * the_cuckoo shrugs 07:56:04 the_cuckoo: hmm.. it might be possible to figgure out all of c++ say 2015 version but by then it is as out of date and more useless to know than Cobol 07:56:52 there are plenty of very well paid cobol jobs :) 07:57:18 yeah, but not many well paid c++ jobs 07:57:31 really? ok 07:57:46 got lucky then :) 07:57:57 yeah i would dispute that there aren't many well-paid c++ jobs 07:58:00 in ratio between how many know it that is 07:58:09 in fact i'd argue the nature of the language seems to breed more jobs 07:59:43 dunno - i work with any language and don't really care about it - have done c, java, python, shell, c++, assembly and a few others i've probably forgotten over the years 08:00:23 looks like most of those are Algol68 syntax inspired languages 08:00:49 possibly - bad thing? :) 08:01:57 yebb, there are some bad habits that can travel between those due to that plus it breeds a monoculture of thinking in certain parts 08:03:45 my first job was funny - it involved a bespoke system for telephony - the 'language' was a mix of assembly like stuff (a few vars, simple infix of the strict form var = n1 n2 and various high level commands to play 'recordings' which were referenced as numbers) 08:04:10 it was simply dubbed PDL - Program Definition Language 08:04:38 was challenging and kinda fun :) 08:05:57 either way - i've never been emotionally attached to a language, nor have i had serious aversions to any (apart from mebbe perl :)) 08:07:17 then you have not gotten seriously angry due to mess of a project someone left behind then. 08:08:02 nope - not seriously angry anyway - sometimes amused and bewildered, but not angry 08:10:21 you havent had to 'just add in this simple feature we promised would be delivered at the end of the week' when that projects codebase actively fights you because the guy who left wanted to be so clever. 08:10:58 and specially when the 'build system' was not preserved and turned out to be brittle as hell. 08:12:00 deadlines are funny things - they make an interesting noise as they whistle by - and sure, there are times i've found that a 'simple addition' to my own code has forced some major rework - sometimes with issues still showing months later 08:12:35 it follows that i accept that that is a likely outcome of other peoples code too 08:13:30 i've not tried getting angry in such situations - i'm not entirely convinced that would help 08:13:43 I am not talking about something that seemed simple, I am talking about something like adding an line to report that is generated weekly. 08:14:25 hmm - ok - no, that shouldn't be difficult :) 08:14:31 You know, something that any deskmonkey does easily with Excel in an hour or so. 08:15:16 (couldnt use Excel as it would have crapped out due to how many records being processed) 08:15:55 well, excel isn't something i use, so i have no idea if it's always easy there... 08:16:24 i got the impression you could embed fancy scripts and ole type things in it? 08:16:55 (for the life of me, i could never understand the latter) 08:16:58 you can but I am talking about something you could have done in VisiCalc for that matter 08:17:19 nope - that's also something i've never used 08:17:54 I would have been surprised, as VisiCalc is the first spreadsheet application ever made iir 08:17:55 c 08:20:58 the first i came across was lotus 123 i think 08:21:07 i never used it either 08:21:18 hi 08:21:20 those ole things? Think Component Object Model based applets and you wouldnt be far off. 08:21:22 what are you talking about? 08:22:11 far ranging :) - c++ sucks through simple mods to programs to comparisons with spreadsheets :) 08:22:14 corecode: code-excrement and how some programming language seems to encauraghe more than it should creation there of 08:23:30 so, what do i need to implement for my forth compiler 08:23:31 i'm not really getting into the language bashing myself (other than perl - perl is fair game in my book :)) 08:24:28 corecode: how about implementing something in it? 08:24:31 :) 08:24:40 yea, i guess that would be the best 08:25:06 keep it small and simple, and achievable with what you have would be my approach 08:25:37 i actually wanted to use the cpu to calculate visual patterns for display on an LED matrix 08:25:55 sounds like fun :) 08:27:14 i'm going to be doing some raspi stuff in the same line over the w/e (hopefully starting this evening) 08:28:11 wanted to do some i2c stuff, but i think i better test what i have before i start throwing in more 08:31:53 well, PERL is pretty much just line noise 08:32:47 : { dA @ HERE H' 2@ H ! dA ! H' 2! ; : } { ; 08:32:49 so is cm forth 08:33:01 tee hee 08:33:49 i still appreciate what he did there, but yeah - write only kinda thing 08:34:26 which also sums up most perl 08:35:42 i guess cm never comes here? i'd love to talk to him - think he'd be a really interesting chap 08:36:17 anyone tried to invite him? 08:43:41 * the_cuckoo just realised that his test finished a while back - fires up the next one 08:43:48 the incredibles :D 08:46:52 weird way to test the vulkan stuff - the threadripper with the compatible gpu is upstairs, i'm in the basement - the basement machine doesn't have a compatible gpu, so i'm basically playing the videos remotely via ssh, and in parallel with playing, i'm multicasting an mpegts over udp 08:47:10 --- join: mark4 (~mark4@148.80.255.161) joined #forth 08:47:20 on the basement machine, i just play the udp stream 08:49:20 in this case, i'm just using the vulkan stuff it scale the video prior to encoding 08:50:27 rock solid - the player/encoder upstairs can be restarted/switched to other videos - the client in the basement just runs and doesn't care if the signal drops 08:52:27 he's been here before 08:52:30 http://forthworks.com/forth/irc-logs/02.05.18 08:57:50 crc who? 09:00:30 chuck moore 09:01:16 that waas in 2018 ? 09:01:27 or 2002? 09:01:35 which one of those is the YEAR lol 09:01:38 2002 09:01:58 yea i saw the 18 and figured it as the hyear and i know chip wasnt here then lol 09:02:04 thefox didnt he die? 09:02:15 my logs are a mirror of clog so the naming is the same 09:02:18 he was workign with chuck previously 09:02:52 yes, a few years back iirc 09:03:12 would love if some of the big names in forth were regular here 09:04:16 a lot of the names in that log are no longer regulars here either. not seen kc5 in ages 09:05:47 kc5 is active on twitter and mastodon, still working on his kestrel computer (now using an fpga to implement a riscv cpu) 09:06:36 he could drop by here evey now and then lol 09:06:41 * crc misses the old days 09:06:42 i dont even go LOOK at twitter 09:06:59 did mrreach die? 09:07:14 he has not been in here YEARS... 09:07:25 thats another name fro #forth pre-history lol 09:09:13 I haven't run into him in years 09:10:23 kc5 was not getting along with certain elements in here which is why he left. those elements are gone tho 09:11:15 trying to figure out how to turn BOLD on but only for the foreground. my curses code semms to make the black background non black when i set bold on 09:11:35 test 09:11:40 like that? 09:11:47 thats not bold 09:11:54 boo 09:11:56 well. maybe it is, 09:12:05 i set hexchat to draw all text in bold 09:12:21 looks bold here 09:12:24 im talking about in console - specifically in a gnome terminal 09:12:34 its not bold for me because EVERYTHING is bold lol 09:12:35 corecode: appears bold to me 09:12:41 yea i know 09:13:11 rewriting my forth terminfo/curses kung fu in C 09:15:09 ok i think i'll add support for variable 09:15:26 : variable create 0 , ; 09:15:27 not sure about allot 09:15:46 allot simply adds N to the dictionary pointer variable 09:15:48 yea i don't have create 09:15:54 its like $ in older assemblers 09:16:05 do you have a way to create headers? 09:16:19 it's a compiler, i don't have headers in the final binary 09:16:29 and it is a harvard architecture 09:16:41 so indirect threaded ? 09:16:47 no, forth cpu 09:16:49 a target compiler? 09:16:52 yes 09:17:15 well you still need create on the host to create a header on the host 09:17:22 yes 09:17:25 that's in python 09:17:26 and then compile code for the target 09:17:32 ouch lol i cant help you lol 09:17:50 well it's a forth interpreter in python 09:43:29 --- quit: Zarutian (Read error: Connection reset by peer) 09:49:40 corecode: i've implemented one of those too :) - kinda fun :) 09:52:19 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 09:53:00 would have definitely gone another direction though - didn't bother with 'proper' forth - ie: objects rather than pointers 11:18:05 --- join: xek_ (~xek@apn-37-248-138-82.dynamic.gprs.plus.pl) joined #forth 11:24:35 --- quit: gravicappa (Ping timeout: 245 seconds) 12:42:59 --- join: dave0 (~dave0@223.072.dsl.syd.iprimus.net.au) joined #forth 12:44:25 hi 12:52:51 hi dave0 12:56:56 hi crc 13:08:27 Hi guys. 13:16:15 --- quit: xek_ (Ping timeout: 245 seconds) 13:20:07 hey KipIngram 13:49:20 --- quit: mark4 (Remote host closed the connection) 14:23:13 hey 14:24:34 i really should look into curses again - loved that stuff back in the day 14:42:47 curses is... involved. 14:43:12 * john_cephalopoda curses 14:43:20 :-) 14:43:22 ^ 14:43:30 I worked with ncurses a bit, it was fun. 14:43:45 If that's the kind of curses we're talking about. 14:44:03 It is. 14:44:19 I settle for the ansi.sys sequences. 14:44:54 Directly, that is - I assume that's what curses uses. 14:45:01 https://github.com/jmf/eternalnomad ;þ 14:45:07 I just feel like it has to be possible to do something like that more simply. 14:45:22 I'd be very interested in seeing what a Forth curses (furses?) package could look like. 14:46:23 This editor I've just done creates a single fixed window and writes block content into it. 14:46:30 Works very snappily. 14:46:48 But for a package like that you'd want to be much more generic - allow creation of windows and so on and on. 14:47:17 I don't really know if having windows in curses is that great. 14:47:25 I don't either, really. 14:47:45 There is software that uses some kind of windows in terminal and it sucks. It's just unusable. 14:48:07 The editor works by positioning the cursor to the start of each line (it just uses cr) and using TYPE to put 64 chars there. 14:48:35 If you were trying to be generic you'd need to know where you were in the window, and the width, and truncate the string so that it didn't over-run the right edge, and stuff like that. 14:48:50 Does your forth support unicode with TYPE/EMIT? 14:49:28 I don't generate anything, no. I suppose if I set my terminal program to accept unicode and then emitted the right byte sequence it would accept it. 14:49:43 But internally I deal exclusively in ASCII bytes. 14:54:26 I suspect that given some thought it would prove fairly simple to set up a system where you could define arbitrary "window regions" on the screen and have a set of input and output words that would work with them cleanly. 14:54:55 Where the hassle would come in would be trying to maintain a store of the window contents so that you could redraw things if you moved a window and that sort of thing. 14:55:14 If they stay put so you can "draw and forget" I think it wouldn't be a particularly huge amount of work. 14:55:39 Somebody here told me about their library for all this a few weeks ago, and it sounded pretty groovy. 14:56:08 mark, or crc, or rdrop-exit - one of them I think. 14:57:42 mark4 had some Forth code to do terminal sequences that he was trying to convert to C... i'll check the scrollback 14:58:59 my thinking was that you would define window objects - put one of those on the stack, and send stuff to it.. 14:59:10 Yes. 14:59:32 I'd add it after putting the usual output parameters on the stack and just before executing the word. 14:59:47 so addr count type would become addr count window .type or something. 15:00:29 it was mark4 but i can't find the date in the scrollback :-( 15:00:38 it was yesterday or the day before 15:00:39 The alternative would be to have a window variable, null if no window, and modify type itself to check that. 15:00:41 the advantage of doing with the window object at the bottom is that the word can immediately check if it can find a window object there - ie: it knows how many stack items it accepts 15:00:53 and that can be context sensitive of course 15:01:05 But there might be stuff from outer operations on the stack. 15:01:15 How would you know that stack item was associated with the type? 15:01:36 overlapping windows is interesting... there is a whole bunch of code in X-windows for it 15:01:47 I feel like you'd want to use the variable like I said, and have your native output words work with this. 15:01:55 That way legacy code "just works." 15:01:59 no - there wouldn't be any foreign stuff coming in - your stack is your stack - you send info out, poss. request info in... but it's yours 15:02:06 Yes, it's fun when they overlap. 15:02:15 You have to have a stack of window objects, that you keep sorted from bottom to top. 15:02:26 You search them for "inclusion" from the top down. 15:02:34 To handle mouse events and so on. 15:03:40 If two windows both contain the same screen point, and you click there, you're clicking in the top window, not the bottom one. 15:03:43 they can interact directly with the window object - bypassing your stack - would probably need mutexes 15:04:08 (they too can do it through a stack thing of course) 15:04:25 but that would be theirs 15:04:26 Yes, some things would do exactly that. 15:04:36 The stack is primarily for mouse events. 15:05:03 In theory each one of those windows might have a process writing to it, all at the same time. 15:05:09 Those processes would have to get at the right object. 15:05:20 This gets pretty involved. 15:05:23 threads would also work 15:05:38 Sure - I meant processes "generically" there. 15:05:59 I decided that I'd start out by giving each process a full screen, and I'd switch from one to the other, sort of like Linux screen. 15:06:05 That's what I use most of the time anyway. 15:06:07 sure - but simplest to start with threads - threads can spawn processes is the way i would see it 15:06:12 Next step from there is tiled windows. 15:06:23 Then the overlapping is the one that really adds some difficulty. 15:06:52 Thing is if you want something even so routine as a menu system, you have to support overlapping. 15:07:01 Because menus open over other windows. 15:07:30 Anyway, I feel like Forth would do this very well, if appropriate thought was invested in the work. 15:07:43 I feel sure it would be smaller than curses. 15:07:59 i believe any stack based evaluation language would do it pretty well :) 15:08:01 Because, well, good Forth code is usually just remarkably compact. 15:09:14 :) - agreed - but i find it's genuinely easier to paint with a broad brush while you define what you want and only refine once you've defined it :) 15:10:30 I'm a big believer (in any design - hardware, software in any language, etc.) that it's important to pour significant thought into crystalizing the cleanest possible "architecture" for the solution. 15:11:05 Recognize and work through any complications that arise before you start. Try ideas, reject them, polish them, etc. - be very demanding that the whole thing be "clean." 15:11:18 Then when you start building it you know mostly what you're doing already, and it goes very well. 15:11:27 and i think that's fine - but in this day and age, we can prototype to define, and optimise if the requirement is there 15:11:36 Maybe I like that because I was just good at doing it with digital circuitry - I could "evaluate ideas" in my head really well. 15:11:54 These days there are usually too many cooks in the kitchen. 15:11:56 i guess that's probably it - i started with basic :) 15:12:13 i see things symbolically, rather than physically? 15:12:49 I don't believe in marketing people and so on defining things in much detail - THEY should paint with a broad brush, and leave it to the engineers to determine the most technically effective way to achieve those broad requirements. 15:13:03 Similar with "product managers" - most of the time they try to get involved in too many details. 15:13:30 Then you wind up with the engineers having to do things that are less efficient and less technically graceful in order to match the letter of a requirement that was promulgated by someone non-technical. 15:14:15 Now of course this means you need your (at least senior) engineers to be familiar with your users and their needs and so on. 15:14:24 And the product managers can ADVISE them in that area. 15:15:00 But technical products should be created by technical people, and those projects should be led and managed by the best of those technical people - the ones who have their head around the big picture and can see that everything is (or isn't) on track. 15:15:15 heh - no - those are fine to disagree with - but for our own personal projects, we have choice - and i do believe finding effective ways to prototype is the right way to start - i acknowledge that there is much to learn and possibly enjoy if i start at a lower level 15:15:21 Putting "professional managers" on high technology development projects is just completely borked, as far as I'm concerned. 15:15:54 FIND someone who can both lead the work and understand the technology - deeply. 15:15:59 And pay what you need to pay to get him. 15:16:15 Or deploy a lesser product - business owner's choice. 15:16:30 I'm not saying it's the only way to get a product out the door. 15:16:39 I'm just saying it's the way to get the BEST product out the door. 15:16:51 But see, I am totally biased. 15:17:07 I *was* that guy at the best job I had in my whole career. 15:17:36 And the owner of that company was a top tier engineer as well. 15:17:42 That was an ENGINEERING led company. 15:18:03 No board of directors, etc. etc. 15:18:26 Just that technically brilliant owner telling me what he wanted, and I went and worked with the team to make it happen. 15:19:21 He painted in your broad strokes - he usually had two or three pet ideas he wanted to see be part of the next product. And I'd take that and work it out in enough detail that I could assign tasks to the team members at a level they could deal with. 15:19:42 Most of them were fairly young, so it had to be boiled down pretty good. 15:19:45 Sounds like an awesome job. 15:19:54 It was. I miss it very much sometimes. 15:20:15 But at least I had it. That job lasted six years, which is a fairly good chunk of a career. 15:20:34 what were you producing? 15:20:35 Nothing lasts forever, I guess. 15:20:48 Equipment to program "programmable" semiconductor devices. 15:20:56 Microcontrollers, flash memory chips, etc. 15:21:04 Back when programming chips wasn't nearly so easy as it is now. 15:21:20 heh - yeah - the march of progress 15:21:25 We sold desktop units for engineers to use in development, and also big manual and automated production units. 15:21:41 https://bpmmicro.com/ 15:21:52 i used to work in 0898 numbers back in the day :) 15:21:55 You see that automated unit on the front page? 15:22:01 I led the development of the first one of those. 15:22:12 Including the pick-and-place platform. 15:22:23 From components - belts and pulleys and servos and so on. 15:22:32 nice :) 15:22:40 As well as the development of the electronics that did the actual programming, though that was an evolution of what had come before. 15:22:50 The owner has to get the credit for the "primary" design of those programming sites. 15:23:28 But that PnP - the team and I did that 100%. 15:23:39 The earlier automated products had used a third party PnP. 15:23:53 But rumors were flying that that company was going out of business. 15:23:59 And our competitors were using that against us. 15:24:13 So the owner decided we needed to be independent of them - he wanted us to design our own. 15:24:16 Off we went. ;-) 15:24:47 Hired a mechanical engineer for that, and then a couple more. 15:24:59 Prior to that our "mechanical" work had been just bent sheet metal chassis stuff. 15:25:47 I wrote the vision software for the cameras and other vision devices personally. 15:26:25 There was a really cool vision device from a company called Cyber Optics. 15:26:42 It used a sheet of laser beams - it mounted ON the pick and place head so you could do the imaging in motion. 15:26:55 You lifted the part up into that beam of lasers, and rotated all the way around. 15:27:16 The thing recorded the center and width of the blocked beam section as a funtion of angle. 15:27:46 That was a waveform with curved tops and sharp valleys - by assessing where those valleys were you could determine exactly how you were holding the part. 15:28:05 So you could correct your motion and rotate the part a bit so that you put it down precisely in the socket, without damaging any of the pins. 15:28:51 This had to be done because the parts came to you in pockets of a tape or a tray, and they could chatter around in there a little. 15:28:59 So you couldn't count on picking them up in any known way. 15:29:12 well, i need to turn in i'm afraid - late here - night KipIngram and all :) 15:29:23 Our goal was to make sure each pin tip was in the correct spot to within 0.001 inch. 15:29:34 Night; rest well. 15:30:08 With the stationary upward looking camera you could actually detect bent pins and so on and put those parts in a reject output. 15:30:30 But you had to make a trip over to where it was, so that reduced mechanical throughput. 15:30:49 Sorry - I'm stopping now. Memory lane. 15:31:02 Like I said, I really loved that job. 8-D 15:33:03 here is mark4's code: https://github.com/mark4th/x4/blob/master/src/ext/terminal/tformat.f 16:22:25 --- join: PoppaVic (~PoppaVic@unaffiliated/poppavic) joined #forth 16:47:41 --- quit: john_cephalopoda (Ping timeout: 252 seconds) 17:01:34 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 17:02:13 --- join: travisb (~travisb@h193.235.138.40.static.ip.windstream.net) joined #forth 17:08:27 --- nick: travisb -> tabemann 17:23:59 --- quit: dave0 (Quit: dave's not here) 18:04:10 --- quit: tabemann (Ping timeout: 240 seconds) 18:34:47 --- quit: Keshl (Quit: Konversation terminated!) 18:38:29 --- join: nighty- (~nighty@b157153.ppp.asahi-net.or.jp) joined #forth 19:21:04 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 19:23:26 --- join: tabemann (~travisb@172-13-49-137.lightspeed.milwwi.sbcglobal.net) joined #forth 19:23:58 --- quit: Keshl (Read error: Connection reset by peer) 19:27:52 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 19:29:01 --- join: gravicappa (~gravicapp@h37-122-113-40.dyn.bashtel.ru) joined #forth 19:32:09 --- join: proteusguy (~proteusgu@2600:1700:d930:1ae0:6ccd:fd8:8a1b:7c93) joined #forth 19:32:09 --- mode: ChanServ set +v proteusguy 19:33:52 It's so pleasant when code does what you intended. 19:41:14 --- quit: dddddd (Remote host closed the connection) 20:08:26 --- quit: proteusguy (Ping timeout: 252 seconds) 20:21:54 --- join: proteusguy (~proteusgu@mobile-166-175-63-160.mycingular.net) joined #forth 20:21:54 --- mode: ChanServ set +v proteusguy 20:42:25 --- join: dave0 (~dave0@223.072.dsl.syd.iprimus.net.au) joined #forth 20:42:53 re 23:59:59 --- log: ended forth/19.03.07