rsync is an extremely useful utility for synchronizing files between remote computers. It is the primary tool I use to deploy code to targets such as servers, Raspberry Pies, or other remote Linux machines. In this post, I am going to show the basic rsync usage examples, break down the meaning of the widely-used options of the rsync command, and demonstrate the principles of deployment of files to an AWS EC2 instance using rsync with an SSH key.
When it comes to building and installing OpenCV with Python support on *nix platforms, the collection of tutorials by Adrian Rosebrock is the best. He provides detailed description of the required steps, as well as motivation for better development practices. In particular, Adrian creates a dedicated virtualenv environment, installs NumPy in it, and builds the whole thing having this environment activated. Such a solution worked pretty well for me, both on Linux and macOS.
When working with GigE Vision cameras, it is important to be able to receive Ethernet frames of larger sizes than one gets in the default configuration. In particular, the default value of Maximum Transmission Unit (MTU) is 1500 bytes. By setting this parameter to the maximum (9000 bytes), a video streaming application handles smaller number of frames per second. This results in a decreased CPU load by cutting the number of operations for reconstructing image data from multiple small Ethernet frames.