<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Programming &#8211; Random Insanity</title>
	<atom:link href="https://randominsanity.net.nz/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>https://randominsanity.net.nz</link>
	<description>Random Insanity since 1981</description>
	<lastBuildDate>Thu, 03 Sep 2020 22:32:43 +0000</lastBuildDate>
	<language>en-NZ</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.8.6</generator>
	<item>
		<title>Automating Letsencrypt renewals with DNS-01 challenges</title>
		<link>https://randominsanity.net.nz/2018/03/automating-letsencrypt-renewals-with-dns-01-challenges/</link>
					<comments>https://randominsanity.net.nz/2018/03/automating-letsencrypt-renewals-with-dns-01-challenges/#respond</comments>
		
		<dc:creator><![CDATA[Daniel]]></dc:creator>
		<pubDate>Sat, 24 Mar 2018 22:48:47 +0000</pubDate>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Certbot]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[DNS-01]]></category>
		<category><![CDATA[Letsencrypt]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[SysOps]]></category>
		<guid isPermaLink="false">https://randominsanity.net.nz/?p=1746</guid>

					<description><![CDATA[<p>Letsencrypt and certbot are great for getting SSL certificates, however, if you're using DNS-01 it's not easy to automate renewals. I decided to fix that, at least for my use case with CloudFlare.</p>
<p>The post <a rel="nofollow" href="https://randominsanity.net.nz/2018/03/automating-letsencrypt-renewals-with-dns-01-challenges/">Automating Letsencrypt renewals with DNS-01 challenges</a> appeared first on <a rel="nofollow" href="https://randominsanity.net.nz">Random Insanity</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Preface</h2>
<p>When researching options before writing the code referred to in this article, I came across a comment from someone I understand to be involved in the admin/author side of certbot. While I can&#8217;t find the link any more, they basically replied to someone stating that certbot would never provide plugins for DNS providers, which made sense since there are so many. However, shortly after finishing off this software, I came across the shiny new release of certbot, which  has some pre-written plugins for, you guessed it, DNS providers.</p>
<p>These plugins are not yet packaged for Ubuntu, so while I tried to do a quick test, I ended up still using my new script. If you&#8217;re starting out with certbot 0.22.0 or higher and get their plugins, they are probably a better option however this stuff will still work and is an option for you. And I&#8217;ll keep the code live for anyone who wants it, if for no other reason than it&#8217;s something else others can pick as an example to learn things from.</p>
<h2>Introduction</h2>
<p>Many of you will have heard of <a href="https://letsencrypt.org/">Letsencrypt</a>, a service that enables creation of SSL certificates for use on websites (and anywhere else technically) for free; cost being one of the barriers to wider adoption of secured websites. I use this service for several sites, including this one.</p>
<p><img loading="lazy" class="alignright size-thumbnail wp-image-1748" src="https://randominsanity.net.nz/wp-content/uploads/certbot-logo-1A_large-150x55.jpg" alt="" width="150" height="55" srcset="https://randominsanity.net.nz/wp-content/uploads/certbot-logo-1A_large-150x55.jpg 150w, https://randominsanity.net.nz/wp-content/uploads/certbot-logo-1A_large-300x110.jpg 300w, https://randominsanity.net.nz/wp-content/uploads/certbot-logo-1A_large.jpg 630w" sizes="(max-width: 150px) 100vw, 150px" />I had a particular issue when it came to certificate renewal time that wasn&#8217;t supported automatically. In this post, I&#8217;ll explain a little about Letsencrypt and its client application certbot, and about &#8220;<a href="https://certbot.eff.org/docs/challenges.html">challenges</a>&#8221; which are how Letsencrypt verifies you should be given a certificate you ask for. I&#8217;ll only be dealing with the authentication side of certbot: while it and a number of other clients are able to install the certificates for you as well, I did this part manually to fit within my Nginx configuration the way I wanted, but there is plenty of information out there if you want to learn more about that side.</p>
<h2>My Setup</h2>
<p>If you&#8217;ve read my previous posts you&#8217;ll likely have an idea of this already, but a simple overview for those who haven&#8217;t.</p>
<p>I run my domains on servers hosted in AWS on Ubuntu servers. I use <a href="https://www.nginx.com/">Nginx</a> (Open Source Version) as a hosting and proxying platform. My websites are, for the most part, exposed via <a href="https://www.cloudflare.com/">CloudFlare</a> (Free Tier).</p>
<p>For me, these certificates are securing the leg between CloudFlare and my server so users don&#8217;t normally see them, but they form one leg of the end-to-end security chain..</p>
<h2>Letsencrypt</h2>
<p><img loading="lazy" class="alignright size-thumbnail wp-image-1772" src="https://randominsanity.net.nz/wp-content/uploads/78ccd985-50e6-4e20-9e2b-d6ae61814704-150x39.png" alt="Letsencrypt Logo" width="150" height="39" srcset="https://randominsanity.net.nz/wp-content/uploads/78ccd985-50e6-4e20-9e2b-d6ae61814704-150x39.png 150w, https://randominsanity.net.nz/wp-content/uploads/78ccd985-50e6-4e20-9e2b-d6ae61814704-300x77.png 300w, https://randominsanity.net.nz/wp-content/uploads/78ccd985-50e6-4e20-9e2b-d6ae61814704.png 700w" sizes="(max-width: 150px) 100vw, 150px" />Letsencrypt can be managed by a number of software clients, however, the main one and the one I use is called <a href="https://certbot.eff.org/">certbot</a>. Certbot allows the issuing of new certificates and the renewal of existing ones; renewal being important because the main caveat of these certificates is that they are only valid for 90 days. And the key part of this process is validating ownership in a challenge/response style setup, which can be done 3 different challenge methods.</p>
<h3>HTTP-01</h3>
<p>Probably the most common or most easily achieved method of validating your domain is HTTP-01. It involves posting a specified file in a specified location on the website. There are plugins for certbot that make this really easy for a number of hosting setups, including Nginx which I run.</p>
<p>For me, this wasn&#8217;t so practical. As I mentioned the DNS wasn&#8217;t pointing to the new server yet, and I didn&#8217;t want to mess around putting stuff on the old servers. Also, I had an additional site that I wanted a certificate for but I wasn&#8217;t able to modify the content to support this method.</p>
<h3>TLS-SNI-01</h3>
<p>I haven&#8217;t actually heard of anyone using this in the wild, and I haven&#8217;t tried it as it&#8217;s not functional when using CDN in front of your servers.</p>
<h3>DNS-01</h3>
<p>So this is the one I chose. DNS-01 involves adding a TXT record to your DNS with the specified value. For me this was great, it didn&#8217;t matter where my website was pointed yet, or if I could modify files. Because I could edit the DNS this way I was able to ensure zero downtime getting the certificates issued and in place before I did the cutover.</p>
<h2>The downside to DNS-01</h2>
<p>DNS-01 got me going well, however, when it comes to renewal time it&#8217;s not something that can be automatically supported. HTTP-01 has various options and settings to dump files in a specified location to automate that, but DNS is much more diverse and not all providers even offer an API. I gave it some thought and confirmed for my self that I couldn&#8217;t change to HTTP-01, mainly as I had this system issue certificates for domains that didn&#8217;t point to this server still (yeah maybe I&#8217;m a special case, but it is what it is).</p>
<p>Certbot has hooks to do things before and after any validation steps, so I decided I&#8217;d make it automated myself!</p>
<h2>Automating DNS-01 challenges with CloudFlare</h2>
<p>CloudFlare offers a great API, even on its free tier, so I decided to write a hook to automate the necessary updates. Since I&#8217;m that way inclined too, I&#8217;ve made it freely available, hosted <a href="https://bitbucket.org/logicalroute/certbot-cloudflare-dns-hook/">here</a>.</p>
<p>Basically, it&#8217;s a NodeJS script that runs through the following logic:</p>
<ul>
<li>Given a domain and a validation code</li>
<li>Get a list of the users&#8217; domain zones from CloudFlare and find which one is appropriate for this domain</li>
<li>Check that zone to see if we already have an &#8216;_acme-challenge&#8217; TXT record for the domain</li>
<li>If we don&#8217;t create it. If we do, update it. In both cases, set it to the validation code provided.</li>
<li>Query DNS and see if it&#8217;s updated yet and if not, look at the TTL for the query and wait that long plus a 10-second buffer and try again up to a configurable number of times until it is updated.</li>
<li>Done.</li>
</ul>
<p>This basically sets up the new validation information and waits until it is deployed, then returns allowing certbot to do it&#8217;s check and provided that succeeds, get the newly issued certificates. Now, of course, I&#8217;m simplifying a few things. It&#8217;s not certbot doing ALL the validation etc, but between certbot and the server they work it out; the finer detail isn&#8217;t too important for us just here.</p>
<p>What you get in the end is the ability to run a command like the following, and have it automatically manage the DNS-01 challenge setups required, which means it can be put into a cron job and not require manual intervention every couple of months!</p>
<pre>sudo certbot renew --manual --manual-auth-hook "/path/to/node /path/to/hook.js"</pre>
<p>As it turns out, the hook can also be used for certonly certificate issuing; it creates and manages validation just as well as the renew does. There is more detail and examples for installation and usage in the <a href="https://bitbucket.org/logicalroute/certbot-cloudflare-dns-hook/src/master/README.md">readme</a> file in the code repository so if you want to check it out that&#8217;s a good next place to look.</p>
<h2>Summary</h2>
<p>Wow, that was a lot longer way of saying &#8220;I made a script to support DNS-01 challenge automation on certbot manual renewals&#8221; than I expected&#8230;</p>
<p>Anyway, please feel free to check it out, have a look at the <a href="https://bitbucket.org/logicalroute/certbot-cloudflare-dns-hook/src/master/README.md">readme</a> which has some helpful info on getting it going, and I&#8217;ll try to address any questions or issues that come up. It&#8217;s far from perfect, but it works well for me so for now, it&#8217;ll do. Perhaps in the future I&#8217;ll try and improve any error handling etc. but no doubt that&#8217;ll come if I start seeing more errors I need to handle!</p>
<p>If you manage a website and you don&#8217;t have it secured with SSL, <strong>DO IT</strong>!!! There really is no good reason not to anymore.</p>
<p>Thanks for reading!</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2018%2F03%2Fautomating-letsencrypt-renewals-with-dns-01-challenges%2F&amp;linkname=Automating%20Letsencrypt%20renewals%20with%20DNS-01%20challenges" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2018%2F03%2Fautomating-letsencrypt-renewals-with-dns-01-challenges%2F&amp;linkname=Automating%20Letsencrypt%20renewals%20with%20DNS-01%20challenges" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2018%2F03%2Fautomating-letsencrypt-renewals-with-dns-01-challenges%2F&amp;linkname=Automating%20Letsencrypt%20renewals%20with%20DNS-01%20challenges" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2018%2F03%2Fautomating-letsencrypt-renewals-with-dns-01-challenges%2F&amp;linkname=Automating%20Letsencrypt%20renewals%20with%20DNS-01%20challenges" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frandominsanity.net.nz%2F2018%2F03%2Fautomating-letsencrypt-renewals-with-dns-01-challenges%2F&#038;title=Automating%20Letsencrypt%20renewals%20with%20DNS-01%20challenges" data-a2a-url="https://randominsanity.net.nz/2018/03/automating-letsencrypt-renewals-with-dns-01-challenges/" data-a2a-title="Automating Letsencrypt renewals with DNS-01 challenges"></a></p><p>The post <a rel="nofollow" href="https://randominsanity.net.nz/2018/03/automating-letsencrypt-renewals-with-dns-01-challenges/">Automating Letsencrypt renewals with DNS-01 challenges</a> appeared first on <a rel="nofollow" href="https://randominsanity.net.nz">Random Insanity</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://randominsanity.net.nz/2018/03/automating-letsencrypt-renewals-with-dns-01-challenges/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Raring Ringtail (Ubuntu 13.04)</title>
		<link>https://randominsanity.net.nz/2013/07/raring-ringtail-ubuntu-13-04/</link>
					<comments>https://randominsanity.net.nz/2013/07/raring-ringtail-ubuntu-13-04/#respond</comments>
		
		<dc:creator><![CDATA[Daniel]]></dc:creator>
		<pubDate>Thu, 04 Jul 2013 11:50:57 +0000</pubDate>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://randominsanity.net.nz/?p=1655</guid>

					<description><![CDATA[<p>Everyone needs a project, and for a few reasons I recently decided my project was to get Ubuntu running on my desktop PC. I wanted something to distract me from working at home too much, and I needed a distraction from my head being in overdrive. And so the mission began...</p>
<p>The post <a rel="nofollow" href="https://randominsanity.net.nz/2013/07/raring-ringtail-ubuntu-13-04/">Raring Ringtail (Ubuntu 13.04)</a> appeared first on <a rel="nofollow" href="https://randominsanity.net.nz">Random Insanity</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div id="attachment_1656" style="width: 306px" class="wp-caption alignright"><a href="https://randominsanity.net.nz/wp-content/uploads/raring-ringtail-logo.png"><img aria-describedby="caption-attachment-1656" loading="lazy" class="size-medium wp-image-1656 " title="Raring Ringtail" alt="raring-ringtail-logo" src="https://randominsanity.net.nz/wp-content/uploads/raring-ringtail-logo-300x168.png" width="300" height="168" srcset="https://randominsanity.net.nz/wp-content/uploads/raring-ringtail-logo-300x168.png 300w, https://randominsanity.net.nz/wp-content/uploads/raring-ringtail-logo-150x84.png 150w, https://randominsanity.net.nz/wp-content/uploads/raring-ringtail-logo.png 570w" sizes="(max-width: 300px) 100vw, 300px" /></a><p id="caption-attachment-1656" class="wp-caption-text">Ubuntu 13.04 (Codename Raring Ringtail)</p></div>
<p>So a wee while ago I decided I wanted to get a decent *nix operating system running at home again, because (let&#8217;s face it) running Windows all the time is enough to drive anyone crazy.</p>
<p>Don&#8217;t get me wrong, I&#8217;m not ditching Windows all together. I still need to keep it around for some apps, wether I like it or not.</p>
<p>After a bit of googling and with no small part played by reviews from <a title="NixiePixel's site" href="http://www.nixiepixel.com" target="_blank">Nixie Pixel</a> (she&#8217;s got some great stuff on Twitter, Facebook and YouTube!) I settled on Ubuntu. It is similar to Debian in its terminal commands and it has a pretty good reputation as a nice stable desktop OS. Raring Ringtail (the codename for the latest version 13.04) was hot off the press too, so after a quick download and burning the ISO to disk I made space on one of my drives and booted ready to install.</p>
<p>It wasn&#8217;t without hiccups. My computer is self-built and Linux compatibility wasn&#8217;t a consideration at the time I got all the parts. The first issue I ran into was installing GRUB to the wrong drive&#8230; after several revisions of harddrive config in the machine, I managed to lose track of where the current boot loader was living. That fixed though, I got the install completed and booted Ubuntu!</p>
<p>Or at least tried to. For some unknown reason it just booted to black screens. No small amount of time buried in Google came up with various similar reports and a myriad of proposed fixes. I came to the assumption that it was all due to the graphics cards I was running (dual Nvidia GT250s), but after playing with config options in GRUB I managed to get limited access, and while snooping around I found an entry in fstab for the floppy drive.</p>
<p>Now I have no idea if this was actually related or not but I removed the entry as I have no floppy drive in my machine, and things suddenly started to play ball. This got me a clean boot with one screen working. I have four screens on my machine so this was the obvious next battle.</p>
<p>I thought this one should be simpler, given the Nvidia config app, but several aborted attempts to configure them this way got me two screens at best!</p>
<p>I resorted to writing the config file (xorg.conf) manually. I&#8217;ve never really played with any GUI on Linux before so this was new ground for me. Another dive into Google got me a bunch of samples and after more reboots than I can count I managed to get all four screens to show, and actually in the right arrangement as they sat on the desk!</p>
<p>But (there&#8217;s always a but) there was no menu bar, no dock or control options to be seen. And that&#8217;s where I&#8217;m currently at. Experimenting with finer changes to the xorg.conf file, trying Gnome, more Google madness, etc. It&#8217;s quite frustrating to have four screens working but unusable, or one (or two) screens working perfectly.</p>
<p>I don&#8217;t know if it&#8217;s a display manger issue, a config issue, a driver issue, or the little gremlin in the computer having a laugh, but I&#8217;m still working on it and determined to figure it out. When I do, I&#8217;ll post more&#8230;</p>
<p>In the mean time, have any of you had a similar battle? Any hints/tips/pointers for a guy who&#8217;s usually ssh&#8217;d into 5 different servers but basically a newbie when it comes to using nix as a desktop OS?</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2013%2F07%2Fraring-ringtail-ubuntu-13-04%2F&amp;linkname=Raring%20Ringtail%20%28Ubuntu%2013.04%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2013%2F07%2Fraring-ringtail-ubuntu-13-04%2F&amp;linkname=Raring%20Ringtail%20%28Ubuntu%2013.04%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2013%2F07%2Fraring-ringtail-ubuntu-13-04%2F&amp;linkname=Raring%20Ringtail%20%28Ubuntu%2013.04%29" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2013%2F07%2Fraring-ringtail-ubuntu-13-04%2F&amp;linkname=Raring%20Ringtail%20%28Ubuntu%2013.04%29" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frandominsanity.net.nz%2F2013%2F07%2Fraring-ringtail-ubuntu-13-04%2F&#038;title=Raring%20Ringtail%20%28Ubuntu%2013.04%29" data-a2a-url="https://randominsanity.net.nz/2013/07/raring-ringtail-ubuntu-13-04/" data-a2a-title="Raring Ringtail (Ubuntu 13.04)"></a></p><p>The post <a rel="nofollow" href="https://randominsanity.net.nz/2013/07/raring-ringtail-ubuntu-13-04/">Raring Ringtail (Ubuntu 13.04)</a> appeared first on <a rel="nofollow" href="https://randominsanity.net.nz">Random Insanity</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://randominsanity.net.nz/2013/07/raring-ringtail-ubuntu-13-04/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Life, code and random ramblings&#8230;</title>
		<link>https://randominsanity.net.nz/2012/03/life-code-and-random-ramblings/</link>
					<comments>https://randominsanity.net.nz/2012/03/life-code-and-random-ramblings/#respond</comments>
		
		<dc:creator><![CDATA[Daniel]]></dc:creator>
		<pubDate>Sun, 04 Mar 2012 02:53:13 +0000</pubDate>
				<category><![CDATA[Fire Service]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[NZFS]]></category>
		<category><![CDATA[Road Trip]]></category>
		<category><![CDATA[WSO2]]></category>
		<guid isPermaLink="false">https://randominsanity.net.nz/?p=1563</guid>

					<description><![CDATA[<p>Everyone comes into your life for a reason. It may not always be the reason we thought or might have hoped, but there is a reason regardless. The best we can do is enjoy what we can and treasure that person while we can, as we never know when for some reason they will stop&#8230;</p>
<p>The post <a rel="nofollow" href="https://randominsanity.net.nz/2012/03/life-code-and-random-ramblings/">Life, code and random ramblings&#8230;</a> appeared first on <a rel="nofollow" href="https://randominsanity.net.nz">Random Insanity</a>.</p>
]]></description>
										<content:encoded><![CDATA[<blockquote><p>Everyone comes into your life for a reason. It may not always be the reason we thought or might have hoped, but there is a reason regardless. The best we can do is enjoy what we can and treasure that person while we can, as we never know when for some reason they will stop being a part of your life. Treasure today, treasure your friends, whether they fit in your life the way you wanted or not. Life&#8217;s too short to dwell on what might have been.</p></blockquote>
<p><span id="more-1563"></span><br />
It&#8217;s been a busy few weeks.</p>
<p>Last weekend was 3 days with fire service doing first aid for the National Mountain Biking Champs at Eskdale. 2 days of downhill and the third cross country. Not too much carnage but lots of trekking up and down hills. It was fun but killed a weekend really well!</p>
<p>This week back to work, late nights, 19:30/20:30 and even 21:30 out of the office. It&#8217;s been nice and productive after hours when the distractions have gone. I suspect pretty soon the delivery boys for a number of the local places will not have to be told which door to come to&#8230; possibly not a good thing but oh well. We&#8217;ve got another developer on board which is great, not only in terms of work load but also to bounce ideas off, to look over code, to share our varying knowledge in the whole &#8220;two heads are better than one&#8221; style. He may be a junior developer but there&#8217;s definitely room for us both to learn stuff off each other, and it&#8217;s good having a second person trying to explain stuff to the non-coders! =P</p>
<p>A couple of weekends back was the wellington road trip and Homegrown. Wow what a blast. Homegrown was great, lots of great music, possibly a little more to drink than ideal but certainly not overboard lol. And an awesome time with good people; could have spent longer but all good things come to an end. =/</p>
<p>This weekend has been pretty quiet which has been nice too. Some work, some working on my own website, some time watching movies, and of course a good time with friends.</p>
<p>Progress on the website is good, functionality wise at least. I&#8217;m no designer, never claimed to be, and it&#8217;s showing&#8230; I have an idea of what I want to achieve with the look, but the current design just isn&#8217;t working I think. Might have to pull in some external advice. I&#8217;ve cut the content areas down for now, as much to concentrate on the bits I want most to get live (aka the photography galleries).</p>
<p>On top of all this, I&#8217;ve been looking into the WSO2 suite (http://wso2.org). It&#8217;s more than I can motivate my brain to explain at present, but lets just say it&#8217;s got potential application for something I&#8217;m interested in. For those who have too much time on your hands and a clue what SOA is, go have a read!</p>
<p>I&#8217;m sure that I&#8217;ve missed plenty of details, and the ones I&#8217;ve put in are nice and random and probably don&#8217;t make too much sense lol. But oh well, that&#8217;s a bit for now!</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2012%2F03%2Flife-code-and-random-ramblings%2F&amp;linkname=Life%2C%20code%20and%20random%20ramblings%E2%80%A6" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2012%2F03%2Flife-code-and-random-ramblings%2F&amp;linkname=Life%2C%20code%20and%20random%20ramblings%E2%80%A6" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2012%2F03%2Flife-code-and-random-ramblings%2F&amp;linkname=Life%2C%20code%20and%20random%20ramblings%E2%80%A6" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2012%2F03%2Flife-code-and-random-ramblings%2F&amp;linkname=Life%2C%20code%20and%20random%20ramblings%E2%80%A6" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frandominsanity.net.nz%2F2012%2F03%2Flife-code-and-random-ramblings%2F&#038;title=Life%2C%20code%20and%20random%20ramblings%E2%80%A6" data-a2a-url="https://randominsanity.net.nz/2012/03/life-code-and-random-ramblings/" data-a2a-title="Life, code and random ramblings…"></a></p><p>The post <a rel="nofollow" href="https://randominsanity.net.nz/2012/03/life-code-and-random-ramblings/">Life, code and random ramblings&#8230;</a> appeared first on <a rel="nofollow" href="https://randominsanity.net.nz">Random Insanity</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://randominsanity.net.nz/2012/03/life-code-and-random-ramblings/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ok so&#8230;</title>
		<link>https://randominsanity.net.nz/2010/08/ok-so/</link>
					<comments>https://randominsanity.net.nz/2010/08/ok-so/#respond</comments>
		
		<dc:creator><![CDATA[Daniel]]></dc:creator>
		<pubDate>Fri, 13 Aug 2010 11:28:24 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Facebook]]></category>
		<guid isPermaLink="false">https://randominsanity.net.nz/?p=1549</guid>

					<description><![CDATA[<p>&#8230; the last attempt at an automatic post didn&#8217;t play nice. Not sure if it was a config error on this end or a fb issue in general (we all know it has plenty of issues!). =P Fingers crossed, this will work though! And assuming it does, good night all. =]</p>
<p>The post <a rel="nofollow" href="https://randominsanity.net.nz/2010/08/ok-so/">Ok so&#8230;</a> appeared first on <a rel="nofollow" href="https://randominsanity.net.nz">Random Insanity</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>&#8230; the last attempt at an automatic post didn&#8217;t play nice. Not sure if it was a config error on this end or a fb issue in general (we all know it has plenty of issues!). =P</p>
<p>Fingers crossed, this will work though! And assuming it does, good night all. =]</p>
<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2010%2F08%2Fok-so%2F&amp;linkname=Ok%20so%E2%80%A6" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2010%2F08%2Fok-so%2F&amp;linkname=Ok%20so%E2%80%A6" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2010%2F08%2Fok-so%2F&amp;linkname=Ok%20so%E2%80%A6" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_email" href="https://www.addtoany.com/add_to/email?linkurl=https%3A%2F%2Frandominsanity.net.nz%2F2010%2F08%2Fok-so%2F&amp;linkname=Ok%20so%E2%80%A6" title="Email" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Frandominsanity.net.nz%2F2010%2F08%2Fok-so%2F&#038;title=Ok%20so%E2%80%A6" data-a2a-url="https://randominsanity.net.nz/2010/08/ok-so/" data-a2a-title="Ok so…"></a></p><p>The post <a rel="nofollow" href="https://randominsanity.net.nz/2010/08/ok-so/">Ok so&#8230;</a> appeared first on <a rel="nofollow" href="https://randominsanity.net.nz">Random Insanity</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://randominsanity.net.nz/2010/08/ok-so/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
