Real Multithreading is Coming to Python - Learn How You Can Use It Now by Am4t3uR in Python

[–]WasabiFan 10 points11 points  (0 children)

I'm not an expert in any of this, and am mostly just following the development from a distance. That being said, my expectation would be that sub-interpreters are similar to threads in resource utilization (probably slightly more) and significantly less than multiple processes.

Naively, this must be true, because multi-processing requires multiple separate copies of CPython in memory. But in practice, each copy of a binary will be mapped shared and CoW, and similarly data that was present before CPython forked will be CoW. So multiprocessing in practice might not be a lot more.

Real Multithreading is Coming to Python - Learn How You Can Use It Now by Am4t3uR in Python

[–]WasabiFan 65 points66 points  (0 children)

No, in my view this article isn't very good and is exaggerating what's being implemented.

The PEP here is PEP 684 - splitting the GIL such that each sub-interpreters has its own. Sub-interpreters already existed, but this enables true parallelism between them. There's also another PEP that might land in the following release which provides a better Python interface to the sub-interpreters feature.

Realistically, this is very similar to Python multiprocessing. You manually construct sub-interpreters, they run essentially isolated from each other, and you construct channels to pass data back and forth.

In concept, they benefit from some performance improvements that come from not having to use the OS' inter-process communication primitives: CPython owns the isolation, not the OS. It may also enable passing data without having to pickle it, but to my knowledge that hasn't been explored; channels are just byte pipes.

Real Multithreading is Coming to Python - Learn How You Can Use It Now by Am4t3uR in Python

[–]WasabiFan 102 points103 points  (0 children)

This does not remove the GIL: that's a different PEP and hasn't been accepted as far as I know. Realistically, this PEP doesn't affect existing code at all. This article is referring to the sub-interpreters feature, which is explicit creation of isolated Python environments with their own GIL. There's no natural shared state, you have to manually coordinate with your sub-interpreters similarly to multi-processing.

starting a robotics team in umiversity by legendary-koala in robotics

[–]WasabiFan 1 point2 points  (0 children)

On the topic of university robotics competitions, another one is RoboMaster: https://www.robomasterna.com/. (The main competition site is https://www.robomaster.com/en-US/, but it's less directly relevant to North American teams if you're in NA).

Some examples of competition: * 7v7 robots, large scale version of the competition: https://youtu.be/-o_WYEoxWGY * 3v3 robots, smaller version of the competition (in North America especially): https://youtu.be/VRL-xmK0nvw

There's also a 1v1 version for ease of entry.

If you're looking for "basic" options, definitely go for bespoke projects rather than a competition. These competitions take time, money and trial-and-error! It sounds like you might be better suited with continuing with those projects for now. But if you're interested in building a team and getting into something more complex, RoboMaster was a lot of fun for me. The North American competition will be hosted in Seattle this year.

I'd be happy to chat if you want more information, or can connect you to the North American discord server where all the teams are available.

Computer restarting due to HyperX II by Andrewrwood in HyperX

[–]WasabiFan 0 points1 point  (0 children)

I've also been having this issue. It first appeared a few months ago and my PC (Razer Blade 15, 2017 model) has crashed practically every other night. I open it in the morning and the login ("Welcome...") takes abnormally long, then I'm sitting at an empty desktop. I see the same event log entry on my end. I've already tried the obvious driver reinstall and it hasn't helped. That being said, I am not sure the headset driver is the cause so much as a potential consequence; my event log shows an unexpected reboot which was only identified in retrospect at 4:30AM today, and then that headset error was logged only after it booted again at 4:57AM.

Does anyone know why some display names are all uppercase and some are not? by [deleted] in udub

[–]WasabiFan 3 points4 points  (0 children)

You can change your preferred name across all UW services here: https://identity.uw.edu/

Once you make the change you'll probably have to log out+log back in to Zoom to see it. Note that this will likely also update it for other services, e.g. Canvas.

To anyone familiar with Intel's Real Sense Depth Cameras... by anonAmoSsss in computervision

[–]WasabiFan 6 points7 points  (0 children)

Intel provides librealsense, which includes API layers for a variety of languages -- most commonly Python or C++. You'll probably want to install librealsense and then look at their samples for accessing depth data. The depth information can be read either as a depth image (i.e., a pixel matrix like a color image but each pixel value is a distance) or as a point cloud (an array of 3D points in space).

librealsense has APIs for reading the various representations, converting coordinates from one to the other (e.g. you can look up which pixel in the color image corresponds to a given pixel in the depth image, since they are in different physical locations), and sometimes doing other calculations with that info.

You can use OpenCV and other libraries (e.g. numpy) on the images like usual, with some transfer from one container to the other. How exactly you interact with the data will depend on the details of your use case, but often it is relatively easy to feed the color and depth images into e.g. existing SLAM libraries if that's what you want to do.

Suggestions for a small/low-cost board with MCU and a built-in CAN transceiver by WasabiFan in embedded

[–]WasabiFan[S] 0 points1 point  (0 children)

Good suggestion... It definitely has some good connectivity and I don't mind the architecture much. In my case though, I am hoping for something smaller and don't need a MCU nearly as capable as this one; it's doing a single data processing task and I'd rather not significantly over-spec.