• 0 Posts
  • 33 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2023

help-circle


  • When you come across some Python code for something written 5 years ago and they used four contributed packages that the programmers have changed the API on three times since then, you want to set up a virtual environment that contains those specific versions so you can at least see how it worked at that time. A small part of this headache comes from Python itself mutating, but the bulk of the problem is the imported user-contributed packages that multiply the functionality of Python.

    To be sure, it would be nice if those programmers were all dedicated to updating their code, but with hundreds of thousands of packages that could be imported written by volunteers, you can’t afford to expect all of them them to stop innovating or even to continue maintaining past projects for your benefit.

    If you have the itch to fix something old so it works in the latest versions of everything, you have that option… but it is really hard to do that if you cannot see it working as it was designed to work when it was built.



  • No.

    If you ever so carefully paint yourself into a corner then the corner is where you will be stuck. How badly do you want out of your corner?

    There are FOSS and SAAS options that could work if you wanted them to… but whether they will depends on you.

    Meat eaters trying to become vegetarian for ethical reasons often fail because the “un-meat” options out there don’t meet their standards. Success almost always requires some letting go and re-adjusting. If you are not open to that then don’t force yourself to put up with something you don’t really want.



  • I would say you are lucky. I lived in my college town for 20years and it started out chock full of co-ops in the 80s and by the time I moved away they were all hardly recognizable or gone. Food co-ops, housing co-ops, internet co-ops… all mutated away from shared labor or were replaced by sole ownerships.

    My wife works for an employee-owned engineering company, but they are anything but FOSS in their culture.

    I hope these intermediate management structures that combine expertise and collective ownership grow more. But it still isn’t a slam-dunk that should be assumed to be the stupidly-obvious approach unless such organizations compete with the grifters… and then their success won’t be due to the fact that they are using FOSS but that they present a track record of success as an organization.


  • … and there are a gazillion examples where no community forms and the founder burns out. Cheers where it works, but some projects aren’t sexy enough to attract a self-sustaining community, and when you don’t preselect success stories but choose according to external needs that hit-and-miss experience starts to look less obvious and more like the thing only “smart” people can succeed at.

    My objection is to the idea that FOSS is easy… it does require some smarts to succeed with.


  • Don’t get me wrong… I am all for FOSS and I avoid walled gardens, but people have a hard time remembering to take the trash out to the street on the right day. Spending time driving garbage trucks monthly in the local waste management Co-op is not going to fly well. That problem gets solved using money… homeowners are taxed and the local government either hires garbagepeoples directly, or more often they hire a company that takes care of the problem.

    Upshot there is money rather than co-op ownership, and frequently for-profit contractors win the day over government ownership. Contractors supply GaaS, we just have to get the bin to the street. So the equivalency here is the need for the public institution known as city government to retain ownership of the waste management system. Not quite “the people”, since getting co-op volunteers is, well, erratic at best. And there are a ridiculous number of people out there who are vehemently against government management of actual organizations like this. I am for it, but over and over I see “privatization” win elections.

    So I am not seeing how pitching this as “stupidly obvious” will win when “obvious” means hiring a contractor nearly every time.



  • Resistance is like shocks on a car… push hard to compress and it compresses faster. push less hard (voltage) and it doesn’t move as fast (current). Pull it (negative voltage) and it expands (current flowing the other way). Resistors resist (voltage against) flow (current).

    Capacitors you sorta seem to get: current flowing in one direction through a capacitor builds up voltage the remains after the current stops… like the force in a spring builds up as it compresses and when the motion stops the force is still there.

    What you seem to confuse with resistance is inductance, where the force (voltage) on an air hockey puck makes it speed up (current flow), and when the force stops pushing it it just keeps moving (current keeps flowing).

    The general term for these voltage-current relationships is impedance, because in the general case where voltage or current is oscillating or rapidly switching on and off you get some effects that resemble resistance (voltage pushing back on current or vice versa).

    Final concept is that any time you have something trying to force specific levels of current or voltage on a pin, the “setter” (whatever is doing the forcing, typically referred to as the “source”) has impedance and so does the “getter” (whatever is being forced, referred to as the “load”). If you have a fishing rod and you want the tip to move slowly, you can easily move it where you want it to go, but if you want to shake it fast it won’t move as far (the weight of the tip is like inductance resisting the motion with force/voltage).

    So, a microchip pin might have high resistance to ground but also high capacitance to ground… and a quick pulse of voltage will immediately cause current to flow into the empty capacitor, and if the capacitance is big enough the voltage won’t change much, or will require more time to change. High capacitance has low impedance… it sucks up any available current as the desired change in voltage happens. interestingly, there are two options for making the pin voltage change faster… increase the current level being used by the source (by reducing impedance within the source so it can get out to the pin easier), or reducing the amount of current required to change the pin voltage by raising the impedance to ground inside the chip package (that is, reducing the capacitance inside the chip package).

    When the source impedance is very very large, that is like having the signal generator probe laying on the bench instead of connected to the pin. When the source impedance is large and the internal pin impedance is large, then any stray electric or magnetic fields can push the pin voltage around easily. This is what they call floating… and if the microchip is reacting to those erratic voltage signals then the circuit as a whole will behave erratically as it tries to react to noisy input.

    An output pin usually (but not always) has a lower source impedance than a tri-state input in its high impedance state. If you connect it to a floating input then the input stops floating and follows whatever the source is forcing it to.

    An input pin usually has an input impedance similar to the source impedance of sources connected to it… this generally allows the input to be controlled most quickly. Inputs whose voltage doesn’t change quickly tend to be less useful than ones the do change quickly bandwidth and clock speeds can be faster.

    If you try to connect microchips built with different technologies together (e.g. CMOS vs TTL) then they may not communicate quickly or with minimal wasted power because they have different typical impedances (and voltage levels).





  • Pretty vague question.

    One assumption that “mathy types” like to make is that the slope be negative-proportional to how far the value (not slope) is from the desired target value… and then you get an exponential decay (buzzword). But there are lots of other assumptions one could make… some of which lead to PID control (buzz; very mathy stuff).

    But these days you could use a neural net (buzz; so mathy they don’t usually pretend to understand what the NN “learns”) or fuzzy logic (buzz; which is ideally intuitive but has many surprisingly mathy assumptions) to make the behavior nonlinear and go to the desired result much faster… so really, there are many many possible answers. Maybe you can watch some ELI5 videos about these buzzwords and refine your question?


  • There are thousands of programs for Linux… but you should be warned that relatively few programs run natively on both Windows and Linux. In some cases there are ways to run “Windows programs” on Linux, but in general such successes are special cases. If you absolutely must have Windows you can run it in a virtual machine… but you will most likely be happiest with Linux if you aren’t chasing after such things.

    I use Windows for work because our IT department only supports that… but I use cygwin and wsl to get a smidgen of my familiar Linux tools that I use on my personal computers.