<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>linux on Purinda Gunasekara</title>
		<link>https://purinda.com/tags/linux/</link>
		<description>Recent content in linux on Purinda Gunasekara</description>
		<generator>Hugo</generator>
		<language>en-AU</language>
		
		
		
		
			<lastBuildDate>Tue, 12 Dec 2023 09:17:30 +1100</lastBuildDate>
		
			<atom:link href="https://purinda.com/tags/linux/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Complete Guide on Setting up HAProxy to Terminate SSL Generated by LetsEncrypt (certbot)</title>
				<link>https://purinda.com/posts/complete-guide-on-setting-up-haproxy-to-terminate-ssl-generated-by-letsencrypt-certbot/</link>
				<pubDate>Wed, 24 May 2023 22:59:20 +1000</pubDate>
				<guid>https://purinda.com/posts/complete-guide-on-setting-up-haproxy-to-terminate-ssl-generated-by-letsencrypt-certbot/</guid>
				<description>&lt;h2 id=&#34;dns-configuration-for-your-domain&#34;&gt;DNS Configuration for Your Domain &lt;a class=&#34;anchor&#34; href=&#34;#dns-configuration-for-your-domain&#34; aria-label=&#34;Link to this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Before generating SSL certificates with Let’s Encrypt or any other certificate authority, you need to have proper DNS configuration for the domain you are trying to generate certificates for. This involves ensuring that the domain’s name servers are correctly set up and pointing to the appropriate DNS provider.&lt;/p&gt;&#xA;&lt;p&gt;Here are the general steps to configure DNS name servers for the domain:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Docker – External IP for Your Docker App</title>
				<link>https://purinda.com/posts/docker-external-ip-for-your-docker-app/</link>
				<pubDate>Sun, 17 Apr 2022 21:22:04 +1000</pubDate>
				<guid>https://purinda.com/posts/docker-external-ip-for-your-docker-app/</guid>
				<description>&lt;h2 id=&#34;back-story&#34;&gt;Back story &lt;a class=&#34;anchor&#34; href=&#34;#back-story&#34; aria-label=&#34;Link to this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I was playing around with Pi-hole on my Ubuntu host and got stuck when I was starting up the container with 53, 67 (udp / tcp both) was getting errors (“listen udp4 0.0.0.0:53: bind: address already in use”) because the Ubuntu host system itself were using those ports.&lt;/p&gt;&#xA;&lt;p&gt;I have previously used reverse-proxies to get around such problems but this time I wanted a simpler solution so I don’t have to manage another service in my local network to run Pi-hole.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Dell XPS 9310 Fingerprint Reader and Better Power Management under Ubuntu 20.04</title>
				<link>https://purinda.com/posts/dell-xps-9310-fingerprint-reader-and-better-power-management-under-ubuntu-20-04/</link>
				<pubDate>Sat, 26 Feb 2022 13:10:10 +1100</pubDate>
				<guid>https://purinda.com/posts/dell-xps-9310-fingerprint-reader-and-better-power-management-under-ubuntu-20-04/</guid>
				<description>&lt;p&gt;Dell XPS 9310 series laptops or other similar models which were released late 2020 may have issues getting the fingerprint reader working under Linux distributions. This is apparently due to closed source device drivers. End of the article, I will be listing some power management configuration which will help reduce heat and extend battery life but at the expense of performance when AC power is disconnected.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you have a XPS which came with Ubuntu installation instead of Windows then you can download pre-built ISO from Dell site here &lt;a href=&#34;https://www.dell.com/support/home/en-au/drivers/osiso/ubt20&#34;&gt;https://www.dell.com/support/home/en-au/drivers/osiso/ubt20&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Comparison Sony E 18-135mm f3.5-5.6 vs Zeiss 16-70mm F4</title>
				<link>https://purinda.com/posts/comparison-sony-e-18-135mm-f3-5-5-6-vs-zeiss-16-70mm-f4/</link>
				<pubDate>Thu, 10 Oct 2019 22:39:11 +1100</pubDate>
				<guid>https://purinda.com/posts/comparison-sony-e-18-135mm-f3-5-5-6-vs-zeiss-16-70mm-f4/</guid>
				<description>&lt;p&gt;Purpose of the article is to point out long standing discussions and controversies around the Zeiss 16-70mm zoom and compare it to the Sony 18-135mm lens which is far more recent release from Sony and believed to be all around well praised lens.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Zeiss 16-70mm F4 (released on August 27, 2013)&lt;/li&gt;&#xA;&lt;li&gt;Sony E 18-135mm F3.5-5.6 (released in January, 2018)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The Sony APS-C sensor cameras such as A6000 all the way to A6500s have a limited options when it comes to zoom lenses and the entire range from Sony comes down to 4 lenses which has their own strengths and weaknesses.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Centralised Scalable log-server implementation on Ubuntu 15.04</title>
				<link>https://purinda.com/posts/centralised-scalable-log-server-implementation-on-ubuntu-15-04/</link>
				<pubDate>Thu, 13 Aug 2015 01:02:49 +1000</pubDate>
				<guid>https://purinda.com/posts/centralised-scalable-log-server-implementation-on-ubuntu-15-04/</guid>
				<description>&lt;p&gt;The goal of this article is to explain how to implement a very simple log server which can accept application logs coming from one or more servers. For simplicity I will be implementing the log server and log forwarder (explained in Components section) on the same computer.&lt;/p&gt;&#xA;&lt;p&gt;In order to keep the article easy to understand and to keep the implementation simple as possible I have excluded the security of the logs that get transmitted from application servers to the log-server and considered outside the scope of this article. Therefore if you implement the exact solution make sure you consider security of log data as some logs may contain sensitive information about the applications.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Export NFS shares from OS X to Ubuntu / Debian and mount using Autofs</title>
				<link>https://purinda.com/posts/export-nfs-shares-from-os-x-10-10-4-to-ubuntu-debian-and-mount-using-autofs/</link>
				<pubDate>Thu, 06 Aug 2015 22:41:15 +1000</pubDate>
				<guid>https://purinda.com/posts/export-nfs-shares-from-os-x-10-10-4-to-ubuntu-debian-and-mount-using-autofs/</guid>
				<description>&lt;p&gt;I will discuss very few steps involved in getting a NFS directory shared from OSX and mounting it on an Ubuntu VM.&lt;/p&gt;&#xA;&lt;h3 id=&#34;step-1&#34;&gt;Step 1 &lt;a class=&#34;anchor&#34; href=&#34;#step-1&#34; aria-label=&#34;Link to this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Read &lt;a href=&#34;https://support.apple.com/en-us/HT202243&#34;&gt;https://support.apple.com/en-us/HT202243&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The gist of it is OSX knows how to handle(export) NFS shares as long as you write the instructions correctly in &lt;strong&gt;/etc/exports&lt;/strong&gt; file. So assume you need to export the directory in &lt;strong&gt;/Volumes/Disk 2/Projects&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;edit the /etc/exports file in your favourite editor as root (ex: sudo vim /etc/exports), paste the below command and change it to fit your requirement. Some parameters are explained below.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Symfony2 assetic with Ruby 2.1 (under Ubuntu 15.04)</title>
				<link>https://purinda.com/posts/symfony2-assetic-with-ruby-2-1-under-ubuntu-15-04/</link>
				<pubDate>Thu, 30 Apr 2015 13:52:57 +1000</pubDate>
				<guid>https://purinda.com/posts/symfony2-assetic-with-ruby-2-1-under-ubuntu-15-04/</guid>
				<description>&lt;p&gt;Recently updated my Dev machine to Ubuntu 15.04 and assetic:dump on Symfony2 apps stop working, showing the following error message.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Assetic\Exception\FilterException]&#xA;An error occurred while running:&#xA;&amp;#39;/usr/bin/ruby&amp;#39; &amp;#39;/usr/local/bin/sass&amp;#39; &amp;#39;--load-path&amp;#39; &amp;#39;/home/purinda/Projects/phoenix/apps/frontend/src/Nlm/XYZBundle/Resources/&#xA;public/css&amp;#39; &amp;#39;--scss&amp;#39; &amp;#39;--cache-location&amp;#39; &amp;#39;/home/purinda/Projects/phoenix/apps/frontend/app/cache/dev&amp;#39; &amp;#39;/tmp/assetic_sassbUrFhU&amp;#39;&#xA;Error Output:&#xA;/usr/local/bin/sass:23:in `load&amp;#39;: cannot load such file -- /usr/share/rubygems-integration/all/gems/sass-3.2.19/bin/sass (LoadErro&#xA;r)&#xA;from /usr/local/bin/sass:23:in `&amp;lt;main&amp;gt;&amp;#39;&#xA;&#xA;Input:&#xA;&#xA;....&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It appears to be that Ubuntu 15.04 installs Ruby 2.1 but doesn’t install a more recent version of Sass, so in oreder to get a up-to-date version of Sass compiler, you need to install compass pre-release version.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Compiled binaries of Qt 5.3 for the Raspberry Pi (ARMv6) and Pi 2 (ARMv7-A)</title>
				<link>https://purinda.com/posts/compiled-binaries-of-qt-5-3-for-the-raspberry-pi-and-pi-2/</link>
				<pubDate>Sun, 08 Feb 2015 09:22:33 +1100</pubDate>
				<guid>https://purinda.com/posts/compiled-binaries-of-qt-5-3-for-the-raspberry-pi-and-pi-2/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;At the time of writing Qt 5.4 release existed but I found it has number of bugs that affect multimedia capabilities of the Raspberry Pi.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Download the following binary release and install using following instructions. Instructions assume you still have the user &lt;strong&gt;pi&lt;/strong&gt; in your Raspberry Pi system and make command installed as well (sudo apt-get install make). For the wget command, use the address found in “Download” link below the instructions.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Raspberry Pi WiFi configuration in Raspbian</title>
				<link>https://purinda.com/posts/raspberry-pi-wifi-configuration-in-raspbian/</link>
				<pubDate>Sat, 07 Feb 2015 00:49:20 +1100</pubDate>
				<guid>https://purinda.com/posts/raspberry-pi-wifi-configuration-in-raspbian/</guid>
				<description>&lt;p&gt;I recently bought a Raspberry Pi2 and installed Raspbian (version 2015-01-31), it comes with WiFi drivers preinstalled for the Realtek module which I used as my Raspberry Pi &lt;a href=&#34;http://au.element14.com/element14/wipi/dongle-wifi-usb-for-raspberry/dp/2133900&#34;&gt;WiFi dongle&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;So I though things will go smoothly once I have the /etc/wpa_supplicant/wpa_supplicant.conf file configured. So what I did was setup it with my wireless network configuration, which looks like below ( I use WPA2-PSK, with CCMP authentication, if yours is different you may need to configure this right first, I used the &lt;strong&gt;wpa_gui&lt;/strong&gt; command in Raspbian for the following config).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Make your Mac (OSX) serve as a NTP time server</title>
				<link>https://purinda.com/posts/make-your-mac-osx-serve-as-a-ntp-time-server/</link>
				<pubDate>Mon, 19 Jan 2015 21:03:55 +1100</pubDate>
				<guid>https://purinda.com/posts/make-your-mac-osx-serve-as-a-ntp-time-server/</guid>
				<description>&lt;p&gt;&lt;strong&gt;Some background to the problem&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;At the time of writing I work for NewsCorp and they have a corporate firewall proxy inside the office LAN which blocks almost all ports below 1000 to external services (ex: github, bitbucket, ntp servers, etc) unless you specifically request for firewall rules to be allowed.&lt;/p&gt;&#xA;&lt;p&gt;I sometimes use my Mac to run some linux applications in virtual machines, so when the host is suspended (closing the laptop lid) or shutdown while VM state is saved and resumes it cannot resync the system clock (vm) since NTP uses Port 123 (UDP) the packets cannot get out or come back in via the corporate proxy / firewall rules. So AWS and other web services started reporting my requests are in past or not in sync with the current epoch.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Linux brightness control</title>
				<link>https://purinda.com/posts/linux-brightness-control/</link>
				<pubDate>Fri, 12 Sep 2014 22:32:26 +1000</pubDate>
				<guid>https://purinda.com/posts/linux-brightness-control/</guid>
				<description>&lt;p&gt;This is more of a note to myself than a blog post, whenever I install some Linux distribution on one of my laptops the first thing to be done is fix brightness controls as it helps to conserve battery life significantly.&lt;/p&gt;&#xA;&lt;p&gt;The changes required is trivial, start off with figuring out what drivers are in use on your system&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ls -ld  /sys/class/backlight/*&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;should list something like below but not all three, on mine I get intel and acpi&lt;/p&gt;</description>
			</item>
			<item>
				<title>QtMultimedia: FATAL: cannot locate cpu MHz in /proc/cpuinfo</title>
				<link>https://purinda.com/posts/fatal-cannot-locate-cpu-mhz-in-proccpuinfo/</link>
				<pubDate>Sun, 10 Aug 2014 23:51:30 +1000</pubDate>
				<guid>https://purinda.com/posts/fatal-cannot-locate-cpu-mhz-in-proccpuinfo/</guid>
				<description>&lt;p&gt;This became a problem for my Raspberry Pi (armv6h) running Archlinux (with a relatively newer kernel). Some users of my Grooveshark server reported some bufferring problems where it stopped streaming songs and reported “FATAL: cannot locate cpu MHz in /proc/cpuinfo”.&lt;/p&gt;&#xA;&lt;p&gt;Since the Grooveshark server is based on Qt5 I thought the new Qt5.3 version had some multimedia library changes that caused the issue, but turned out the issue is /proc/cpuinfo not producing CPU frequency for the ARM based CPUs. But what program is using a proc cpuinfo to determine CPU frequency without getting the value from sys filesystem exposed by the kernel? or using a monotonic clock as per newer kernels, which would provide timing capabilities without depending on system level changes, turned out there are quite a few programs around that depends on the value specified in “cpuinfo” file in proc filesystem. Including “jack” audio server which is a dependancy for QtMultimedia framework and number of other applications.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Installation Guide for Linux Mint 17 / Ubuntu 14 04 on Mac mini late 2012</title>
				<link>https://purinda.com/posts/installation-guide-for-linux-mint-17-ubuntu-14-04-on-apple-mac-mini-late-2012/</link>
				<pubDate>Tue, 29 Jul 2014 22:19:17 +1000</pubDate>
				<guid>https://purinda.com/posts/installation-guide-for-linux-mint-17-ubuntu-14-04-on-apple-mac-mini-late-2012/</guid>
				<description>&lt;p&gt;Installing Ubuntu 14.04 based distribution on a Mac (or any EFI based computer) has become very straightforward. If you read my previous guide on getting Ubuntu installed on Mac mini guide and thought it was long and too many things to configure, relax because you only have to run few commands with the latest Ubuntu 14.04 / Linux mint 17 distributions.&lt;/p&gt;&#xA;&lt;p&gt;Firstly, remember that you can either split your Mac partitions using DiskUtil and have a separate partitions for your Linux or you can wipe the whole disk and have just Linux on your Mac. If you choose to go with the first, then make a partition on your Mac, of at least 10GB for Linux. And remember how much disk space you allocated for this partition as in the Ubuntu/Mint setup, you will have to point to this specific partition.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Installing LPCXpresso on Ubuntu 14.04 based distribution</title>
				<link>https://purinda.com/posts/installing-lpcxpresso-on-ubuntu-14-04-based-distribution/</link>
				<pubDate>Sat, 17 May 2014 14:59:31 +1000</pubDate>
				<guid>https://purinda.com/posts/installing-lpcxpresso-on-ubuntu-14-04-based-distribution/</guid>
				<description>&lt;p&gt;I had to spend a lifetime trying to install LPCXpresso IDE built by NXP on Ubuntu 14.04, always came up with the following error message.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[14:52:45] purinda@purinda-ws[~/Downloads]+ ./Installer_LPCXpresso_7.1.1_125_Linux-x86&#xA;invalid command name &amp;#34;bind&amp;#34;&#xA; while executing&#xA;&amp;#34;::unknown bind Text &amp;lt;Tab&amp;gt;&amp;#34;&#xA; (&amp;#34;uplevel&amp;#34; body line 1)&#xA; invoked from within&#xA;&amp;#34;uplevel 1 $next $args&amp;#34;&#xA; (procedure &amp;#34;::obj::Unknown&amp;#34; line 3)&#xA; invoked from within&#xA;&amp;#34;bind Text &amp;lt;Tab&amp;gt;&amp;#34;&#xA; (procedure &amp;#34;::InstallJammer::InitializeGui&amp;#34; line 19)&#xA; invoked from within&#xA;&amp;#34;::InstallJammer::InitializeGui &amp;#34;&#xA; (procedure &amp;#34;::InstallJammer::InitInstall&amp;#34; line 68)&#xA; invoked from within&#xA;&amp;#34;::InstallJammer::InitInstall&amp;#34;&#xA; (file &amp;#34;/installkitvfs/main.tcl&amp;#34; line 38437)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The issue was that with multiarch built binaries shipped with Ubuntu, 32bit libraries cannot be installed via old library which I used in the past (ia32libs). As of Ubuntu 14.04 the 32bit packages can be installed by typing the same old “apt-get install &amp;lt;package&amp;gt;”, but with an extra suffix “:i386”.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Weekend Project: Pi Music Box – Raspberry Pi as a Music streaming device</title>
				<link>https://purinda.com/posts/pi-music-box-raspberry-pi-as-a-music-streaming-device/</link>
				<pubDate>Sun, 08 Dec 2013 18:58:37 +1100</pubDate>
				<guid>https://purinda.com/posts/pi-music-box-raspberry-pi-as-a-music-streaming-device/</guid>
				<description>&lt;h4 id=&#34;get-grooveshark-to-run-on-a-raspberry-pi-let-your-friends-connect-to-and-vote-for-their-favourite-songs-let-the-majority-rule-what-you-hear-at-home-or-office&#34;&gt;Get Grooveshark to run on a Raspberry Pi, Let your friends connect to and vote for their favourite songs. Let the majority rule what you hear at home or office. &lt;a class=&#34;anchor&#34; href=&#34;#get-grooveshark-to-run-on-a-raspberry-pi-let-your-friends-connect-to-and-vote-for-their-favourite-songs-let-the-majority-rule-what-you-hear-at-home-or-office&#34; aria-label=&#34;Link to this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;p&gt;We used to play songs regularly at work. Most of the time I play Dubstep while rest of the team want to listen to Trance or a different genre, this is where the clash of genres occur. This is where this system would be useful, if you get this running on a network then you can ask people to search their favourite songs and queue them in the system. Based on the votes they/others make for the song, it may float up or down making it either famous or not-so-famous. This makes a playlist of highest voted or popular songs.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Why I chose Linux over MacOSX after using a Mac for a year</title>
				<link>https://purinda.com/posts/why-i-chose-linux-over-macosx-after-using-a-mac-for-a-year/</link>
				<pubDate>Mon, 21 Oct 2013 00:40:59 +1100</pubDate>
				<guid>https://purinda.com/posts/why-i-chose-linux-over-macosx-after-using-a-mac-for-a-year/</guid>
				<description>&lt;h2 id=&#34;first-month-with-a-mac&#34;&gt;First month with a Mac &lt;a class=&#34;anchor&#34; href=&#34;#first-month-with-a-mac&#34; aria-label=&#34;Link to this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I had never used MacOSX till January this year when I got a new job and didn’t get an opportunity to let the company know my preferred setup for work. So I ended up with a MacMini late 2012 with an i7 CPU and lots of RAM. So It was very clear to me at the time that I would be stuck with it for a long time. Since I never used MacOSX I wasn’t aware of how the mouse or keyboard works and it took me almost 2-3weeks to get familar with most of the short cuts and basic functionality, so I thought of replacing the workstation I had at home with a Mac too, so that I can spend time using MacOSX and somehow minimise all sorts of embarassing situations I faced at work specially with the basic use of keyboard, mouse and software installations 😀&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to check if a Port is open or not in C (Unix/Linux)</title>
				<link>https://purinda.com/posts/how-to-check-if-a-port-is-open-or-not-in-c-unixlinux/</link>
				<pubDate>Mon, 30 Sep 2013 12:21:04 +1000</pubDate>
				<guid>https://purinda.com/posts/how-to-check-if-a-port-is-open-or-not-in-c-unixlinux/</guid>
				<description>&lt;p&gt;Thought of posting this script as I found this useful to embed in any socket based programs to figure out if a port is open or not in a certain host.&lt;br&gt;&#xA;Tested on a Linux box and appears to be working fine.&lt;/p&gt;&#xA;&lt;p&gt;Localhost and port 22 is hard coded into the snippet.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;unistd.h&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;sys/types.h&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;sys/socket.h&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;netinet/in.h&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#include&lt;/span&gt; &lt;span class=&#34;cpf&#34;&gt;&amp;lt;netdb.h&amp;gt;&lt;/span&gt;&lt;span class=&#34;cp&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;char&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argv&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[])&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;portno&lt;/span&gt;     &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;char&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hostname&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;localhost;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;sockfd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;struct&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;sockaddr_in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;serv_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;struct&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;hostent&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;server&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;sockfd&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;socket&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AF_INET&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SOCK_STREAM&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sockfd&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;error&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;ERROR opening socket&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;server&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;gethostbyname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hostname&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;server&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;==&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;NULL&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;fprintf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stderr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;ERROR, no such host&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;exit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;bzero&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;char&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;serv_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;sizeof&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;serv_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;serv_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sin_family&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AF_INET&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;bcopy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;char&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;server&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;h_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;char&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;serv_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sin_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         &lt;span class=&#34;n&#34;&gt;server&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;h_length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;serv_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sin_port&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;htons&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;portno&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;connect&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sockfd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;struct&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;sockaddr&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;serv_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;sizeof&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;serv_addr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Port is closed&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;printf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;Port is active&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;close&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sockfd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
			</item>
			<item>
				<title>Multi-hop SSH Port Forwarding</title>
				<link>https://purinda.com/posts/multi-hop-ssh-port-forwarding/</link>
				<pubDate>Fri, 27 Sep 2013 02:23:08 +1000</pubDate>
				<guid>https://purinda.com/posts/multi-hop-ssh-port-forwarding/</guid>
				<description>&lt;p&gt;Following code block can initiate a tunnel between two ssh servers when the second ssh server doesn’t/can’t accept direct connections from the first, and it uses an interim ssh server to forward the port from the &lt;strong&gt;source&lt;/strong&gt; (where you would run this code block) to the destination.&lt;/p&gt;&#xA;&lt;p&gt;If you don’t have public/private keys established between servers, ssh will prompt you to enter two passwords, first is for the &lt;strong&gt;interim-server&lt;/strong&gt; and &lt;strong&gt;second&lt;/strong&gt; is for the destination.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Installation Guide for Linux Mint / Ubuntu on Apple Mac mini (late 2012)</title>
				<link>https://purinda.com/posts/installation-guide-for-linux-mint-15-ubuntu-13-04-on-apple-mac-mini-late-2012/</link>
				<pubDate>Sat, 07 Sep 2013 19:05:13 +1000</pubDate>
				<guid>https://purinda.com/posts/installation-guide-for-linux-mint-15-ubuntu-13-04-on-apple-mac-mini-late-2012/</guid>
				<description>&lt;p&gt;&lt;strong&gt;UPDATE (29-07-2014) : If you want to install Ubuntu 14.04 or Linux Mint 17 or newer version Please refer to &lt;a href=&#34;https://purinda.com/posts/installation-guide-for-linux-mint-17-ubuntu-14-04-on-apple-mac-mini-late-2012/&#34;&gt;Installation Guide for Linux Mint 17 / Ubuntu 14 04 on Mac mini late 2012&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;UPDATE (11-06-2014): As of Ubuntu version 14.04, Ubuntu installer supports Macs without going through the following guide. Download the compatible Mac ISO image from Ubuntu site before proceeding.&lt;/p&gt;&#xA;&lt;p&gt;UPDATE (11-01-2014): I removed Mint and Ubuntu versions used in the title of the article assuming that all Ubuntu based distros will be almost identical in terms of installation and initial configuration steps. I personally upgraded Mint 15 to 16 following the same steps and worked.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How to Setup an Amazon AWS EC2 NFS Share</title>
				<link>https://purinda.com/posts/how-to-setup-a-amazon-aws-ec2-nfs-share/</link>
				<pubDate>Thu, 23 May 2013 23:42:38 +1000</pubDate>
				<guid>https://purinda.com/posts/how-to-setup-a-amazon-aws-ec2-nfs-share/</guid>
				<description>&lt;p&gt;This article will be short and to the point, so whoever wants to mount a remote nfs share in their local machine they should be able to get it up and running in 5 mins or less. Here we go!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Step – 1 Setup AWS security groups&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;In your EC2 instance setup following Security group exemptions, it would be a good idea to create a separate security group called “NFS Services” or something to leave these exemptions separate from the rest of your security groups.&lt;/p&gt;</description>
			</item>
			<item>
				<title>NFS Shares between Ubuntu 12.04 and Mac OSX 10.8</title>
				<link>https://purinda.com/posts/nfs-shares-between-ubuntu-12-04-and-mac-osx-10-8/</link>
				<pubDate>Sat, 16 Feb 2013 22:23:18 +1100</pubDate>
				<guid>https://purinda.com/posts/nfs-shares-between-ubuntu-12-04-and-mac-osx-10-8/</guid>
				<description>&lt;p&gt;Mounting NFS volumes between Ubuntu and Mac OS X 10.8 was a problem for weeks, I started using SMB shares as I couldn’t get both systems live in harmony! But today fiddling with zillion different configurations in both sides I got Mac OS X to accept my NFS exports from Ubuntu 12.04. This is how I got it working….&lt;/p&gt;&#xA;&lt;p&gt;First you need to export directories from Ubuntu end, so you may need nfs-kernel-server package installed in the ubuntu system.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Multiple/Second SPI Buses on BeagleBone</title>
				<link>https://purinda.com/posts/multiple-spi-bus-beaglebone/</link>
				<pubDate>Mon, 01 Oct 2012 23:23:52 +1030</pubDate>
				<guid>https://purinda.com/posts/multiple-spi-bus-beaglebone/</guid>
				<description>&lt;h2 id=&#34;how-to-get-spi-to-work-on-beaglebone&#34;&gt;How to: Get SPI to work on Beaglebone &lt;a class=&#34;anchor&#34; href=&#34;#how-to-get-spi-to-work-on-beaglebone&#34; aria-label=&#34;Link to this section&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If you want just one SPI port running, then most up to date images for beaglebone has enabled them by default.&lt;br&gt;&#xA;Location to get pre-compiled images with SPI1 enabled, &lt;a href=&#34;http://rcn-ee.net/deb/precise-armhf/v3.2.25-psp20/&#34;&gt;http://rcn-ee.net/deb/precise-armhf/v3.2.25-psp20/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;enabling-spi0&#34;&gt;Enabling SPI0 &lt;a class=&#34;anchor&#34; href=&#34;#enabling-spi0&#34; aria-label=&#34;Link to this section&#34;&gt;&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h4 id=&#34;step-1&#34;&gt;Step 1 &lt;a class=&#34;anchor&#34; href=&#34;#step-1&#34; aria-label=&#34;Link to this section&#34;&gt;&lt;/a&gt;&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;In order to enable userland SPI we need to be able to rebuild the kernel, so grab the Linux source:&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
