<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>vellosa.com</title><link>https://vellosa.com/</link><description>Recent content on vellosa.com</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 15 May 2026 09:15:00 +0200</lastBuildDate><atom:link href="https://vellosa.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Initial website creation with Hugo</title><link>https://vellosa.com/projects/website/initial-setup/</link><pubDate>Thu, 14 May 2026 09:52:00 +0200</pubDate><guid>https://vellosa.com/projects/website/initial-setup/</guid><description>&lt;p&gt;After deciding to create &lt;em&gt;another&lt;/em&gt; personal blog and choosing the technologies, the next step is to build the basic site.&lt;/p&gt;
&lt;p&gt;For this I’ve been using a Debian laptop for local Hugo development. Unfortunately, the Hugo version available through the Debain package manager was quite old, so I downloaded the latest release directly from GitHub instead.&lt;/p&gt;
&lt;p&gt;From a browser navigate to the &lt;a href="https://github.com/gohugoio/hugo/releases/"&gt;Hugo releases page&lt;/a&gt; and download the latest &lt;code&gt;.deb&lt;/code&gt; package. Then to install Hugo package, run the command (with the updated version number):&lt;/p&gt;</description></item><item><title>Hosting on GitLab</title><link>https://vellosa.com/projects/website/hosting-on-gitlab/</link><pubDate>Thu, 14 May 2026 18:21:00 +0200</pubDate><guid>https://vellosa.com/projects/website/hosting-on-gitlab/</guid><description>Setting up the site using GitLab Pages</description></item><item><title>Personal domain name</title><link>https://vellosa.com/projects/website/custom-domain-name/</link><pubDate>Fri, 15 May 2026 09:15:00 +0200</pubDate><guid>https://vellosa.com/projects/website/custom-domain-name/</guid><description>&lt;p&gt;GitLab provides a stable platform for hosting the site, however, the domain name does not look &lt;em&gt;profesional&lt;/em&gt;. Hosting on a personal domain name looks a lot better. The steps I have for this are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Purchasing a domain through &lt;a href="https://infomaniak.com/?utm_source=vellosa.com"&gt;Infomaniak&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Setting up a &lt;a href="https://www.cloudflare.com/?utm_source=vellosa.com"&gt;CloudFlare&lt;/a&gt; Proxy for the DNS name&lt;/li&gt;
&lt;li&gt;Configuring &lt;a href="https://gitlab.com/?utm_source=vellosa.com"&gt;GitLab&lt;/a&gt; pages&lt;/li&gt;
&lt;li&gt;Update to the &lt;a href="https://gohugo.io/?utm_source=vellosa.com"&gt;Hugo&lt;/a&gt; base URL config&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Impressum</title><link>https://vellosa.com/impressum/</link><pubDate>Thu, 14 May 2026 08:25:03 +0000</pubDate><guid>https://vellosa.com/impressum/</guid><description>&lt;p&gt;Contact details are&amp;hellip;&lt;/p&gt;</description></item><item><title>Privacy</title><link>https://vellosa.com/privacy/</link><pubDate>Thu, 14 May 2026 08:14:03 +0000</pubDate><guid>https://vellosa.com/privacy/</guid><description>&lt;p&gt;My intention for this site is to share information and not collect anything about users. Having said that I am using a number of thrid party services that will probably collect some data. These include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitLab - This Hugo site is hosted as GitLab pages on gitlab.com&lt;/li&gt;
&lt;li&gt;CloudFlare - who are the CDN behind which this site is hosted&lt;/li&gt;
&lt;li&gt;Google Analytics - as I wanted to understand what their services provide&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are the obvious services that are in use.&lt;/p&gt;</description></item><item><title>About</title><link>https://vellosa.com/about/</link><pubDate>Thu, 14 May 2026 07:44:03 +0000</pubDate><guid>https://vellosa.com/about/</guid><description>&lt;p&gt;I am Ian, a software developer and agilist based in central Switzerland. This site is simple a place for me to dump my thoughts.&lt;/p&gt;</description></item><item><title>And we're back...</title><link>https://vellosa.com/blog/2026/and-were-back/</link><pubDate>Thu, 15 May 2025 12:00:00 +0000</pubDate><guid>https://vellosa.com/blog/2026/and-were-back/</guid><description>&lt;p&gt;I&amp;rsquo;ve done this many times. But this time I mean it. Really!&lt;/p&gt;
&lt;p&gt;Over the years I’ve tried blogging on many platforms. Early on I even built my own scripts to convert text into HTML which I pushed to an apache server. I’ve tried &lt;a href="https://roller.apache.org/"&gt;Apache Roller&lt;/a&gt; and &lt;a href="https://www.blogger.com/"&gt;Blogger&lt;/a&gt;, and about nine years ago I dipped my toes into &lt;a href="https://indieweb.org/"&gt;IndieWeb&lt;/a&gt;, setting up a &lt;a href="https://withknown.com/"&gt;WithKnown&lt;/a&gt; site.&lt;/p&gt;
&lt;p&gt;Most recently I’ve been posting internally at work using &lt;a href="https://gitlab.com/"&gt;GitLab&lt;/a&gt; and &lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt;, This is that, but made public.&lt;/p&gt;</description></item><item><title>Thanks to @ollispieps and @jugch for organising a great hands-on #ContinuousDelivery workshop and @cssversicherung for sponsoring</title><link>https://vellosa.com/blog/2017/thanks-to-ollispieps-and-jugch-for-organising-a-great-hands-on/</link><pubDate>Thu, 31 Aug 2017 19:09:14 +0000</pubDate><guid>https://vellosa.com/blog/2017/thanks-to-ollispieps-and-jugch-for-organising-a-great-hands-on/</guid><description>&lt;p&gt;I attended an excellent hands-on Continuous Delivery workshop.&lt;/p&gt;
&lt;p&gt;Topics covered included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Docker environments&lt;/li&gt;
&lt;li&gt;Git repositories using Gogs&lt;/li&gt;
&lt;li&gt;Jenkins CI pipelines&lt;/li&gt;
&lt;li&gt;Gradle builds&lt;/li&gt;
&lt;li&gt;Continuous Delivery practices&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The workshop balanced practical exercises with discussions around:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Continuous Integration&lt;/li&gt;
&lt;li&gt;Continuous Delivery&lt;/li&gt;
&lt;li&gt;Continuous Deployment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Special thanks to CSS for providing facilities and refreshments.&lt;/p&gt;</description></item><item><title>Using Google Authenticator to protect sudo on Raspberry Pi</title><link>https://vellosa.com/blog/2017/using-google-authenticator-to-protect-sudo-on-raspberry-pi/</link><pubDate>Mon, 19 Jun 2017 20:23:03 +0000</pubDate><guid>https://vellosa.com/blog/2017/using-google-authenticator-to-protect-sudo-on-raspberry-pi/</guid><description>&lt;p&gt;This article explains how to configure two-factor authentication for &lt;code&gt;sudo&lt;/code&gt; on a Raspberry Pi using Google Authenticator.&lt;/p&gt;
&lt;p&gt;Example PAM configuration:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;auth required pam_google_authenticator.so user&lt;span style="color:#f92672"&gt;=&lt;/span&gt;root secret&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/root/&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;USER&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;.google_authenticator
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enter your password&lt;/li&gt;
&lt;li&gt;Enter the verification code from your authenticator app&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Helpful references:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How-To Geek&lt;/li&gt;
&lt;li&gt;Arch Linux Wiki&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Philips Hue motion sensor: I like it, but not for the living room (yet?) @tweethue</title><link>https://vellosa.com/blog/2016/philips-hue-motion-sensor-i-like-it-but-not-for/</link><pubDate>Wed, 02 Nov 2016 04:53:13 +0000</pubDate><guid>https://vellosa.com/blog/2016/philips-hue-motion-sensor-i-like-it-but-not-for/</guid><description>&lt;p&gt;I experimented with using a Philips Hue motion sensor in the living room.&lt;/p&gt;
&lt;p&gt;The setup mostly worked well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lights dimmed automatically when watching TV&lt;/li&gt;
&lt;li&gt;Lights dimmed further during films&lt;/li&gt;
&lt;li&gt;Lights brightened again afterwards&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, motion detection during viewing caused the lights to return to full brightness unexpectedly.&lt;/p&gt;
&lt;p&gt;Overall the motion sensor idea was promising, but still needed refinement for living room usage.&lt;/p&gt;</description></item><item><title>Why can't my @QNAP_nas play nicely with @CrashPlan?</title><link>https://vellosa.com/blog/2016/why-cant-my-qnap_nas-play-nicely-with-crashplan/</link><pubDate>Wed, 09 Mar 2016 20:52:58 +0000</pubDate><guid>https://vellosa.com/blog/2016/why-cant-my-qnap_nas-play-nicely-with-crashplan/</guid><description>&lt;p&gt;A discussion of stability and compatibility issues between QNAP NAS devices and CrashPlan.&lt;/p&gt;
&lt;p&gt;The article explores backup reliability frustrations and asks why QNAP and CrashPlan struggle to work together reliably.&lt;/p&gt;</description></item><item><title>Setting up a Raspberry Pi is surprisingly easy</title><link>https://vellosa.com/blog/2016/setting-up-a-raspberry-pi-is-surprisingly-easy/</link><pubDate>Mon, 22 Feb 2016 22:30:23 +0000</pubDate><guid>https://vellosa.com/blog/2016/setting-up-a-raspberry-pi-is-surprisingly-easy/</guid><description>&lt;p&gt;Setting up a Raspberry Pi turned out to be much easier than expected.&lt;/p&gt;
&lt;p&gt;The post walks through:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Downloading Minibian&lt;/li&gt;
&lt;li&gt;Verifying checksums&lt;/li&gt;
&lt;li&gt;Extracting the image&lt;/li&gt;
&lt;li&gt;Writing the image to an SD card using &lt;code&gt;dd&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Booting the Raspberry Pi&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example commands:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sha1sum 2015-11-12-jessie-minibian.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;umount /dev/mmcblk0p2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dd bs&lt;span style="color:#f92672"&gt;=&lt;/span&gt;4M &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;~/2015-11-12-jessie-minibian.img of&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/dev/mmcblk0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sync
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Once completed the SD card can be inserted into the Raspberry Pi and booted.&lt;/p&gt;</description></item><item><title>WhatsApp</title><link>https://vellosa.com/blog/2016/whatsapp/</link><pubDate>Fri, 08 Jan 2016 22:00:15 +0000</pubDate><guid>https://vellosa.com/blog/2016/whatsapp/</guid><description>&lt;p&gt;Years ago I installed WhatsApp on my phone. When I opened it up for the first time, I was asked if I wanted to upload my entire contact list onto their servers.&lt;/p&gt;
&lt;p&gt;I was unsure if I should really do this, as the contact data is not mine to give away. There is no way I could choose which of the contacts I wanted to share with WhatsApp, and in the end decided I would rather just delete the application.&lt;/p&gt;</description></item><item><title>Guess whose back...</title><link>https://vellosa.com/blog/2015/guess-whose-back/</link><pubDate>Fri, 04 Dec 2015 13:13:24 +0000</pubDate><guid>https://vellosa.com/blog/2015/guess-whose-back/</guid><description>&lt;p&gt;I am not sure what keeps drawing me back. I want to blog, start a little, then have no time for it, so give up again. So here is another attempt at setting up a @withknown server at home to see if I can keep going for more than 5 minutes.&lt;/p&gt;
&lt;p&gt;I already appear to be having some issues with dyndns, which does not appear to propagate my address out to everyone. But that is something to work on later.&lt;/p&gt;</description></item></channel></rss>