8. Miscellaneous Guides

Header 1

Header 2

Header 3

body row 1

column 2 more info

column 3

8.1. Doxygen Notes

To generate pdf output from doxygen, make sure to have latex output set, and then in latex directory run make.

Doxygen config items:

  • [ ] project name

  • [ ] inputs

  • [ ] adding directive to parse pyx files (see cython_examples)

  • [ ] generating UML class digrams

  • [ ] OS pre-reqs for linux/max

8.2. Mount Remote Directory Locally in Linux

In the case of remote development, it may be beneficial to mount the remote’s development path on the local computer, use a local file editor to make and save changes, and then compile and run remotely.

In linux, to mount a remote directory from a remote machine, use sshfs:

sudo apt-get install sshfs

Then, it is neccesary to create a local directory into which the remote will mount:

mkdir /my/local/mount/point

Finally, use sshfs to mount the remote directory into the newly created local:

sudo sshfs -o allow_other remote_user@10.10.10.10:/remote/path/to/mount/ /my/local/mount/point

Source: [ref].

8.3. Linux / Mac Splitting TAR Files

To create tar archive:

# first tar the folder:
tar -cvzf tarFileName.tar.gz /Directory/To/Tar/*

# then split the folder:
split -b 2000m tarFileName.tar.gz "tarFileName.tar.gz.part"

# to recombine:
cat tarFileName.tar.gz.part* > tarFileName.tar.gz

8.4. Local app install

Application executibles can be installed by placing a sh script to launch the application under $HOME/.local/bin, this will be visible to the current user.

8.5. Sphinx & GitHub Pages

Source: [ref].

IMPORTANT NOTE: github uses jekyll to generate pages, however, standard sphinx doc structure has a _static folder generate with all css and js files. When Github tried to compile the site with jekyll, files/folders with _ are ignored.

THEREFORE when using the gh-pages branch side-by-side repo config as per the instructions in the ref, it is important to add .nojekyll in the root directory. This allows style sheets and js to work correctly.

FOLLOW UP I’ll look into hosting the docs right from main repo, gh-pages seems to be able to support that now, could be very useful!

TODO: Add conf.py info for relative paths!

8.5.1. Drawio w/ Sphinx

see: https://pypi.org/project/sphinxcontrib-drawio/

To get this to work, need to make sure sphinxcontrib-drawio to the extensions in conf.py for docs.

Then, need to add the application executible for sphinx to render the drawing by adding drawio_binary_path='/path/to/app' in the conf.py configuraiton file.

Then, Images can be rendered and exported using a modified image directive.

Note, drawio page id can be used to specify which page of the diagram to export.

The drawio diagrams can be stored in a relative location to source, during document compilation, drawio will be used to render the image and place it in appropriate folder under html build directory.

../_images/diagram00.png

An example diagram

8.6. GDB Remote Debugging C++

TODO:

  • go to build location of executible

  • make sure to build with debug

  • run gdb myexecutible to open gdb interface

  • then, to set break point, use ``?

  • to run with debug use -r arg1 arg2…

  • on segfault/etc, use bt to back trace where the failure occured