Quick note on setting up our programming environment for Coursera.org “DeepLearning.AI TensorFlow Developer Professional Certificate” on Ubuntu 18.04LTS

Recently we were working on some local Jupyter notebooks for the “DeepLearning.AI TensorFlow Developer Professional Certificate“.

To prepare for the setup with GPU, we followed the instructions at https://www.tensorflow.org/install/gpu. But as we were going through the notebooks we noticed the following error at the terminal:

W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcublas.so.10'; dlerror: libcublas.so.10: cannot open shared object file: No such file or directory

Even though libcublas.so.10 was installed it was not loading. Using find was saw that it was installed and available at the folder /usr/local/cuda-10.2/targets/x86_64-linux/lib/ but it was ignored.

To fix this, we added a new entry in ~/.profile as follows:

if [ -d "/usr/local/cuda-10.2/targets/x86_64-linux/lib/" ]; then
    export LD_LIBRARY_PATH=/usr/local/cuda-10.2/targets/x86_64-linux/lib/:${LD_LIBRARY_PATH}
fi

And then executed source ~/.profile from the terminal which we would start the jupyter-notebook command.

After this, library was loaded as expected.


Set Up OpenVPN Connect with .ovpn profile for Apple iOS (iPhone, iPad)

Search and install OpenVPN Connect from the App Store,
or download and install it from here:
https://apps.apple.com/us/app/open-vpn-connect/id590379981

After the OpenVPN Connect is installed, open the application and proceed to accept the data license agreement and configure your settings for the notifications.

In the past you could import a profile that was available on your device (e.g. if you had the .ovpn file in the Downloads folder) through the Files application.

Unfortunately, this is no more. If you press and hold the .ovpn configuration file and click on Share, you will not get the option Copy to OpenVPN

It appears that you either need to do this through iTunes or an email that arrives to the Mail application! If the email arrives to another mail client it will not work..

The configuration profile will now be opened in OpenVPN Connect.
Click on Add.

And the click on Add again:

Click on Allow so that the OpenVPN Connect application will be able to create the necessary VPN configurations.

After this step, the profile should be operational and working properly.


Latex/Beamer: Notes page would not use whole space when in 16:9 aspect ratio

In a recent presentation we did, we added a lot of long notes…
At the specific document we had changed the aspect ratio to 16:9 using the following documentclass.

%[aspectratio=169] changes aspect ratio for slides from 4:3 to 16:9, should be better with columns
\documentclass[aspectratio=169]{beamer}

When we compiled the presentation showing the notes on the second screen, we noticed that the notes were not utilizing all of the white space. There was a huge empty column to the right, most probably it was the space that was added after changing the aspect ratio from 4:3 to 16:9.

The template we were using for the notes page was plain. To fix this issue we used the following commands to create a new version for the plain template, called wideplain.

\makeatletter
\defbeamertemplate{note page}{wideplain}{
	\vskip.25em
	\nointerlineskip
	\begin{minipage}{.9\paperwidth}
		\insertnote
	\end{minipage}
}
\makeatother

After we used this new template, the notes became wider and they used all of the available space.

%Enable to produce notes
\usepackage{pgfpages}
\setbeameroption{show notes on second screen=right}
\setbeamertemplate{note page}[wideplain]

Note:

In the code we defined the new template, initially we used \textwidth instead of \paperwidth which resulted in the same result as the plain template. So we assume that there is an issue somewhere that the notes template does not adapt its \textwidth properly when changing the paper aspect ratio.


Latex/Beamer: Do you type too many notes?

We most certainly do!

For that reason we needed to make the template for the notes as simple as possible. To avoid developing our own template for the notes page, we used one of the three basic predefined templates named plain.

Using plain we got an empty slide in the notes page which allowed us to add a lot more content!

The basic 3 template options for the notes slide are the following

  1. default The default template shows the last slide in the upper right corner and some information that should help you match a note page to the slide that is currently shown (e.g. title of section and subsection).
  2. compress The option produces an output that is similar to the default, it fits more content onto each note page at the price of legibility.
  3. plain An empty page to add notes to.

Usage example:

\documentclass{beamer}
\usepackage{pgfpages}
\setbeameroption{show notes on second screen=right}
\setbeamertemplate{note page}[default]
\begin{document}
\begin{frame}
Some content.
\note{Some note for the content}
\end{frame}
\end{document}

Beamer: Reasons to avoid allowframebreaks

Recently we were relying too much on allowframebreaks to automatically split a frame to multiple slides.

We were trying to make our notes spread across all slides that were automatically generated. After reading the Beamer User Guide, we learned a couple of new things.

A) Once you use allowframebreaks then you cannot use overlays.

B) Any notes for the frame created using the \note command will be inserted after the first page of the frame and will not be split among other pages.

C) We should refrain from using the option allowframebreaks except for long bibliographies (which by the way should be avoided anyway in presentations).

D) The use of this option is evil ^___^ as it promotes bad design and lack of thought when creating a presentation.

Anyway, back to the drawing board!