<?xml version="1.0" encoding="UTF-8"?><feed
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:thr="http://purl.org/syndication/thread/1.0"
	xml:lang="en-US"
	>
	<title type="text">mypapit  gnu/linux </title>
	<subtitle type="text">Free and Open Source blogger with an attitude</subtitle>

	<updated>2026-01-15T04:59:19Z</updated>

	<link rel="alternate" type="text/html" href="https://blog.mypapit.net/" />
	<id>https://blog.mypapit.net/feed/atom</id>
	<link rel="self" type="application/atom+xml" href="https://blog.mypapit.net/feed/atom" />

	<generator uri="https://wordpress.org/" version="6.8.3">WordPress</generator>
<icon>https://blog.mypapit.net/wp-content/uploads/2017/12/cropped-web_hi_res_512-32x32.png</icon>
	<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[yt-dlp &#8211; a verstatile video downloader tool]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2026/01/yt-dlp-a-verstatile-video-downloader-tool.html" />

		<id>https://blog.mypapit.net/?p=2658</id>
		<updated>2026-01-15T04:59:19Z</updated>
		<published>2026-01-15T04:56:50Z</published>
		<category scheme="https://blog.mypapit.net/" term="Ubuntu/Debian" /><category scheme="https://blog.mypapit.net/" term="ffmpeg" /><category scheme="https://blog.mypapit.net/" term="linux" /><category scheme="https://blog.mypapit.net/" term="ubuntu" /><category scheme="https://blog.mypapit.net/" term="video" /><category scheme="https://blog.mypapit.net/" term="windows" /><category scheme="https://blog.mypapit.net/" term="youtube" />
		<summary type="html"><![CDATA[<p>yt-dlp is a command-line tool for which allows a user to download audio/video from thousands of sites. The project is a fork of youtube-dl, which is based on the now inactive youtube-dlc. yt-dlp can be installed using official releases or via package manager. Unix-like operating system To update yt-dlp in Unix-like operating system Homebrew MacOS &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2026/01/yt-dlp-a-verstatile-video-downloader-tool.html" class="more-link">Continue reading<span class="screen-reader-text"> "yt-dlp &#8211; a verstatile video downloader tool"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2026/01/yt-dlp-a-verstatile-video-downloader-tool.html">yt-dlp &#8211; a verstatile video downloader tool</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2026/01/yt-dlp-a-verstatile-video-downloader-tool.html"><![CDATA[
<p><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a> is a command-line tool for which allows a user to download audio/video from thousands of sites. The project is a fork of youtube-dl, which is based on the now inactive youtube-dlc.</p>



<p>yt-dlp can be installed using official releases or via package manager.</p>



<p><strong>Unix-like operating system</strong></p>



<pre class="wp-block-code"><code>curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o ~/.local/bin/yt-dlp
chmod a+rx ~/.local/bin/yt-dlp  # Make executable</code></pre>



<p><strong>To update yt-dlp in Unix-like operating system</strong></p>



<pre class="wp-block-code"><code>yt-dlp -U</code></pre>



<p><strong>Homebrew MacOS</strong></p>



<pre class="wp-block-code"><code>brew install yt-dlp
</code></pre>



<p><strong>Ubuntu</strong></p>



<pre class="wp-block-code"><code>sudo add-apt-repository ppa:tomtomtom/yt-dlp # Add ppa repo to apt<br />sudo apt update # Update package list<br />sudo apt install yt-dlp # Install yt-dlp</code></pre>



<p><strong>Snap</strong></p>



<pre class="wp-block-code"><code>sudo snap install --edge yt-dlp</code></pre>



<p><strong>Windows operating system</strong></p>



<p>yt-dlp is also available for Windows operating system by using, winget:</p>



<pre class="wp-block-code"><code>winget install yt-dlp
</code></pre>



<p><strong>Microsoft Windows binary package</strong></p>



<p>The binary package for Microsoft Windows binary package can be downloaded from <a href="https://github.com/yt-dlp/yt-dlp/releases">yt-dlp GitHub release page</a></p>



<p>Note that yt-dlp requires ffmpeg windows binaries which can be obtained from <a href="https://www.gyan.dev/ffmpeg/builds/#about-these-builds">gyan.dev&#8217;s  Codex FFMPEG Build</a></p>



<p>Please refer to this post for more information on the tips and tricks on using yt-dlp.</p>



<p></p>
<p>The post <a href="https://blog.mypapit.net/2026/01/yt-dlp-a-verstatile-video-downloader-tool.html">yt-dlp &#8211; a verstatile video downloader tool</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://blog.mypapit.net/2026/01/yt-dlp-a-verstatile-video-downloader-tool.html#comments" thr:count="0" />
			<link rel="replies" type="application/atom+xml" href="https://blog.mypapit.net/2026/01/yt-dlp-a-verstatile-video-downloader-tool.html/feed/atom" thr:count="0" />
			<thr:total>0</thr:total>
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[Semi-automatic bash script for triggering NVIDIA GPU fan in Linux]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2025/07/semi-automatic-bash-script-for-triggering-nvidia-gpu-fan-in-linux.html" />

		<id>https://blog.mypapit.net/?p=2636</id>
		<updated>2025-07-26T10:06:29Z</updated>
		<published>2025-07-25T03:59:17Z</published>
		<category scheme="https://blog.mypapit.net/" term="Bash Scripts" /><category scheme="https://blog.mypapit.net/" term="GNU/Linux" /><category scheme="https://blog.mypapit.net/" term="Nvidia" /><category scheme="https://blog.mypapit.net/" term="Ubuntu/Debian" /><category scheme="https://blog.mypapit.net/" term="bash" /><category scheme="https://blog.mypapit.net/" term="gpu" /><category scheme="https://blog.mypapit.net/" term="nvidia" />
		<summary type="html"><![CDATA[<p>https://gist.github.com/mypapit/01770a1fa47826db1f50caf45f6a9035.js Hello everybody. I’m sharing a handy script I use to semi-automatically check my GPU temperature and turn on the fan if things get a bit too warm. I run this on my dedicated SoHo PC server, which hosts a modest LLM and a Minecraft server (yes, both at the same time). Feel free to &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2025/07/semi-automatic-bash-script-for-triggering-nvidia-gpu-fan-in-linux.html" class="more-link">Continue reading<span class="screen-reader-text"> "Semi-automatic bash script for triggering NVIDIA GPU fan in Linux"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2025/07/semi-automatic-bash-script-for-triggering-nvidia-gpu-fan-in-linux.html">Semi-automatic bash script for triggering NVIDIA GPU fan in Linux</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2025/07/semi-automatic-bash-script-for-triggering-nvidia-gpu-fan-in-linux.html"><![CDATA[
<script src="https://gist.github.com/mypapit/01770a1fa47826db1f50caf45f6a9035.js"></script>



<p><a href="https://gist.github.com/mypapit/01770a1fa47826db1f50caf45f6a9035.js">https://gist.github.com/mypapit/01770a1fa47826db1f50caf45f6a9035.js</a></p>



<p>Hello everybody.  I’m sharing a handy script I use to <em>semi-automatically</em> check my GPU temperature and turn on the fan if things get a bit too warm.</p>



<p>I run this on my dedicated SoHo PC server, which hosts a modest LLM and a Minecraft server (yes, both at the same time).</p>



<p>Feel free to drop any suggestions or ideas in the comments. I’d love to hear how you’d improve it!</p>



<p></p>



<p>p/s:  I&#8217;ve used GWE and CoolerControl, but it doesn&#8217;t fit my use case.</p>
<p>The post <a href="https://blog.mypapit.net/2025/07/semi-automatic-bash-script-for-triggering-nvidia-gpu-fan-in-linux.html">Semi-automatic bash script for triggering NVIDIA GPU fan in Linux</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://blog.mypapit.net/2025/07/semi-automatic-bash-script-for-triggering-nvidia-gpu-fan-in-linux.html#comments" thr:count="4" />
			<link rel="replies" type="application/atom+xml" href="https://blog.mypapit.net/2025/07/semi-automatic-bash-script-for-triggering-nvidia-gpu-fan-in-linux.html/feed/atom" thr:count="4" />
			<thr:total>4</thr:total>
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[Building Tensorflow Python Wheel for NVIDIA RTX50 series]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2025/07/building-tensorflow-python-wheel-for-nvidia-rtx50-series.html" />

		<id>https://blog.mypapit.net/?p=2626</id>
		<updated>2025-07-23T08:53:38Z</updated>
		<published>2025-07-23T08:53:38Z</published>
		<category scheme="https://blog.mypapit.net/" term="General" />
		<summary type="html"><![CDATA[<p>If you are adventurous, you can refer to wutzebaer/tensorflow-5090 for a guide on how to build Python Pip Wheel for RTX50 accelerated Tensorflow.</p>
<p>The post <a href="https://blog.mypapit.net/2025/07/building-tensorflow-python-wheel-for-nvidia-rtx50-series.html">Building Tensorflow Python Wheel for NVIDIA RTX50 series</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2025/07/building-tensorflow-python-wheel-for-nvidia-rtx50-series.html"><![CDATA[
<p>If you are adventurous, you can refer to <a href="https://github.com/wutzebaer/tensorflow-5090">wutzebaer/tensorflow-5090</a> for a guide on how to build Python Pip Wheel for RTX50 accelerated Tensorflow.</p>



<p></p>



<p></p>
<p>The post <a href="https://blog.mypapit.net/2025/07/building-tensorflow-python-wheel-for-nvidia-rtx50-series.html">Building Tensorflow Python Wheel for NVIDIA RTX50 series</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[Install Tensorflow with RTX 50 series GPU acceleration with Python wheel for Ubuntu 24.04 (and Windows WSL2)]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2025/06/install-tensorflow-with-rtx-50-series-gpu-acceleration-with-python-wheel-for-ubuntu-24-04-and-windows-wsl2.html" />

		<id>https://blog.mypapit.net/?p=2610</id>
		<updated>2025-07-24T07:10:36Z</updated>
		<published>2025-06-24T03:38:05Z</published>
		<category scheme="https://blog.mypapit.net/" term="GNU/Linux" /><category scheme="https://blog.mypapit.net/" term="Python" /><category scheme="https://blog.mypapit.net/" term="Ubuntu/Debian" /><category scheme="https://blog.mypapit.net/" term="cuda" /><category scheme="https://blog.mypapit.net/" term="machine learning" /><category scheme="https://blog.mypapit.net/" term="nvidia" /><category scheme="https://blog.mypapit.net/" term="tensorflow" />
		<summary type="html"><![CDATA[<p>It seems that the Tensorflow acceleration is broken with the latest RTX50 series GPU, especially with the most cost effective RTX5060Ti 16GB card. This is a guide to install Tensorflow with RTX50 (Blackwell) card GPU acceleration with the python wheel. First you need to download this python wheel. It is compiled for Ubuntu 24.04 or &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2025/06/install-tensorflow-with-rtx-50-series-gpu-acceleration-with-python-wheel-for-ubuntu-24-04-and-windows-wsl2.html" class="more-link">Continue reading<span class="screen-reader-text"> "Install Tensorflow with RTX 50 series GPU acceleration with Python wheel for Ubuntu 24.04 (and Windows WSL2)"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2025/06/install-tensorflow-with-rtx-50-series-gpu-acceleration-with-python-wheel-for-ubuntu-24-04-and-windows-wsl2.html">Install Tensorflow with RTX 50 series GPU acceleration with Python wheel for Ubuntu 24.04 (and Windows WSL2)</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2025/06/install-tensorflow-with-rtx-50-series-gpu-acceleration-with-python-wheel-for-ubuntu-24-04-and-windows-wsl2.html"><![CDATA[
<p>It seems that the Tensorflow acceleration is broken with the latest RTX50 series GPU, especially with the most cost effective RTX5060Ti 16GB card.</p>



<p>This is a guide to install Tensorflow with RTX50 (Blackwell) card GPU acceleration with the python wheel.</p>



<p>First you need to download this python wheel. It is compiled for Ubuntu 24.04 or WSL2 with Ubuntu 24.04. </p>



<p><a href="https://github.com/mypapit/tensorflowRTX50/releases">https://github.com/mypapit/tensorflowRTX50/releases</a></p>



<p>Then you may need to create a python virtual environment for the wheel.</p>



<pre class="wp-block-code"><code>sudo apt install python3-pip
sudo apt install python3-venv

# replace tensorflow220 with your preferred env name
python3 -m venv tensorflow220
</code></pre>



<p>Then you need to activate the environment. </p>



<pre class="wp-block-code"><code>source tensorflow220/bin/activate</code></pre>



<p>Then you may install the tensorflow wheel. To make it easier, you can also install it alongside other requirements.</p>



<pre class="wp-block-code"><code>pip install tensorflow-2.20.0dev0+selfbuild-cp312-cp312-linux_x86_64.whl seaborn pandas matplotlib opencv-python pillow imutils pydot graphviz librosa</code></pre>



<p>Then, you must install CUDA 12.8.1 and CUDNN 9.8.0, please refer to these links:</p>



<ul class="wp-block-list">
<li><a href="https://developer.nvidia.com/cuda-12-8-1-download-archive">https://developer.nvidia.com/cuda-12-8-1-download-archive</a></li>



<li><a href="https://developer.nvidia.com/cudnn-9-8-0-download-archive?target_os=Linux&amp;target_arch=x86_64">https://developer.nvidia.com/cudnn-9-8-0-download-archive?target_os=Linux&amp;target_arch=x86_64</a></li>
</ul>



<p>Follow the instructions on the NVIDIA websites to install both cuda-12.8.1 and CUDNN 9.8.0</p>



<p><strong>Install Nvidia Linux Driver</strong> (not required for WSL2)</p>



<p>Then you must install the latest NVIDIA Linux driver.</p>



<p>At the time of the writing, the latest driver is <strong>570.169 (June 17, 2025)</strong></p>



<p>The NVIDIA Linux driver is not required for Ubuntu 24.04 under WSL2. For that, you need to install Microsoft Windows NVIDIA driver available from NVIDIA App.</p>



<h2 class="wp-block-heading"><strong>About the python wheel file:</strong></h2>



<p>The python wheel file is compiled in Ubuntu 24.04 with llvm and CUDA Toolkit 12.8.1.  It supports compute_86, compute_89 and compute_120 cuda devices, which correspond to NVIDIA GPU card with Turing, Ada and Blackwell architectures (or in layman terms: RTX 30, RTX 40 and RTX 50) series. </p>



<p>The python wheel file also comes with AVX, AVX2 and FMA support for both Intel and AMD cpu acceleration.</p>



<p>The Tensorflow version installed is the Tensorflow 2.20dev edition, nightly from : </p>



<p><a href="https://github.com/tensorflow/tensorflow">https://github.com/tensorflow/tensorflow</a></p>



<p>Finally you can test the Tensorflow binaries with the following command. </p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="682" height="173" src="https://blog.mypapit.net/wp-content/uploads/2025/06/Screenshot-2025-06-24-113310.png" alt="" class="wp-image-2613" srcset="https://blog.mypapit.net/wp-content/uploads/2025/06/Screenshot-2025-06-24-113310.png 682w, https://blog.mypapit.net/wp-content/uploads/2025/06/Screenshot-2025-06-24-113310-468x119.png 468w" sizes="(max-width: 682px) 100vw, 682px" /></figure>
<p>The post <a href="https://blog.mypapit.net/2025/06/install-tensorflow-with-rtx-50-series-gpu-acceleration-with-python-wheel-for-ubuntu-24-04-and-windows-wsl2.html">Install Tensorflow with RTX 50 series GPU acceleration with Python wheel for Ubuntu 24.04 (and Windows WSL2)</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://blog.mypapit.net/2025/06/install-tensorflow-with-rtx-50-series-gpu-acceleration-with-python-wheel-for-ubuntu-24-04-and-windows-wsl2.html#comments" thr:count="10" />
			<link rel="replies" type="application/atom+xml" href="https://blog.mypapit.net/2025/06/install-tensorflow-with-rtx-50-series-gpu-acceleration-with-python-wheel-for-ubuntu-24-04-and-windows-wsl2.html/feed/atom" thr:count="10" />
			<thr:total>10</thr:total>
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[How to get Tensorflow acceleration with NVIDIA RTX 50 series GPU with docker ( RTX5060Ti 16GB) for Ubuntu and Windows WSL2]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2025/06/how-to-get-tensorflow-acceleration-with-nvidia-rtx-50-series-gpu-with-docker-rtx5060ti-16gb-for-ubuntu-and-windows-wsl2.html" />

		<id>https://blog.mypapit.net/?p=2605</id>
		<updated>2025-06-24T03:39:41Z</updated>
		<published>2025-06-13T04:35:53Z</published>
		<category scheme="https://blog.mypapit.net/" term="docker" /><category scheme="https://blog.mypapit.net/" term="GNU/Linux" /><category scheme="https://blog.mypapit.net/" term="Ubuntu/Debian" />
		<summary type="html"><![CDATA[<p>It seems that the Tensorflow acceleration is broken with the latest RTX50 series GPU, especially with the most cost effective RTX5060Ti 16GB card. This is a how to guide to re-enable the Tensorflow acceleration with the official Tensorflow docker image from NVIDIA Basically you need to install these four things: Docker Installing NVIDIA GPU Driver &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2025/06/how-to-get-tensorflow-acceleration-with-nvidia-rtx-50-series-gpu-with-docker-rtx5060ti-16gb-for-ubuntu-and-windows-wsl2.html" class="more-link">Continue reading<span class="screen-reader-text"> "How to get Tensorflow acceleration with NVIDIA RTX 50 series GPU with docker ( RTX5060Ti 16GB) for Ubuntu and Windows WSL2"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2025/06/how-to-get-tensorflow-acceleration-with-nvidia-rtx-50-series-gpu-with-docker-rtx5060ti-16gb-for-ubuntu-and-windows-wsl2.html">How to get Tensorflow acceleration with NVIDIA RTX 50 series GPU with docker ( RTX5060Ti 16GB) for Ubuntu and Windows WSL2</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2025/06/how-to-get-tensorflow-acceleration-with-nvidia-rtx-50-series-gpu-with-docker-rtx5060ti-16gb-for-ubuntu-and-windows-wsl2.html"><![CDATA[
<p>It seems that the Tensorflow acceleration is broken with the latest RTX50 series GPU, especially with the most cost effective RTX5060Ti 16GB card. </p>



<p>This is a how to guide to re-enable the Tensorflow acceleration with the official Tensorflow docker image from NVIDIA</p>



<p>Basically you need to install these four things:</p>



<ol class="wp-block-list">
<li>Docker (if you haven&#8217;t installed already)</li>



<li><a href="https://www.nvidia.com/en-in/drivers/">NVIDIA GPU drivers for Linux (only for Ubuntu)</a></li>



<li><a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html#">NVIDIA Container Toolkit</a></li>



<li><a href="https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow">NVIDIA Tensorflow Docker containers</a></li>
</ol>



<p class="has-medium-font-size"><strong>Docker</strong></p>



<pre class="wp-block-code"><code>apt -y install docker</code></pre>



<p><strong>Installing NVIDIA GPU Driver</strong></p>



<p>After downloading the NVIDIA GPU drivers for Linux (only for fully Linux-based operating system). This step is unnecessary for Microsoft Windows WSL2</p>



<pre class="wp-block-code"><code>bash NVIDIA_Linux_x86_64 570.153.02.run
</code></pre>



<p><strong>Installing NVIDIA Container Toolkit</strong></p>



<p>Follow the instruction here: <a href="https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html">https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html</a></p>



<p>Do not forget to configure docker</p>



<pre class="wp-block-code"><code>sudo nvidia-ctk runtime configure --runtime=docker
</code></pre>



<p>Then restart docker to enable gpu driver integration</p>



<pre class="wp-block-code"><code>sudo systemctl restart docker
</code></pre>



<p>Test the nvidia driver under the container runtime </p>



<pre class="wp-block-code"><code>sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
</code></pre>



<p><strong>Install NVIDIA Tensorflow docker containers (basic)</strong></p>



<pre class="wp-block-code"><code>docker run --gpus all -it --rm nvcr.io/nvidia/tensorflow:xx.xx-tfx-py3
</code></pre>



<p>Replace the xx with the actualy version of the tensorflow containers, at the time of the writing it is:</p>



<pre class="wp-block-code"><code>docker run --gpus all -it --rm nvcr.io/nvidia/tensorflow:25.02-tf2-py3
</code></pre>



<p>If you want to run it inside the docker, and link your <em>/home </em>directory with the <em>/workspace</em>  directory inside the docker image, you can just run :</p>



<pre class="wp-block-code"><code>docker run --gpus all -it --rm -v /home/username:/workspace nvcr.io/nvidia/tensorflow:25.02-tf2-py3
</code></pre>



<p><strong>BONUS: How to install Spyder, Jupyterlab and additional Tensorflow/Keras libraries in NVIDIA docker image</strong></p>



<p>I&#8217;ve prepared a <a href="https://gist.github.com/mypapit/d40248ee81acbcf23b24a8afbffbc1a5">Dockerfile </a>to rebuild the NVIDIA Tensorflow docker container with GPU acceleration. Download the dockerfile and run &#8220;docker build&#8221; with this parameter</p>



<pre class="wp-block-code"><code>docker build -t my-nvidia-tf-ds .
</code></pre>



<p>Then you can run the container with GPU acceleration</p>



<pre class="wp-block-code"><code>docker run --gpus all -it --rm -v /root:/workspace my-nvidia-tf-ds
</code></pre>



<p>You can also expose the port and run Jupyterlab within the docker image.  Just follow this step:</p>



<pre class="wp-block-code"><code>docker run --gpus all -p 8888:8888 -it my-nvidia-tf-ds \
jupyter lab --ip=0.0.0.0 --allow-root
</code></pre>



<p>Additionally, you can run Spyder in the docker image by forwarding xhost :</p>



<pre class="wp-block-code"><code>xhost +local:docker

docker run -it --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
-v /root:/workspace my-nvidia-tf-ds

spyder</code></pre>



<p></p>



<p>Hopefully this would help you run GPU accelerated Tensorflow with RTX50 series GPU card.</p>



<p>This also works under Microsoft Windows 11 / WSL2 environment too!</p>



<p>If you want to install Tensorflow with RTX 50 series support directly inside your Ubuntu environment, then refer to this post:</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-mypapit-gnu-linux wp-block-embed-mypapit-gnu-linux"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="VXXsWr6k9F"><a href="https://blog.mypapit.net/2025/06/install-tensorflow-with-rtx-50-series-gpu-acceleration-with-python-wheel-for-ubuntu-24-04-and-windows-wsl2.html">Install Tensorflow with RTX 50 series GPU acceleration with Python wheel for Ubuntu 24.04 (and Windows WSL2)</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Install Tensorflow with RTX 50 series GPU acceleration with Python wheel for Ubuntu 24.04 (and Windows WSL2)&#8221; &#8212; mypapit  gnu/linux " src="https://blog.mypapit.net/2025/06/install-tensorflow-with-rtx-50-series-gpu-acceleration-with-python-wheel-for-ubuntu-24-04-and-windows-wsl2.html/embed#?secret=k4i9u2WxbF#?secret=VXXsWr6k9F" data-secret="VXXsWr6k9F" width="525" height="296" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>The post <a href="https://blog.mypapit.net/2025/06/how-to-get-tensorflow-acceleration-with-nvidia-rtx-50-series-gpu-with-docker-rtx5060ti-16gb-for-ubuntu-and-windows-wsl2.html">How to get Tensorflow acceleration with NVIDIA RTX 50 series GPU with docker ( RTX5060Ti 16GB) for Ubuntu and Windows WSL2</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[How to install cockpit dashboard on older Raspberry Pi 3, running Bookworm]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2025/03/how-to-install-cockpit-dashboard-on-older-raspberry-pi-3-running-bookworm.html" />

		<id>https://blog.mypapit.net/?p=2595</id>
		<updated>2025-03-29T15:47:56Z</updated>
		<published>2025-03-29T15:40:21Z</published>
		<category scheme="https://blog.mypapit.net/" term="Computers" /><category scheme="https://blog.mypapit.net/" term="GNU/Linux" /><category scheme="https://blog.mypapit.net/" term="Server" /><category scheme="https://blog.mypapit.net/" term="Tips &#038; Guides" /><category scheme="https://blog.mypapit.net/" term="Ubuntu/Debian" /><category scheme="https://blog.mypapit.net/" term="debian" /><category scheme="https://blog.mypapit.net/" term="monitoring" /><category scheme="https://blog.mypapit.net/" term="raspberry pi" /><category scheme="https://blog.mypapit.net/" term="raspberrypi" />
		<summary type="html"><![CDATA[<p>Cockpit dashboard is a convenient dashboard for home user or enthusiasts for monitoring several SOHO servers. It supports multiple Linux based operating system, however there are some caveats in installing in Raspberry Pi 3 as it runs on older Bookworm based operating system. first your need to add bookworm-backports. Then you need to configure the &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2025/03/how-to-install-cockpit-dashboard-on-older-raspberry-pi-3-running-bookworm.html" class="more-link">Continue reading<span class="screen-reader-text"> "How to install cockpit dashboard on older Raspberry Pi 3, running Bookworm"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2025/03/how-to-install-cockpit-dashboard-on-older-raspberry-pi-3-running-bookworm.html">How to install cockpit dashboard on older Raspberry Pi 3, running Bookworm</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2025/03/how-to-install-cockpit-dashboard-on-older-raspberry-pi-3-running-bookworm.html"><![CDATA[
<p><a href="http://cockpit-project.org">Cockpit dashboard</a> is a convenient dashboard for home user or enthusiasts for monitoring several SOHO servers. It supports multiple Linux based operating system, however there are some caveats  in installing in Raspberry Pi 3 as it runs on older Bookworm based operating system.</p>



<p>first your need to add bookworm-backports.</p>



<pre class="wp-block-code"><code>echo "deb http://deb.debian.org/debian ${VERSION_CODENAME}-backports main" | sudo tee /etc/apt/sources.list.d/backports.list</code></pre>



<p>Then you need to configure the keyring</p>



<pre class="wp-block-code"><code>curl -O http://http.us.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2023.4_all.deb 
</code></pre>



<pre class="wp-block-code"><code>sudo dpkg -i debian-archive-keyring_2023.4_all.deb  </code></pre>



<p>Afterwards, you need to run this combo command to update software packages list</p>



<pre class="wp-block-code"><code>apt update  &amp;&amp; apt -y upgrade</code></pre>



<p>Then finally you install cockpit via bookworm-backports</p>



<pre class="wp-block-code"><code>apt install -t bookworm-backports cockpit</code></pre>



<p>After everything is done, you may check cockpit dashboard by going to:<br />http://&lt;ip address&gt;:9090. and log in using your system username and password.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;69b0b84f89044&quot;}" data-wp-interactive="core/image" class="wp-block-image size-full is-style-default wp-lightbox-container"><img decoding="async" width="998" height="683" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://blog.mypapit.net/wp-content/uploads/2025/03/image.png" alt="sample screenshot of cockpit on raspberry pi 3 / bookworm" class="wp-image-2599" srcset="https://blog.mypapit.net/wp-content/uploads/2025/03/image.png 998w, https://blog.mypapit.net/wp-content/uploads/2025/03/image-768x526.png 768w, https://blog.mypapit.net/wp-content/uploads/2025/03/image-468x320.png 468w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="Enlarge"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on-async--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
<p>The post <a href="https://blog.mypapit.net/2025/03/how-to-install-cockpit-dashboard-on-older-raspberry-pi-3-running-bookworm.html">How to install cockpit dashboard on older Raspberry Pi 3, running Bookworm</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[Command line to test disk speed in Linux]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2025/03/command-line-to-test-disk-speed-in-linux.html" />

		<id>https://blog.mypapit.net/?p=2593</id>
		<updated>2025-03-25T05:33:44Z</updated>
		<published>2025-03-25T05:33:44Z</published>
		<category scheme="https://blog.mypapit.net/" term="General" />
		<summary type="html"><![CDATA[<p>You can use this code to test out the disk speed of your Linux system credit: https://github.com/ethereum/go-ethereum/issues/26174</p>
<p>The post <a href="https://blog.mypapit.net/2025/03/command-line-to-test-disk-speed-in-linux.html">Command line to test disk speed in Linux</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2025/03/command-line-to-test-disk-speed-in-linux.html"><![CDATA[
<p>You can use this code to test out the disk speed of your Linux system</p>



<pre class="wp-block-code"><code></code></pre>



<pre class="wp-block-code"><code>dd if=/dev/zero of=/tmp/output conv=fdatasync bs=384k count=1k; rm -f /tmp/output
</code></pre>



<p>credit: <a href="https://github.com/ethereum/go-ethereum/issues/26174">https://github.com/ethereum/go-ethereum/issues/26174</a></p>
<p>The post <a href="https://blog.mypapit.net/2025/03/command-line-to-test-disk-speed-in-linux.html">Command line to test disk speed in Linux</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[OVHCloud VPS Hosting : USD0.97/mo for 20GB SSD and 2GB RAM]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2024/03/ovhcloud-vps-hosting-usd0-97-mo-for-20gb-ssd-and-2gb-ram.html" />

		<id>https://blog.mypapit.net/?p=2588</id>
		<updated>2024-03-06T05:05:20Z</updated>
		<published>2024-03-06T05:05:19Z</published>
		<category scheme="https://blog.mypapit.net/" term="General" />
		<summary type="html"><![CDATA[<p>Grab this opportunity. OVHCloud is offering VPS Hosting for USD 0.97/mo for this VPS spec: 20GB SSD Storage2GB RAM1vCore100Mbps unmetered This VPS / KVM option is available in several datacenters : Get the OVHcloud USD 0.97/mo offer here before it expired!</p>
<p>The post <a href="https://blog.mypapit.net/2024/03/ovhcloud-vps-hosting-usd0-97-mo-for-20gb-ssd-and-2gb-ram.html">OVHCloud VPS Hosting : USD0.97/mo for 20GB SSD and 2GB RAM</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2024/03/ovhcloud-vps-hosting-usd0-97-mo-for-20gb-ssd-and-2gb-ram.html"><![CDATA[
<p>Grab this opportunity. </p>



<p>OVHCloud is offering VPS Hosting for USD 0.97/mo for this VPS spec:</p>



<p>20GB SSD Storage<br />2GB RAM<br />1vCore<br />100Mbps unmetered</p>



<p>This VPS / KVM option is available in several datacenters :</p>



<ul class="wp-block-list">
<li>Singapore</li>



<li>Australia</li>



<li>North America /Canada</li>



<li>Western Europe / France</li>



<li>Central Europe / Germany</li>



<li>Western Europe / UK</li>
</ul>


<figure class="wp-block-image"><a href="https://ibb.co/4fCXwbC"><img decoding="async" src="https://i.ibb.co/hMr4xGr/ovhcloud.png" alt="ovhcloud" border="0" /></a></figure>


<p>Get the <a href="https://www.ovhcloud.com/asia/vps/">OVHcloud USD 0.97/mo offer here</a> before it expired!</p>
<p>The post <a href="https://blog.mypapit.net/2024/03/ovhcloud-vps-hosting-usd0-97-mo-for-20gb-ssd-and-2gb-ram.html">OVHCloud VPS Hosting : USD0.97/mo for 20GB SSD and 2GB RAM</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[nmap scanning for ip camera in the network]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2024/02/nmap-scanning-for-ip-camera-in-the-network.html" />

		<id>https://blog.mypapit.net/?p=2584</id>
		<updated>2024-02-12T05:02:47Z</updated>
		<published>2024-02-12T04:58:08Z</published>
		<category scheme="https://blog.mypapit.net/" term="Tips &#038; Guides" /><category scheme="https://blog.mypapit.net/" term="linux" /><category scheme="https://blog.mypapit.net/" term="network" /><category scheme="https://blog.mypapit.net/" term="nmap" /><category scheme="https://blog.mypapit.net/" term="security camera" /><category scheme="https://blog.mypapit.net/" term="Server" />
		<summary type="html"><![CDATA[<p>Here&#8217;s an nmap snippet for scanning for hidden cctv / ip camera in the network Or you can write as : Make sure you have permission to scan on the network!</p>
<p>The post <a href="https://blog.mypapit.net/2024/02/nmap-scanning-for-ip-camera-in-the-network.html">nmap scanning for ip camera in the network</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2024/02/nmap-scanning-for-ip-camera-in-the-network.html"><![CDATA[
<p>Here&#8217;s an nmap snippet for scanning for hidden cctv / ip camera in the network</p>



<pre class="wp-block-code"><code>nmap -sV --script=http-enum,http-title,rtsp-url-brute -p 80,443,554,8000 &lt;ip range&gt;
</code></pre>



<p>Or you can write as :</p>



<pre class="wp-block-code"><code>sudo nmap -sV --script=http-enum,http-title,rtsp-url-brute -p 80,443,554,8000 192.168.0.0/24
</code></pre>



<p>Make sure you have permission to scan on the network!</p>
<p>The post <a href="https://blog.mypapit.net/2024/02/nmap-scanning-for-ip-camera-in-the-network.html">nmap scanning for ip camera in the network</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://blog.mypapit.net/2024/02/nmap-scanning-for-ip-camera-in-the-network.html#comments" thr:count="2" />
			<link rel="replies" type="application/atom+xml" href="https://blog.mypapit.net/2024/02/nmap-scanning-for-ip-camera-in-the-network.html/feed/atom" thr:count="2" />
			<thr:total>2</thr:total>
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[Getting Rid of /.well-known/traffic-advice 404 errors in nginx web server]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2024/02/getting-rid-of-well-known-traffic-advice-404-errors-in-nginx-web-server.html" />

		<id>https://blog.mypapit.net/?p=2575</id>
		<updated>2024-02-09T23:51:45Z</updated>
		<published>2024-02-09T23:43:16Z</published>
		<category scheme="https://blog.mypapit.net/" term="httpd" /><category scheme="https://blog.mypapit.net/" term="nginx" /><category scheme="https://blog.mypapit.net/" term="Server" /><category scheme="https://blog.mypapit.net/" term="linux" /><category scheme="https://blog.mypapit.net/" term="opensource" />
		<summary type="html"><![CDATA[<p>It seems Google have implemented private prefetch proxy in Chrome for Android. The upside of this private prefetch proxy is improved browsing experience for mobile users by reducing waiting time for web pages to load. The downside is, as web server administrators &#8211; you might find a lot of 404 status in your web logs. &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2024/02/getting-rid-of-well-known-traffic-advice-404-errors-in-nginx-web-server.html" class="more-link">Continue reading<span class="screen-reader-text"> "Getting Rid of /.well-known/traffic-advice 404 errors in nginx web server"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2024/02/getting-rid-of-well-known-traffic-advice-404-errors-in-nginx-web-server.html">Getting Rid of /.well-known/traffic-advice 404 errors in nginx web server</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2024/02/getting-rid-of-well-known-traffic-advice-404-errors-in-nginx-web-server.html"><![CDATA[
<p>It seems Google have implemented private prefetch proxy in Chrome for Android. </p>



<p>The upside of this private prefetch proxy is improved browsing experience for mobile users by reducing waiting time for web pages to load.</p>



<p>The downside is, as web server administrators &#8211; you might find a lot of 404 status in your web logs.</p>



<p>To solve this, you could either :</p>



<ul class="wp-block-list">
<li>Write directive to ignore 404 logs for &#8220;traffic-advice&#8221;</li>



<li> Create &#8220;/.well-known/traffic-advice file for each domain and set the file to be served with &#8220;application/trafficadvice+json&#8221; MIME type [<a href="https://developer.chrome.com/blog/private-prefetch-proxy/">source</a>]</li>
</ul>



<p><strong>Solution</strong></p>



<p>Luckily, TechTitBits have come up with a convenient solution which only involves adding a few lines in configuration files to enable Chrome for Android prefetched proxy in nginx.</p>



<pre class="wp-block-code"><code>location = /.well-known/traffic-advice {
    types { }
    default_type "application/trafficadvice+json; charset=utf-8";
    return 200 '&#91;{ "user_agent": "prefetch-proxy", "fraction": 1 }]';
}</code></pre>



<p>With this solution, you would only need to add the location block within the server { } context in the site configurations. </p>



<p>Thank you for the tip: <a href="https://techtitbits.com/posts/traffic-advice-nginx/">Traffic Advice configuration for Nginx</a></p>
<p>The post <a href="https://blog.mypapit.net/2024/02/getting-rid-of-well-known-traffic-advice-404-errors-in-nginx-web-server.html">Getting Rid of /.well-known/traffic-advice 404 errors in nginx web server</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[Bash code for analyzing web server traffic to determine which ip accessed the web server the most]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2024/02/bash-code-for-analyzing-web-server-traffic-to-determine-which-ip-accessed-the-web-server-the-most.html" />

		<id>https://blog.mypapit.net/?p=2568</id>
		<updated>2024-02-09T23:53:02Z</updated>
		<published>2024-02-07T02:23:48Z</published>
		<category scheme="https://blog.mypapit.net/" term="httpd" /><category scheme="https://blog.mypapit.net/" term="Web Server" /><category scheme="https://blog.mypapit.net/" term="bash" /><category scheme="https://blog.mypapit.net/" term="bash script" /><category scheme="https://blog.mypapit.net/" term="log analysis" /><category scheme="https://blog.mypapit.net/" term="web server" /><category scheme="https://blog.mypapit.net/" term="webserver" />
		<summary type="html"><![CDATA[<p>This handy script is useful for webserver traffic analysis task. It can be use to detect abusive IP address or spambots which accesses the webserver. ystem administrators can utilize the generated list of IP addresses to enhance webserver security by blocking those IPs deemed potentially harmful or suspicious.</p>
<p>The post <a href="https://blog.mypapit.net/2024/02/bash-code-for-analyzing-web-server-traffic-to-determine-which-ip-accessed-the-web-server-the-most.html">Bash code for analyzing web server traffic to determine which ip accessed the web server the most</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2024/02/bash-code-for-analyzing-web-server-traffic-to-determine-which-ip-accessed-the-web-server-the-most.html"><![CDATA[
<script src="https://gist.github.com/mypapit/c7fe9c335d7c2f605f11c591d0ff5f24.js"></script>



<p>This handy script is useful for webserver traffic analysis task. It can be use to detect abusive IP address or spambots which accesses the webserver.  </p>



<p>ystem administrators can utilize the generated list of IP addresses to enhance webserver security by blocking those IPs deemed potentially harmful or suspicious.</p>
<p>The post <a href="https://blog.mypapit.net/2024/02/bash-code-for-analyzing-web-server-traffic-to-determine-which-ip-accessed-the-web-server-the-most.html">Bash code for analyzing web server traffic to determine which ip accessed the web server the most</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[Configuration to run OJS 3 smoothly behind nginx reverse proxy]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2023/04/ojs3-behind-nginx-and-apache-proxy.html" />

		<id>https://blog.mypapit.net/?p=2550</id>
		<updated>2023-05-01T06:53:48Z</updated>
		<published>2023-04-28T02:24:13Z</published>
		<category scheme="https://blog.mypapit.net/" term="httpd" /><category scheme="https://blog.mypapit.net/" term="nginx" /><category scheme="https://blog.mypapit.net/" term="Open Source" /><category scheme="https://blog.mypapit.net/" term="Tips &#038; Guides" /><category scheme="https://blog.mypapit.net/" term="Web Server" /><category scheme="https://blog.mypapit.net/" term="opensource" /><category scheme="https://blog.mypapit.net/" term="ubuntu" />
		<summary type="html"><![CDATA[<p>A lot of people struggling in configuring PKP Open Journal System 3 (OJS3) to run behind nginx reverse proxy as OJS3 does not support nginx natively So most implementation would settle with Apache HTTPD server or install it behind nginx reverse proxy. However the problem is that the OJS3 behave badly when placed behind nginx &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2023/04/ojs3-behind-nginx-and-apache-proxy.html" class="more-link">Continue reading<span class="screen-reader-text"> "Configuration to run OJS 3 smoothly behind nginx reverse proxy"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2023/04/ojs3-behind-nginx-and-apache-proxy.html">Configuration to run OJS 3 smoothly behind nginx reverse proxy</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2023/04/ojs3-behind-nginx-and-apache-proxy.html"><![CDATA[
<p>A lot of people struggling in configuring PKP Open Journal System 3 (OJS3) to run behind nginx reverse proxy as OJS3 does not support nginx natively</p>



<p>So most implementation would settle with Apache HTTPD server or install it behind nginx reverse proxy.</p>



<p>However the problem is that the OJS3 behave badly when placed behind nginx reverse proxy, especially when the reverse proxy is using HTTPS / TLS. This messed up the based URL in the OJS3, subsequently causing some resources from the website to be unavailable.</p>



<p>To solve this, you only need to add a single line in the Apache HTTPD site configuration file.</p>



<pre class="wp-block-code"><code>        SetEnvIf X-Forwarded-Proto "https" HTTPS=on
</code></pre>



<p>A full blown example is included via gist</p>



<script src="https://gist.github.com/mypapit/41b396f317ed11b88079e96ad5d0c5b2.js"></script>
<p>The post <a href="https://blog.mypapit.net/2023/04/ojs3-behind-nginx-and-apache-proxy.html">Configuration to run OJS 3 smoothly behind nginx reverse proxy</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[Solving  DKIM verification FAILED with Bad Format in Gmail email messages]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2022/09/solving-dkim-verification-failed-with-bad-format-in-gmail-email-messages.html" />

		<id>https://blog.mypapit.net/?p=2546</id>
		<updated>2023-05-01T06:54:34Z</updated>
		<published>2022-09-04T03:49:13Z</published>
		<category scheme="https://blog.mypapit.net/" term="Server" /><category scheme="https://blog.mypapit.net/" term="Tips &#038; Guides" /><category scheme="https://blog.mypapit.net/" term="Ubuntu/Debian" /><category scheme="https://blog.mypapit.net/" term="dkim" /><category scheme="https://blog.mypapit.net/" term="email" />
		<summary type="html"><![CDATA[<p>DKIM (Domain keys identified Mail) is a scheme for which allows a receiver to verify that the email originated (or authorized) by the domain&#8217;s owner via a digital signature. Having DKIM signature adds credibility to the email messages sent from the origin host/domain, which is crucial for automated emailing system to avoid the messages from &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2022/09/solving-dkim-verification-failed-with-bad-format-in-gmail-email-messages.html" class="more-link">Continue reading<span class="screen-reader-text"> "Solving  DKIM verification FAILED with Bad Format in Gmail email messages"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2022/09/solving-dkim-verification-failed-with-bad-format-in-gmail-email-messages.html">Solving  DKIM verification FAILED with Bad Format in Gmail email messages</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2022/09/solving-dkim-verification-failed-with-bad-format-in-gmail-email-messages.html"><![CDATA[
<p><a href="https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail">DKIM (Domain keys identified Mail)</a> is  a scheme for  which allows a receiver to verify that the email originated (or authorized) by the domain&#8217;s owner via a digital signature.</p>



<p>Having DKIM signature adds credibility to the email messages sent from the origin host/domain, which is crucial for automated emailing system to avoid the messages from being suspected as SPAM email or spoofed email.</p>



<p>I managed to set up DKIM for an academic journal website which I&#8217;ve managed. The journal&#8217;s runs on Open Journal System web application, the addition of DKIM is crucial to avoid GMail or Microsoft Live from labeling the automated emails sent from the academic journal from being labeled as spam.  </p>



<p>At first I found that the DKIM scheme that I&#8217;ve setup was running fine and the email messages was verified correctly from my Organizational email domain.  However, I&#8217;ve noticed a problem when the automated email sent from OJS is not properly verified by Gmail-addressed account (@gmail.com).  Upon inspection in the email header, I&#8217;ve noticed that the GMail marked the DKIM signature sent from my domain as  &#8220;bad format&#8221;.   Example below:</p>



<pre class="wp-block-code"><code>DKIM:	'FAIL' with domain jcrinn.com

dkim=neutral (bad format) header.i=@example.com header.s=mail header.b=AbCdE5g;</code></pre>



<p>After hours of searching and debugging, including <a href="https://www.teamdotnetnuke.com/en-us/article/215-domainkeys-identified-mail-dkim">referring to the DKIM NS TXT record for reference</a>, I finally found out that Gmail treat the &#8220;g=*&#8221; optional parameter as required, and thus I&#8217;ve to append &#8220;;g=*&#8221; to the DKIM TXT record on my domains&#8217; DNS record.<br /><br />So it become similar like this:</p>



<pre class="wp-block-code"><code>TXT default._domainkey  v=DKIM1; p=yourPublicKeywHiCHi5+abit+1OnG; g=*</code></pre>



<p>After altering the records, it seems GMAIL finally able to verify the automated emails sent from my OJS-based web application</p>



<p></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="489" height="191" src="https://blog.mypapit.net/wp-content/uploads/2022/09/ojs-dkim.png" alt="" class="wp-image-2547" srcset="https://blog.mypapit.net/wp-content/uploads/2022/09/ojs-dkim.png 489w, https://blog.mypapit.net/wp-content/uploads/2022/09/ojs-dkim-468x183.png 468w" sizes="auto, (max-width: 489px) 100vw, 489px" /><figcaption class="wp-element-caption">The &#8220;signed-by&#8221; is visible when DKIM is successfully validated by GMail</figcaption></figure>



<p>Hopefully this will work out fine for you too!</p>



<p>P/S: DigitalOcean has an excellent tutorial on <a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy">DKIM installation and setup in GNU/Linux operating </a>system. </p>
<p>The post <a href="https://blog.mypapit.net/2022/09/solving-dkim-verification-failed-with-bad-format-in-gmail-email-messages.html">Solving  DKIM verification FAILED with Bad Format in Gmail email messages</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[How to convert character encoding in text files]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2022/02/how-to-convert-character-encoding-in-text-files.html" />

		<id>https://blog.mypapit.net/?p=2538</id>
		<updated>2023-05-01T06:55:23Z</updated>
		<published>2022-02-17T08:56:49Z</published>
		<category scheme="https://blog.mypapit.net/" term="General" /><category scheme="https://blog.mypapit.net/" term="Tips &#038; Guides" /><category scheme="https://blog.mypapit.net/" term="cli" /><category scheme="https://blog.mypapit.net/" term="commandline" /><category scheme="https://blog.mypapit.net/" term="encoding" /><category scheme="https://blog.mypapit.net/" term="utf8" />
		<summary type="html"><![CDATA[<p>Here is how to convert text files from one character encoding to another in GNU/Linux: The -f parameter denotes &#8220;from&#8221; and -t parameter denotes &#8220;to&#8221; character set.//IGNORE means the &#8220;iconv&#8221; will ignore any characters that are not available in the target character set. While &#8220;//TRANSLIT&#8221; means the converter will attempt to substitute characters that are &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2022/02/how-to-convert-character-encoding-in-text-files.html" class="more-link">Continue reading<span class="screen-reader-text"> "How to convert character encoding in text files"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2022/02/how-to-convert-character-encoding-in-text-files.html">How to convert character encoding in text files</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2022/02/how-to-convert-character-encoding-in-text-files.html"><![CDATA[
<p>Here is how to convert text files from one character encoding to another in GNU/Linux:</p>



<pre class="wp-block-code"><code>#eg1
iconv -f ASCII -t UTF-8//IGNORE file.txt -o output.txt

#eg 2
iconv -f ISO-8859-1 -t UTF-8//TRANSLIT file.txt output.txt</code></pre>



<p>The -f parameter denotes &#8220;from&#8221; and -t parameter denotes &#8220;to&#8221; character set.<br />//IGNORE means the &#8220;iconv&#8221; will ignore any characters that are not available in the target character set. </p>



<p>While &#8220;//TRANSLIT&#8221; means the converter will attempt to substitute characters that are not available in the target character set to the closest characters available, failing that, &#8220;???&#8221; will be replaced in its place.</p>



<p>Most GNU/Linux distribution have iconv preinstalled, if not, please consult your distribution documentation.</p>



<p></p>
<p>The post <a href="https://blog.mypapit.net/2022/02/how-to-convert-character-encoding-in-text-files.html">How to convert character encoding in text files</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[COVID-19 and Movement Control Order in Malaysia]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2020/03/covid-19-and-movement-control-order-in-malaysia.html" />

		<id>https://blog.mypapit.net/?p=2578</id>
		<updated>2024-02-09T23:50:58Z</updated>
		<published>2020-03-18T00:46:00Z</published>
		<category scheme="https://blog.mypapit.net/" term="Alor Setar" /><category scheme="https://blog.mypapit.net/" term="local" /><category scheme="https://blog.mypapit.net/" term="Malaysia" /><category scheme="https://blog.mypapit.net/" term="alor setar" /><category scheme="https://blog.mypapit.net/" term="malaysia" />
		<summary type="html"><![CDATA[<p>The government of Malaysia instituted Movement Control Order (MCO) in Malaysia which restricts all residents to their homes to control COVID-19 spreads. Today is the beginning of the MCO in Malaysia. The dangers of having COVID-19 viral influenza should not be understated as there are deaths from infections and there are also lasting effects from &#8230; </p>
<p class="link-more"><a href="https://blog.mypapit.net/2020/03/covid-19-and-movement-control-order-in-malaysia.html" class="more-link">Continue reading<span class="screen-reader-text"> "COVID-19 and Movement Control Order in Malaysia"</span></a></p>
<p>The post <a href="https://blog.mypapit.net/2020/03/covid-19-and-movement-control-order-in-malaysia.html">COVID-19 and Movement Control Order in Malaysia</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2020/03/covid-19-and-movement-control-order-in-malaysia.html"><![CDATA[
<p>The government of Malaysia instituted Movement Control Order (MCO) in Malaysia which restricts all residents to their homes to control COVID-19 spreads.<br /><br />Today is the beginning of the MCO in Malaysia. The dangers of having COVID-19 viral influenza should not be understated as there are deaths from infections and there are also lasting effects from the damage done by the viral infection.</p>



<p>Hoping that this will pass soon.</p>



<p></p>
<p>The post <a href="https://blog.mypapit.net/2020/03/covid-19-and-movement-control-order-in-malaysia.html">COVID-19 and Movement Control Order in Malaysia</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Mohammad Hafiz mypapit Ismail</name>
							<uri>http://mypapit.net/</uri>
						</author>

		<title type="html"><![CDATA[Embed Random Photos in Web or Mobile App with Lorem Picsum]]></title>
		<link rel="alternate" type="text/html" href="https://blog.mypapit.net/2018/01/embed-random-photos-web-mobile-app-lorem-picsum.html" />

		<id>https://blog.mypapit.net/?p=2519</id>
		<updated>2018-01-22T05:47:57Z</updated>
		<published>2018-01-22T05:47:30Z</published>
		<category scheme="https://blog.mypapit.net/" term="General" /><category scheme="https://blog.mypapit.net/" term="Tips &#038; Guides" /><category scheme="https://blog.mypapit.net/" term="api" /><category scheme="https://blog.mypapit.net/" term="photos" /><category scheme="https://blog.mypapit.net/" term="programming" /><category scheme="https://blog.mypapit.net/" term="web api" />
		<summary type="html"><![CDATA[<p>Lorem Picsum branded as  Lorem Ipsum for photos offers API for retrieving random photos. The usage is fairly simple, one only have to access the API URL, for example to retrieve a 300&#215;200 random photo, one just need to access this url: https://picsum.photos/300/200/?random Visit Lorem Picsum website for more API parameters. &#160; &#160;</p>
<p>The post <a href="https://blog.mypapit.net/2018/01/embed-random-photos-web-mobile-app-lorem-picsum.html">Embed Random Photos in Web or Mobile App with Lorem Picsum</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></summary>

					<content type="html" xml:base="https://blog.mypapit.net/2018/01/embed-random-photos-web-mobile-app-lorem-picsum.html"><![CDATA[<p><a href="https://picsum.photos/">Lorem Picsum</a> branded as  Lorem Ipsum for photos offers API for retrieving random photos.</p>
<p>The usage is fairly simple, one only have to access the API URL, for example to retrieve a 300&#215;200 random photo, one just need to access this url:</p>
<p><a href="https://picsum.photos/300/200/?random">https://picsum.photos/300/200/?random</a></p>
<p>Visit <a href="https://picsum.photos/">Lorem Picsum website</a> for more API parameters.</p>
<p>&nbsp;</p>
<p>&nbsp;<br />
<img decoding="async" src="https://picsum.photos/450/400/?random" alt="random picture" /></p>
<p>The post <a href="https://blog.mypapit.net/2018/01/embed-random-photos-web-mobile-app-lorem-picsum.html">Embed Random Photos in Web or Mobile App with Lorem Picsum</a> appeared first on <a href="https://blog.mypapit.net">mypapit  gnu/linux </a>.</p>
]]></content>
		
			</entry>
	</feed>
