00:00:00 --- log: started forth/18.10.17 01:03:19 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 01:55:47 yunfan: very. C-less, all based on assembler. 01:56:13 siraben[m]: isn't the dictionary already a list-structured memory? 02:04:10 --- quit: ashirase (Ping timeout: 245 seconds) 02:07:40 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:18:12 WilhelmVonWeiner (IRC): available for the user as CONS CAR and CDR 02:18:52 : CONS , ; ... :^) 02:24:13 WilhelmVonWeiner: which topic were you refer to ? 02:24:26 lina forth's speed 02:25:02 It's all assembler so it shan't be noticably slower than any other mainline Forth 02:32:08 ah. got it 02:35:40 lisp? 02:38:52 ? What about lisp? 02:39:40 Lisp seems to come up here a lot; maybe it's just because this is a Forth channel, and Forth is an "interesting alternative language," and so people get drawn here who are interested in interesting alternative languages. 02:40:07 I think Lisp has a cursory surface resemblance to Forth, if you squint the right way. But from what I can tell they're little alike under the hood. 02:41:35 Sort of like having two sexy cars, but one is internal combustion and one electric. :-) 02:43:02 I don't really know enough about Lisp to be running my mouth, but I've tried a time or to to peek in there, and I have the impression that Lisp is more... "formally rigorous" in terms of its internal structure and its operation. 02:44:38 Lisp feels more declarative to me, and Forth imperative. 03:14:54 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 03:33:33 Forth is functional, where the stack and the input stream are arguments passed between every function. It just doesn't mind mutable data. 03:33:36 FACT. 03:34:18 KipIngram: I saw cons and it is one of the fundamental data structures in lisp 03:34:28 heritage of lisp machines 03:35:23 that's why I've asked :) 03:41:19 It's so satisfying erasing variables from code. 03:41:58 Took me a while to realise I don't need to juggle "HERE" around if i'm done with the dictionary, lol. 03:46:07 --- quit: nighty- (Quit: Disappears in a puff of smoke) 03:46:24 "erasing"? What do you mean by that exactly? 03:47:05 You mean just not having to use variables? 03:47:13 That actually IS quite satisfying. :-) 03:47:15 factoring variables out 03:47:48 Yes, I agree. 03:48:14 I get that sense of "I'm doing this right" a lot more often from Forth than I do any other language. 03:57:09 Is there a way to ignore stack underflows in gforth? 03:57:18 They make life notably harder 04:02:15 That's a very dangerous thing to do. You don't know (unless they tell you) what's being done with that RAM below the stack. 04:02:36 Unless you can guarantee your underflow is read-only, your system is supect after you underflow. 04:03:26 I'm not really sure how underflows are checked in GForth, but in most systems they are "ignored" until the end of the word - until you get back to the INTERPRET loop. 04:06:05 I did decide I didn't like having underflow (or any other error) completely reset my data stack - I implemented a less harsh mechanism that snapshots the state extant when INTERPRET first begins processing the line, and restores that on error. 04:06:22 So the only stack activity that I have erased is that of the line containing the error. 04:08:24 I just want to be able to run 2OVER NIP instead of like ROT DUP >R ROT ROT R> 04:11:17 Couldn't you replace the ROT ROT with -ROT? 04:11:32 Is that second piece of code supposed to be the same as the first? They don't look equivalent to me. 04:12:47 My system wouldn't underflow on 2OVER, ever. Because even if it reaches below the bottom, it doesn't leave the stack pointer in an underflow position. 04:13:54 Hmmm. Sure enough - gforth doesn't like reaching below the stack. 04:14:05 It seems to be checking for underflow in a more sophisticated way. 04:14:51 ABC -> ABC_A -> ABCA vs ABC -> BCA -> BCAA -> BCA -> CAB -> ABC -> ABCA 04:15:11 Maybe it has the RAM under the stack configured as non-readable? 04:15:16 So it gets an exception? 04:15:54 Whatever it is, it's weird and annoying 04:16:13 Well, I agree, because I'm used to the traditional approach. 04:16:13 you can't give me 0? just give me garbage! It doesn't matter! 04:16:19 Right. 04:16:59 so glad I installed lina Forth 04:17:17 Gonna port ciforth (the lina forth base) to openbsd when I make the switch 04:17:45 Well, I have a hard time condemning them over it - TECHNICALLY it's an error. But nonetheless, I like getting what I'm used to. 04:17:50 WilhelmVonWeiner: could you 3 PICK ? 04:18:01 Guess that's like some of C's "implementation dependent behavior." 04:18:13 I think it would be 2 PICK, right? 04:18:31 dave9: probably, but I like stack manipulation 04:18:41 KipIngram: don't know :-( 04:19:01 1 2 3 2 pick . . . . 1 3 2 1 ok 04:19:01 I wonder the speed difference between the two then 04:19:13 PICK should be fairly fast. 04:19:49 It's discouraged for philosophical reasons; other than messing around with the argument (2 here) it's no slower than over. 04:20:01 And should be faster than the ROT -ROT stuff. 04:21:05 My gut says 2 PICK would be faster than 2OVER nip, butI'd have to test to be sure. 04:21:24 I wrote a set of primitives for this - for me this is just 2@ 04:21:52 Oh, wait - no. 04:21:56 I used to have those words do that. 04:22:02 Now they work off of the frame pointer. 04:22:51 But establishing and releasing a frame here would definitely make it slower than the other alternatives. 04:24:23 2OVER NIP - real: ~4.8s, 2 PICK - HMM 04:24:32 Turns out Lina forth doesn't have PICK and ROLL 04:24:35 :^) 04:24:45 Purists. :-) 04:25:38 I added R! to my system (it's equivalent to DUP >R but faster). 04:26:05 So the thing I'd wind up doing here is an R! at an earlier time when I had A in TOS, then R> when I needed the copy. 04:26:13 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 04:26:57 PICK and ROLL are 200x, and ANS core extensions 04:26:57 I just decided it was odd to have R@ but not R!. 04:27:09 But Lina is FIG, not ANS 04:27:10 200x? 04:27:21 forth-standard.org 04:27:28 Oh, ok. 04:27:40 Well, the Lina guys just probably embraced the "don't do that" mentality. 04:27:59 It's just one guy, as far as I can tell. 04:28:09 Ok, even more likely then. 04:28:13 Define "Don't do that" mentality though/ 04:28:22 I don't have them in my Forth. 04:28:33 ROLL because it sucks, and PICK because "I embrace." 04:28:34 --- quit: wa5qjh (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) 04:29:05 I think it was Chuck who called PICK and ROLL too complicated 04:29:21 The frame mechanism is for situations that are just impossibly involved, and otherwise I try to look it over and find a way to be smarter. 04:29:24 yeah, in 1x Forth 04:29:46 PICK itself isn't that complicated, but I think he meant they reflect inadequately simplified code. 04:32:13 I don't think I implied otherwise 04:33:03 Ok. I just try to avoid thinking of PICK and ROLL in the same way. Sorry if I misread. 04:33:25 ROLL is somewhat "evil." :-) 04:33:42 I also always grimace a little when I start needing ROT or -ROT. 04:35:55 ROT is fine, otherwise you'd be typing >R SWAP R> SWAP or something 04:36:50 Yeah, I do use both of them if they're appropriate. I'm just conscious of the heavy RAM motion I'm creating, compared to many of the others. 04:37:42 I implement ROT and -ROT as a pair of xchg reg, mem instructions. 04:37:46 So they're not THAT pad. 04:37:48 bad 04:46:12 --- join: rdrop-exit (~markwilli@112.201.162.180) joined #forth 04:46:26 --- quit: rdrop-exit (Client Quit) 04:47:07 --- join: rdrop-exit (~markwilli@112.201.162.180) joined #forth 04:48:40 Good evening Forthwrights 04:49:03 Hey, dude. 04:49:07 Good day? 04:49:26 G’day to you 04:51:31 I’ve started unboxing and re-reading all my old Forth literature, also want to see what gaps I need to fill. 04:51:58 Fun. :-) 04:52:09 It is actually :) 04:53:13 Oh, man. I may have just figured out this problem I've been hassling with at work. Can't say for sure yet, but I'm five minutes into a test that normally fails within seconds. 04:53:36 Cool, good luck. 04:53:48 I'm trying to test a storage device using fio and spdk. SPDK replaces the os nvme drivers with a user-space polling thing. 04:54:15 And has a utility "setup" to switch itself on and off (remove/replace the drivers). 04:54:21 Well, I spoke too soon - it just failed. 04:54:31 What I'd tried this time was additionally running rmmod nvme. 04:54:34 But no joy. 04:55:01 I think this is a problem with fio; I've run the same test using a utility spdk provided instead of fio, and it runs solid every time. 04:55:07 Had to Google SPDK 04:55:17 SPDK is pretty cool, actually. 04:55:31 And there's an IRC channel #spdk where the devs hang out, and they are fantastic guys. 04:55:35 Very supportive. 04:56:17 Just bookmarked the website for later perusal 04:56:35 fio is pretty nice too. 04:56:53 This all ran great all year under CentOS 7.4; a few days ago I moved up to 7.5 for other reasons, and I'm having grief. 04:59:43 rdrop-exit: Forthwrights, lol. 04:59:54 ;-) 05:00:12 I always say Forther, forthwright is... lingustically unweidly 05:00:25 --- quit: NB0X-Matt-CA (Ping timeout: 245 seconds) 05:01:00 I usually say Forther also, but Forthwright is... cute. 05:02:11 I find it kinda cool, also FIGUK’s newsletter was called Forthwrite. A Forthwright reads his Forthwrite. 05:02:31 --- join: NB0X-Matt-CA (~nonlinear@unaffiliated/discrttm) joined #forth 05:04:47 Forthmancer 05:05:07 ;p; 05:05:13 I mean lol 05:05:18 Me, personally, I'm a Forthologist. 05:05:43 very good 05:07:02 Keep on Forthin’ 05:07:04 What do you call an assembly writer? 05:07:11 wizard 05:07:19 Oh, I like Forthmancer. :-) 05:08:02 A bare-metal programmer 05:11:40 Was there a 1985 FORML? I can’t find one on my shelf. 05:16:06 KipIngram: I got to use my Forth interpreter for the first time today "in the wild" 05:17:35 There was a question on a little contest on how many numbers n give remainder 24 when they divide 9449 05:17:48 Where n goes from 0 to 9449 05:18:34 So I typed : PSUM 0 OVER 0 DO OVER I MOD 24 = IF 1+ THEN LOOP NIP ; 05:18:37 :-) 05:21:24 there's gotta be some algorithmic way to do that though, right? 05:27:57 Probably, but I'm definitely not up on my number theory. 05:28:12 Is that a type of Diophantine equation? 05:29:36 So, 9449/n = m + 24 05:29:47 9449 = n*m + 24*n 05:30:39 No, that's not right, is it? 05:32:35 (9449-24)/n = m ? 05:32:46 All factors of 9449-24 that are > 24? 05:33:36 Shoot - I should drive instead of do math. Catch you guys in a bit. 06:10:05 WilhelmVonWeiner: If by algorithmic you mean a program, yes. 06:10:19 The contest allowed the use of calculators, so this was not against the rules. 06:10:26 But probably not what the authors had in mind. 06:11:25 KipIngram: 06:12:30 KipIngram: I'm not too sure what the equivalent statement in number theory is, I haven't studied it much. 06:26:14 I think by "algorithmic" he meant a direct calculation. 06:26:24 Something other than checking every possibility. 06:27:06 I'd be surprised if there's not something you can do with the factors of n and 9449, or 9449-24, that would provide a faster path. 06:28:40 You want 9449-24 to be a multiple of n. So I think it might be that simple - find the prime factors of 9449-24, and then find all the ways you can put together, which would give you factors of 9449-24. 06:28:47 You're interested in the factors larger than 24. 06:29:38 --- join: ncv_ (~neceve@2a02:c7d:c5c9:a900:1ec6:932f:1b02:d27e) joined #forth 06:29:38 --- quit: ncv_ (Changing host) 06:29:38 --- join: ncv_ (~neceve@unaffiliated/neceve) joined #forth 06:30:53 --- quit: ncv (Ping timeout: 260 seconds) 06:32:10 Do a Google or Youtube search for « congruence modulo » 06:32:54 --- quit: ncv_ (Remote host closed the connection) 06:33:14 --- join: ncv_ (~neceve@2a02:c7d:c5c9:a900:6eaf:6ef7:3b81:d5f6) joined #forth 06:33:14 --- quit: ncv_ (Changing host) 06:33:14 --- join: ncv_ (~neceve@unaffiliated/neceve) joined #forth 06:34:06 --- quit: rdrop-exit (Quit: rdrop-exit) 07:01:15 --- join: groovy2shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 07:10:08 --- join: kumool (~kumool@adsl-64-237-233-141.prtc.net) joined #forth 07:11:26 According to Wikipedia, this is a linear Diophantine equation: 07:11:29 ax + by = 1 07:11:43 where you seek integer values of x and y. Parameters a and b are known. 07:12:21 * tabemann just wishes he could get decomplication of IF-ELSE-THEN and loops to work 07:12:31 Oh, I thought I could write our problem in that form, but maybe not. 07:12:47 We have n*m, with n and m both unknown. 07:12:57 * tabemann 's decompiler just indicates BRANCH or ?BRANCH, with after the branch and *n* at the destination 07:13:06 where n is any small integer 07:13:54 I did make it so that when there are literals containing references to words, it lookups up the words from the literals and replaces the literal with 07:16:14 dammit I should go 07:16:22 bbl 07:21:38 --- quit: tabemann (Ping timeout: 260 seconds) 07:22:03 People should connect through Matrix more, perhaps. 07:22:37 Even though I've been on and off the network on my computer, the Matrix-IRC gateway maintains the conneciton. 07:50:04 --- quit: carc (*.net *.split) 07:50:04 --- quit: pointfree (*.net *.split) 07:50:04 --- quit: pointfree[m] (*.net *.split) 07:50:05 --- quit: Labu (*.net *.split) 07:51:23 --- quit: ncv_ (Remote host closed the connection) 08:00:37 --- nick: siraben[m] -> siraben 08:02:17 --- join: pointfree[m] (pointfreem@gateway/shell/matrix.org/x-tuzyaacszsiivdmv) joined #forth 08:04:32 --- join: Labu (~Labu@labu.pck.nerim.net) joined #forth 08:24:42 I have my setup so that it's always on, unless they reboot my seedbox. 08:27:48 It is really nice to have that sort of behavior. 08:32:20 --- quit: kumool (Quit: Leaving) 08:36:10 Unless who reboots your seedbox? 08:36:24 The admins. It's a leased thing. 08:38:27 I see. 08:39:02 You mentioned a couple of days ago that you had a program to aid in calculating electrical quantities in a circuit. How did that work? 08:49:40 --- join: rdrop-exit (~markwilli@112.201.162.180) joined #forth 09:04:56 It built up either the node-voltage or mesh-current equations (can't remember which one right now) and solved them via Gaussian elimination with pivoting. 09:05:10 Well, the "build up" was a collaboration between me and the calculator. 09:05:54 I didn't have to work the equations out on paper - I could look at the schematic, do some calculations using the values I saw there, and run a sub-function of the program. I did that over and over for each component / node and then launched the main analysis. 09:06:18 That did all the arithmetic using complex numbers so I could use it to solve steady state sinusoidal behavior. 09:06:23 "Phasor" analysis. 09:06:42 KipIngram: what kind of circuit was it? 09:07:13 This was in college, in circuits class. Just general circuits containing voltage sources, current sources, resistors, inductors, and capacitors. 09:07:34 Wow. Much more complex than anything I've worked with. 09:07:44 It didn't do any transistor modeling or anything, but I could have drawn the circuit with some lumped parameter model of the transistor in there and used it to solve that. 09:07:55 They can get surprisingly complex with few components 09:08:00 Like an h-parameter small signal model, say. 09:08:22 Yes, they can. 09:08:37 I'm having a hard time in physics right now because of electricity and magnetism 09:08:40 But you can always think of it as a matrix/vector equations in your unknowns. 09:08:55 Ask questions if you want. 09:08:56 More of a classical mechanics thinker I guess 09:09:01 Right 09:09:40 Well, if you can handle the hairier parts of classical mechanics (Hamiltonian / Lagrangian mechanics and so on) then you can do fields. 09:09:47 I'd be glad to help. 09:09:47 Ok so I'm not really getting the concept of RMS voltage. What is it? 09:10:01 Or RMS current 09:10:19 Ah, nothing too hard yet with advanced calculus, that's for college 09:10:23 KipIngram: one project I started today at school, is to design an heater control circuit, using opamps and mosfets and such. 09:10:28 Ok, so the RMS value of a voltage or current is just the DC value you'd have to have to dissipate the same power in a resistor, time averaged, as the sinusoidal waveform does. 09:10:44 If you integrated I^2*R over one full period, you'd get an energy dissipated value. 09:10:55 R*I(rms)^2 is the same value. 09:11:05 KipIngram: you explained this much more mathematically than I would have. 09:11:22 whereas to do the integral you have to integrate r*i(t)^2. 09:11:26 Well it makes sense that way too 09:11:35 Well, feel free to pile on - hearing multiple explanations can't hurt. 09:12:10 But if you think about it, the name pretty much says it - take the mean of the square, and take the square root of that. 09:12:22 But the reason it's meaningful physically is what I said up there. 09:12:33 It lets you do a DC calculation instead of a time integral. 09:12:45 was just going to start with an sinus wave, pictorially and go from there. 09:13:22 siraben: since you can integrate sinusoids in closed form, you can prove that it works out that way. 09:13:47 Integrating the *square* of a sinusoid is a bit harder, but it's still tractable. 09:14:38 You can use trig identities to turn it into something you can handle. 09:14:39 sorry, might be that I am not quite familiar with mathematical terms in english, what does integrating mean? 09:14:56 Adding up all the instantaneous bits. 09:15:02 oh, right 09:15:05 So integral over a period divided by the period gets you the mean. 09:16:01 It's that thing with the tall skinny S to the left in calculus, and dx or dt after. You probably just have a different word for it. 09:16:47 Ah makes more sensor with calculus 09:16:54 Sense* 09:17:14 not sure. Havent learned calculus ever. We used vector curve mathematics when learning about this. 09:17:20 The textbook explanation was very non-direct 09:17:23 Yeah, it's a shortcut - since you know the signal is sinusoidal, you can forget that and just use the RMS value as though it were DC, and your power/energy calculations will come out right. 09:18:12 (treat the end points of vectors in polar coordnate system like a curve drawn over time. The icelandic word this kind of math is vigrur) 09:18:41 Interesting. I'm not able to tell yet if that's something I know by another name or not yet. 09:20:31 Also I'm probably overstressing myself, it gets hard to study when it's late 09:20:55 It'll click eventually, I might ask the occasional question 09:20:58 Thanks for the help by the way. M 09:21:08 Oh, sure - anytime. 09:21:22 KipIngram: so, lets say I have three pole generator. The instantenous current for one rises and falls as the shaft of the generator turns. Draw that like a graph in a polar coordnates instead of just cartesian coordnates. 09:21:40 Ok. 09:21:55 ontop of that draw the other pole graphs in diffrent colours 09:22:07 And they'd be shifted in angle. 09:22:10 120 degrees each. 09:22:18 yes, that is the phase shift between them 09:22:55 but they will be covering the same sized area 09:22:56 I'm seeing each of these things as a distorted figure 8 shape. 09:23:01 Right. 09:23:40 So the integral is the same even though the frequencies may be different? 09:23:50 Because the peak amplitudes get higher as well 09:24:11 Um, if you have L's and C's in a circuit then the amplitude will change with frequency. 09:24:23 That amplitude change factor affects the RMS value as well. 09:24:31 'virtual' resistance iirc 09:24:43 Yes, we call it "impedance." 09:25:01 --- join: carc (~carc@unaffiliated/carc) joined #forth 09:25:01 --- join: pointfree (sid204397@gateway/web/irccloud.com/x-hrzwkzuvtxqmtxye) joined #forth 09:25:11 impedance of an inductor is w*L (w is angular rate), that of capacitor is 1/(w*C). 09:25:12 also L would shift the phase more forward (iirc) and C would shift the phase more backward 09:25:18 Right. 09:25:21 +90, -90. 09:25:45 So we actually write Z(L) = j*w*L and Z(C) = -j/(w*C). 09:26:07 Resistors contribute real impedance - inductors and capacitors imaginary. 09:26:20 KipIngram: What other channels do you hang out in besides #forth, by the way? 09:26:35 Only one that's invite only, by the guy that owns it. 09:26:36 siraben: here is a kicker, frequency depends on the rotational speed of the generator, hence all powergenerators have load-response control. 09:26:55 Resistors do the same thing amplitude effect regardless of frequency - inductors and capacitors don't. 09:27:04 Ah, we're not going to over impedances for this unit 09:27:05 KipIngram: so it is called imaginary in english. We call it 'virtual'. 09:27:09 Capacitors look like open circuits at DC and short circuits at "infinite frequency." 09:27:17 Inductors look like shorts at DC and opens at "infinite." 09:27:22 It's just physics with a lot of units and this is one of then 09:27:27 You get that from the w being in the numerator or denominator. 09:27:34 But yeah it is fascinating when one gets deep 09:27:50 It's pretty remarkable the cool stuff you can do with clever circuit designs. 09:28:00 Filter theory / technique is wild and powerful. 09:28:15 KipIngram: So just that and #forth ? 09:28:17 * Zarutian still thinks of atenna-logy as damn black magic 09:28:25 DSP has replaced a lot of the need for that, but not all of it. 09:28:36 Yes. I hop in and out of others transiently. 09:28:38 Right 09:28:44 And usually have several PM buffers going. 09:29:03 KipIngram: well, it is much cheaper to make an low-pass or hi-pass filter with an resistor and capacitor than a DSP. 09:29:11 I'm not enjoying it as much on paper, I really want to DO stuff with them 09:29:21 But digital techniques can only handle frequency components up to half the sampling rate. 09:29:36 Recently did a lab with half-wave and full-wave rectifiers, that was fun 09:29:37 KipIngram: Niquist our friend shows himself 09:29:44 You have to filter out the energy at higher frequencies with an analog filter, or it will "alias" and show up as low-frequency stuff in your digital filter output. 09:29:56 Right. 09:30:11 Added a capacitor and watched it become smoother 09:30:12 * Zarutian trys to recall what gáruspenna is in english: ah, ripple voltage 09:31:23 siraben: if you are willing to be somewhat inefficient you can add a zener diode too to short circuit the ripple voltage out and get a rock steady voltage 09:31:42 no feedback control from variable loads though 09:31:46 KipIngram: Glad I found you here otherwise we would never have crossed virtual paths 09:32:07 siraben: A really good book on all this from a "practical" perspective (i.e., not tons of circuit theory) is "The Art of Electronics" by Horowitz and Hill. 09:32:07 I join around a dozen or more channels 09:32:17 Zener diode? 09:32:37 Flows no current below a certain voltage, and then flows whatever it needs to to keep the voltage from going any higher. 09:32:48 You can get 'em in different breakdown voltages. 09:33:05 a diode which is designed so its reverse 'breakdown' voltage does not destroy it 09:33:20 But as Zarutian noted, you lose efficiency - you're dumping the energy in the peaks straight to ground. 09:33:49 But it's sort of the simplest regulator there is. 09:33:50 Cool 09:33:59 better use an regulator such as LM-something (I dont recall its numerical part at the moment) 09:34:48 Linear regulators do a similar thing - they just pass excess energy above the regulation point to ground. Switching regulators open and close a switch between source and filter cap as needed to keep the output voltage steady, and can be more efficient. 09:35:18 Linear: "That's too much - I'm tossing it." Switcher: "I've got enough - hold off for a bit." 09:35:34 though in some sound systems you do not want switching regulators unless you can use some techniques to dampen down hiss down to inaudiable 09:35:45 Right - definitely. 09:35:56 Efficiency is not always the design imperative. 09:36:58 I worked for a company that made seismic gear - the circuits that processed geophone signals. 09:37:02 Talk about wanting it QUIET. 09:37:18 We did 24-bit A/D in there, so the noise floor had to be low, low, LOW. 09:37:38 KipIngram: what kind of sensor? And what was the first amplification stage? Common Base? Common Emitter? 09:38:09 tell me you used fast flash A/D in it and not the pissant successive value ones? 09:38:14 :-) I couldn't tell you that. I could have at the time, I guess, but it's been a while. I'm not a super analog hotshot myself, but I knew one and hired him. 09:38:31 I was the VP of engineering at that company until I succumbed to political warfare. 09:38:44 yeah, I am more into digital electronics and mechatronics meself 09:39:23 I knew enough to know that the analog guy they hired before they hired me shouldn't have used a D flip-flop and relied on its analog output value. 09:39:26 I suppose the curriculum just wants to balance both the theoretical and "practical" side of eletronics 09:39:50 We have to be able to explain certain V-t graphs with various laws 09:39:59 Well, basic circuit theory is important, and so is basic transistor circuit stuff. 09:40:11 But ultimately being able to actually use it all for stuff matters, of course. 09:40:34 What about the analog output value of the d-flip-flop? 09:40:44 Well, D flip flops are digital components. 09:40:51 Yeah 09:40:54 --- quit: rdrop-exit (Quit: rdrop-exit) 09:40:57 KipIngram: yeah about transistors. Why do some curiculum still spend so much time on BJT when most circuits nowdays use MOSFETs? 09:41:07 They promise that "when I'm high I'll be higher than Vmin, and when I'm low I'll be lower than Vlo-max. 09:41:15 That can vary from lot to lot. 09:41:17 I wouldn't expect one to rely on the output apart from high-low right? 09:41:22 Right 09:41:33 Right, exactly. 09:41:37 I know more about digital than analog 09:41:41 Even if you find one where that works, you can't count on it. 09:41:45 Long term. 09:41:48 Albeit both are very interesting 09:42:03 Anyway, that guy was a contractor - didn't even work for the company, and was on the other side of the politics war. 09:42:09 BJT? 09:42:14 I couldn't "challenge him" on analog - he just played his expert card. 09:42:20 So I hired an undeniably better expert. 09:42:25 He quit two weeks later. 09:42:27 ;-) 09:42:34 Bipolar junction transistor. 09:42:48 It's a type of transistor; contrast to "MOS." 09:42:48 KipIngram: doping migration in semiconductors are fun. One application widely used nowdays is solid state non volatile memory but comes at a cost of you can only write to each cell so many times. 09:42:53 Metal oxide semiconductor. 09:43:22 Yeah, I have a degree of knowledge of that stuff, but far from expert. 09:43:32 I listen in fascination when we talk with our flash vendors here at work. 09:43:39 That program / erase cycle count is a big deal to us. 09:44:15 Sadly we don't cover transistors 09:44:20 I find all of the silicon level stuff fascinating. 09:44:27 KipIngram: yeah, the erase method is power hungry too. I am looking more heavily towards hysteresis based storage methods nowdays. 09:44:31 Which are undoubtedly one of the most useful 09:44:34 That book I gave you above presents it in a very understandable way. 09:44:48 Ah. Is it hard to find? 09:44:59 siraben: naah, just damn expensive. 09:45:02 All the books we talk about here have been :-) 09:45:03 I doubt it. 09:45:06 Yeah ^ 09:45:19 https://www.amazon.com/Art-Electronics-Paul-Horowitz/dp/0521809266?SubscriptionId=AKIAILSHYYTFIVPWUY6Q&tag=duckduckgo-d-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=0521809266 09:45:20 I'll find a copy online 09:45:26 * Zarutian notes it doubly so where he lives. 09:45:41 I only do that when I want to refer to a book, but of course I buy tbem 09:46:13 for the curious and uncommitted I have pointed to allaboutcircuits.com 09:46:20 My copy is old - they did a big update somewhere in there that added a lot more digital stuff. 09:46:24 Mine pre-dates that. 09:46:26 Zarutian: Which country do you live in? 09:46:34 siraben: Iceland 09:46:42 Zarutian: That's a good website 09:46:56 I need to drive for a bit - back shortly. 09:46:58 Ah. Would like to go there someday 09:47:02 siraben: hence sometimes I ask about unfamiliar english words or colloquisms 09:47:25 Have a couple of friends that have been there, its gorgeous. 09:47:43 Much much colder than Thailand for sure ;) 09:48:24 siraben: eh, you might want to hold that a bit. Too damn many tourists that do not heed that this country is dangerous if you are 'oblivious' to the warning signs. 09:48:53 How come? 09:48:54 those signs are not there due to 'legal liability' they are there because we frankly dont want to send you back home in a casket 09:49:12 that is, if your whole body is ever found. 09:49:36 O.o what makes it dangerous? 09:49:54 weather is one big factor. 09:50:48 another is at places like Reynisfjara, dangerous natural forces. The surf that comes in there is directly from the Atlantic and the undertow is tremendous. 09:51:28 if you were to launch from that place and head directly south, the first land you would come across is Antartica 09:51:53 How close is Icelandic to other nordic languages like Swedish and Norweigen? 09:52:07 Norwegian* 09:52:16 siraben: eeh, not that close but there is some mutual understanding. 09:52:47 Finnish is totally different, right? 09:52:54 siraben: also we learn elementary/basic danish or swedish at school. 09:53:15 yeah Finnish is nothing like anything else I heard. 09:54:22 Oh cool. The only nordic language I've attempted to self-study is swedish so far. It's quite easy because of its regularity 09:54:48 siraben: yebb but due to historical reasons it uses german orthography 09:54:49 Although the ett/en nouns I get mixed up with 09:56:28 sireben: svo du kan fatta hvad siger på broten nordic. (Reasons for that I have mixed up to many phrases from norweigan, danish and swedish) 09:56:40 Would you say Icelandic is easy to learn? 09:57:20 siraben: from migrants I know here, hell no. On the level of german plus there are some sounds that are rarely used in other languages. 09:58:35 siraben: Tja, sumum nemum gengur þó nokkuð vel að læra tungumál þetta en eigi ef eldri málvenjuer eru notaðar. <- try that one for size. 09:59:16 Broten nordic = British nordic? 09:59:24 borken 09:59:30 broken 09:59:52 Is that danish? 09:59:55 but not as hork borked as that swedish chef from the muppets uses. 10:00:40 siraben: the sentence that had the word 'nordic' in it? yeah mostly 10:00:56 Jag antar det 10:01:35 s/uer/ur/ 10:01:50 damn typo. 10:02:46 Oops. It's 12:01 a.m. now, probably should get to bed. Thanks for the chat, be back in ~ 6.5 hours 10:04:09 --- join: dys (~dys@tmo-123-187.customers.d1-online.com) joined #forth 10:06:36 Wouldn't it be cool if runes were still used as a writing system? 10:06:56 It's gone because of the spread of christianity, I presume? 10:08:15 siraben: naah, it is more due to the implement used for 'writing'. Easier to write latin letters with pen and such. Specially cursive writing. 10:08:54 siraben: runes are cut with a sharp implement like knife into a piece of woord or carved into stone. 10:11:38 wood* 10:22:03 --- quit: dys (Ping timeout: 244 seconds) 11:05:45 --- quit: jedb (Read error: Connection reset by peer) 11:18:23 --- join: jedb (~jedb@199.66.90.113) joined #forth 11:28:14 I'm thinking of writing an IRC bot similar to #haskell's lambdabot that can safely execute Forth and return the output of a given expression 11:29:09 I don't know if I should recompile a Forth to remove any system words, OPEN-FILE etc, or if I can encapsulate the program in a shell script that removes restricted words 11:29:40 Leaning towards the former, as string manipulation could potentially lead to unwanted effects 11:46:02 WilhelmVonWeiner: why not remove such system-words, reimplement them to use simple IPC over stdin and stdout and have an shell script virtualize that? 11:47:01 heck you could use termbin or other pastebin for 'storage' 12:44:30 --- join: dys (~dys@tmo-080-154.customers.d1-online.com) joined #forth 12:54:25 --- join: kumool (~kumool@adsl-64-237-233-141.prtc.net) joined #forth 13:40:10 --- join: olopierpa (4f11e502@gateway/web/freenode/ip.79.17.229.2) joined #forth 14:57:28 --- join: wa5qjh (~quassel@175.158.225.196) joined #forth 14:57:28 --- quit: wa5qjh (Changing host) 14:57:28 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 15:42:02 --- quit: dave9 (Quit: dave's not here) 15:59:28 --- quit: wa5qjh (Remote host closed the connection) 16:07:43 WilhelmVonWeiner: What I would do is write a "interpreter" in Forth for a restricted language. 16:08:28 Ah, but if you're trying to execute Forth safely, things can get hairy. 16:09:15 What if you use a sandboxed environment like https://repl.it/languages/forth ? 16:10:36 That one runs in JavaScript 16:11:35 Zarutian: Makes sense. Also, Icelandic seems to use a few characters that Old English used to have that are dropped now 16:12:04 --- join: wa5qjh (~quassel@175.158.225.193) joined #forth 16:12:04 --- quit: wa5qjh (Changing host) 16:12:04 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 16:12:37 I had to use Google Translate for that one. ;) 16:15:19 --- quit: wa5qjh (Remote host closed the connection) 16:15:46 siraben: maybe I'll just implement quasi-forth on top of Python or Go 16:16:05 But then it's just not the same. 16:16:09 Sounds like a good idea. 16:16:13 There's a Forth in Bash already 16:16:24 WilhelmVonWeiner: I did a C-based one that was actually pretty complete. 16:16:49 * siraben wonders about the implications of an assembly language bot 16:17:00 I never got the primitives ported from C snips to "the image"; they still lived whereever C put them. 16:17:13 But in all other respects it was a "real" Forth. 16:19:05 siraben: the problem I have with a Forth bot is you need it to have the dictionary and stacks implemented as a starting point 16:19:27 Sure. You can have a high-level implementation of that 16:19:28 and assembler bot, really doesn't need as much structure bwhind it 16:20:03 An assembler bot would be a nightmare. Arbitrary code on your CPU? 16:20:12 virtual cpu 16:20:20 Right. 16:20:46 What would be a good idea is if your Forth bot could "load" from URLs 16:21:22 Say I uploaded my program to a paste website, and it can download the raw characters and parse the program as if I had typed it here. 16:22:34 what's the point in that being an IRC bot really, just use a normal program 16:22:52 Yeah. 16:22:59 Are you planning on writing it in Haskell? 16:23:05 I was thinking just 80 characters, maybe you can do multiple lines but only a handful 16:23:08 No Haskell 16:26:11 Oh how I hate GUI changes on apps that have worked perfectly fine. 17:01:23 --- quit: nighty- (Quit: Disappears in a puff of smoke) 17:07:02 --- quit: kumool (Quit: Leaving) 17:13:34 Oh yeah. I agree totally. I've seen programs get to a *completely good* state, but they just can't stop messing with it. 17:13:42 Guess everyone has to continue to justify their existence. 17:13:52 "Change" isn't always positive. 17:18:59 --- quit: olopierpa (Ping timeout: 256 seconds) 17:24:41 --- join: tabemann (~tabemann@rrcs-162-155-170-75.central.biz.rr.com) joined #forth 17:37:53 --- join: nighty- (~nighty@kyotolabs.asahinet.com) joined #forth 18:09:38 --- quit: tabemann (Ping timeout: 244 seconds) 18:10:34 --- join: [1]MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 18:13:37 --- quit: MrMobius (Ping timeout: 252 seconds) 18:13:38 --- nick: [1]MrMobius -> MrMobius 18:56:36 KipIngram: the product manager need more and more features . so we need to mess our clean design 18:56:54 but the PM were also driven by other department 18:57:02 this is the real life 18:57:48 My favorite job, of my whole career, was working for a company called BP Microsystems. 18:58:07 I wound up their VP of engineering, and the owner was a visionary who simply decided what he wanted the product to do. 18:58:34 He thought it out to the 50k foot level or so, and then handed it off to me and we went off and made it happen. 18:58:59 by BP you mean the oil company? 18:59:08 No, completely unrelated. 18:59:31 In fact, today it's called BPM Microsystems, because "big BP" came in and said "We have more lawyers and you're going to change your name." 18:59:40 ^ The real world. 18:59:46 lol 19:00:04 The company was founded by two guys named Bill and Peter. 19:00:13 Bill pushed Peter out before I got there. 19:01:11 sound's like microsoft 19:09:46 I couldn't find a dspic33 emulator so I think maybe I'll need to write one. 19:10:15 I'm going to write it in forth. 19:11:38 Perhaps instruction set emulation in forth could be of use in cross-compilation? 19:13:00 So you have words implementing the behavior of different instructions for the emulator... 19:14:29 ...and your cross-compiler wordset targets these behaviors instead of the instruction encodings themselves. 19:17:04 ...and then 'decompiles' the behaviors into machine code 'names' of these behaviors. 19:23:00 eh maybe easier to just swap the encodings. 19:25:51 a forth cross compiler is already a kind of emulator, albeit at the forth level not the machine code level. 19:32:39 It might still be interesting to do a machine instruction set level forth cross-compiler instead of just at the higher level of a core wordset. 19:41:59 --- quit: dddddd (Remote host closed the connection) 19:42:52 --- join: tabemann (~tabemann@2602:30a:c0d3:1890:d004:a860:b5ff:7c1c) joined #forth 22:13:41 --- join: wa5qjh (~quassel@175.158.225.193) joined #forth 22:13:41 --- quit: wa5qjh (Changing host) 22:13:41 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 22:15:13 --- quit: FatalNIX (Changing host) 22:15:13 --- join: FatalNIX (~FatalNIX@unaffiliated/fatalnix) joined #forth 22:25:13 --- quit: dys (Ping timeout: 260 seconds) 23:59:59 --- log: ended forth/18.10.17