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

help-circle



  • Read other people’s code… particularly code by experienced developers. One good way to do that is to single-step debugging through the test code in a well-known package, stepping into the code being tested.

    I suppose if you don’t know how test frameworks like pytest work, tackling how they work and how to do single-stepping with some toy example code will be a prerequisite for the above, as will spending some time studying how packages are made. (The latter may seem unattractively tedious, but the knowledge will pay off even if you never become an expert at making your own packages.)

    These exercises are very likely to expose weaknesses in your understanding of all sorts of things. Be patient and keep studying!


  • 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.



  • I view college as training for dealing with deadlines and some logic practice (e.g. this essay isn’t coherent; math exam next Wednesday). I never see people come through the door ready to go… it takes a few weeks before even the most basic tasks can be delegated. Their writing still sucks 90% of the time, and their math is usually shaky (lucky we have automated many steps with computers.)

    I agree that the pace at which all this goes is exhausting and more breaks are needed, but the third world is still full of people working overtime to overtake these “professional” jobs that colleges purport to prep workers for. Don’t go to an overpriced Ivy League school and take on debt and expect a 20h week… go to a govt sponsored school and be prepared to compete with the remote workers working for the company that is undercutting your employer. Welcome to globalization.





  • 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.





  • Using sudo when it isn’t necessary, and the real cannon: sudo su… Adding sudo to your command lines indiscriminately causes files you create to be owned by root even though they are in your home directory, and then you end up using sudo to make changes to the files… and then the filesystem permissions cannot prevent you from successfully running an accidental “sudo rm -rf /” command.

    Seriously… sudo is not a “habit” to develop in order to avoid dealing with filesystem permissions problems.


  • Noob question?

    You do seem confused though… Debian is both a distribution and a packaging system… the Debian Stable distribution takes a very conservative approach to updating packages, while Debian Sid (unstable) is more up-to-date while being more likely to break. While individual packages may be more stable when fully-updated, other packages that depend on them generally lag and “break” as they need updating to be able to adapt to underlying changes.

    But the whole reason debian-based distros exist is because some people think they can strike a better balance between newness and stability. But it turns out that there is no optimal balance that satifies everyone.

    Mint is a fine distro… but if you don’t like it, that is fine for you too. The only objection I have to your objection is that you seem to be throwing the baby out with the bathwater… the debian packaging system is very robust and is not intrinsically unlikely to be updated.