<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tom Saleeba (TechoTom)</title>
    <link>/</link>
    <description>Recent content on Tom Saleeba (TechoTom)</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 11 Feb 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Testing tools that measure process memory usage</title>
      <link>/post/2025-02-11-nodejs-program-to-use-memory/</link>
      <pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate>
      <guid>/post/2025-02-11-nodejs-program-to-use-memory/</guid>
      <description>Using a nodejs program that uses a known amount of memory to confirm the memory tracking tool is working</description>
    </item>
    <item>
      <title>Faster file copying on cold AWS EBS volumes (created from snapshot)</title>
      <link>/post/2024-06-12-faster-file-copying-on-cold-aws-ebs-volume/</link>
      <pubDate>Wed, 12 Jun 2024 00:00:00 +0000</pubDate>
      <guid>/post/2024-06-12-faster-file-copying-on-cold-aws-ebs-volume/</guid>
      <description>chunk the file and copy in parallel</description>
    </item>
    <item>
      <title>How to treat lines of a file as commands and execute in parallel</title>
      <link>/post/2024-06-12-linux-execute-commands-from-file-in-parallel/</link>
      <pubDate>Wed, 12 Jun 2024 00:00:00 +0000</pubDate>
      <guid>/post/2024-06-12-linux-execute-commands-from-file-in-parallel/</guid>
      <description>use &lt;code&gt;parallel -j8&lt;/code&gt; or &lt;code&gt;xargs -n1 -d=&#39;\n&#39; -P8 bash -c&lt;/code&gt;</description>
    </item>
    <item>
      <title>Writing shebang for an executable js script with yarn v2&#43; and PnP</title>
      <link>/post/2024-03-19-yarnpnp-shebang/</link>
      <pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate>
      <guid>/post/2024-03-19-yarnpnp-shebang/</guid>
      <description>use &lt;code&gt;env -S&lt;/code&gt;</description>
    </item>
    <item>
      <title>Manually handle custom XDG protocol callback for Linux apps needing auth callbacks</title>
      <link>/post/2024-02-06-manually-handle-custom-xdg-urls/</link>
      <pubDate>Tue, 06 Feb 2024 00:00:00 +0000</pubDate>
      <guid>/post/2024-02-06-manually-handle-custom-xdg-urls/</guid>
      <description>get Location header from resp in browser and call app with &lt;code&gt;$app --open-url $url&lt;/code&gt;</description>
    </item>
    <item>
      <title>Running caddy for local HTTPS with self-signed/snake-oil cert</title>
      <link>/post/2024-02-06-caddy-local-https-snakeoil/</link>
      <pubDate>Tue, 06 Feb 2024 00:00:00 +0000</pubDate>
      <guid>/post/2024-02-06-caddy-local-https-snakeoil/</guid>
      <description>generate cert+key, write a short Caddyfile, run caddy</description>
    </item>
    <item>
      <title>nodejs JSON pretty print one-liner</title>
      <link>/post/2023-12-04-nodejs-json-pretty-print-one-liner/</link>
      <pubDate>Mon, 04 Dec 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-12-04-nodejs-json-pretty-print-one-liner/</guid>
      <description>&lt;code&gt;node -p &#39;JSON.stringify(JSON.parse(fs.readFileSync(0)),null,2)&#39;&lt;/code&gt;</description>
    </item>
    <item>
      <title>kakoune paste block or multiple selections</title>
      <link>/post/2023-11-03-kakoune-paste-multiple-selections/</link>
      <pubDate>Fri, 03 Nov 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-11-03-kakoune-paste-multiple-selections/</guid>
      <description>make sure you split the selection into lines before cutting</description>
    </item>
    <item>
      <title>base64 each line of a file</title>
      <link>/post/2023-08-30-base64-each-line-in-file/</link>
      <pubDate>Wed, 30 Aug 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-08-30-base64-each-line-in-file/</guid>
      <description>encoding the whole file as one is easy, but what about each line on its own</description>
    </item>
    <item>
      <title>Makefile parallelism respects dependency graph</title>
      <link>/post/2023-08-16-makefile-parallelism/</link>
      <pubDate>Wed, 16 Aug 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-08-16-makefile-parallelism/</guid>
      <description>We run a simple Makefile as proof</description>
    </item>
    <item>
      <title>Socat reverse shell</title>
      <link>/post/2023-06-21-socat-reverse-shell/</link>
      <pubDate>Wed, 21 Jun 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-06-21-socat-reverse-shell/</guid>
      <description>&lt;code&gt;socat -d -d TCP4-LISTEN:4443,reuseaddr STDOUT&lt;/code&gt; and &lt;code&gt;socat TCP4:localhost:4443 EXEC:/bin/bash,stderr&lt;/code&gt;</description>
    </item>
    <item>
      <title>How to tidy up your shell history by removing long commands</title>
      <link>/post/2023-05-03-remove-long-lines-from-zsh-history/</link>
      <pubDate>Wed, 03 May 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-05-03-remove-long-lines-from-zsh-history/</guid>
      <description>Use the sed command in this post</description>
    </item>
    <item>
      <title>Comparing AWS Fargate cost to EC2</title>
      <link>/post/2023-03-07-aws-fargate-cost-compared-to-ec2/</link>
      <pubDate>Tue, 07 Mar 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-03-07-aws-fargate-cost-compared-to-ec2/</guid>
      <description>You pay about 20% more for the luxury of using Fargate</description>
    </item>
    <item>
      <title>Resources for learning software development</title>
      <link>/post/2023-02-01-resources-for-learning-software-dev/</link>
      <pubDate>Wed, 01 Feb 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-02-01-resources-for-learning-software-dev/</guid>
      <description>A living post of things I find to up-skill your software dev skills.</description>
    </item>
    <item>
      <title>Modify process.env for a running NodeJS process</title>
      <link>/post/2023-01-24-modify-process.env-for-running-nodejs-process/</link>
      <pubDate>Tue, 24 Jan 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-01-24-modify-process.env-for-running-nodejs-process/</guid>
      <description>Enable the debugger, connect, start a REPL and modify vars</description>
    </item>
    <item>
      <title>Grab Mixcloud URLs</title>
      <link>/post/2023-01-16-grab-mixcloud-urls/</link>
      <pubDate>Mon, 16 Jan 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-01-16-grab-mixcloud-urls/</guid>
      <description>JS snippet to run in the browser</description>
    </item>
    <item>
      <title>Demo of Docker env vars and build args</title>
      <link>/post/2023-01-10-docker-env-vars/</link>
      <pubDate>Tue, 10 Jan 2023 00:00:00 +0000</pubDate>
      <guid>/post/2023-01-10-docker-env-vars/</guid>
      <description>See which things are in-scope for build or runtime</description>
    </item>
    <item>
      <title>Checking MIPS and 7z benchmark on a few AWS EC2 instances</title>
      <link>/post/2022-12-08-aws-mips-and-7z-benchmark/</link>
      <pubDate>Thu, 08 Dec 2022 00:00:00 +0000</pubDate>
      <guid>/post/2022-12-08-aws-mips-and-7z-benchmark/</guid>
      <description>Seeing how Graviton compares with x86</description>
    </item>
    <item>
      <title>Proxy/forward mysql to another port</title>
      <link>/post/2022-11-30-proxy-forward-mysql-to-another-port/</link>
      <pubDate>Wed, 30 Nov 2022 00:00:00 +0000</pubDate>
      <guid>/post/2022-11-30-proxy-forward-mysql-to-another-port/</guid>
      <description>Use &lt;code&gt;socat&lt;/code&gt;</description>
    </item>
    <item>
      <title>How to run Unigine Superposition in Wayland</title>
      <link>/post/2022-11-20-run-unigine-superposition-in-wayland/</link>
      <pubDate>Sun, 20 Nov 2022 00:00:00 +0000</pubDate>
      <guid>/post/2022-11-20-run-unigine-superposition-in-wayland/</guid>
      <description>Force the use of xwayland</description>
    </item>
    <item>
      <title>Linux Intel iGPU stutter</title>
      <link>/post/2022-11-17-linux-intel-igpu-stutter/</link>
      <pubDate>Thu, 17 Nov 2022 00:00:00 +0000</pubDate>
      <guid>/post/2022-11-17-linux-intel-igpu-stutter/</guid>
      <description>How to get a smooth desktop</description>
    </item>
    <item>
      <title>Caching your deno deps in a specified directory</title>
      <link>/post/2022-05-17-deno-cache-deps/</link>
      <pubDate>Tue, 17 May 2022 00:00:00 +0000</pubDate>
      <guid>/post/2022-05-17-deno-cache-deps/</guid>
      <description>Using &lt;code&gt;deno cache&lt;/code&gt; and the &lt;code&gt;DENO_DIR&lt;/code&gt; env var</description>
    </item>
    <item>
      <title>Get your Audible book list</title>
      <link>/post/2022-05-07-get-your-audible-book-list/</link>
      <pubDate>Sat, 07 May 2022 00:00:00 +0000</pubDate>
      <guid>/post/2022-05-07-get-your-audible-book-list/</guid>
      <description>How to get a list of your Amazon Audible library as text</description>
    </item>
    <item>
      <title>AWS IAM policy for Serverless Framework deploy</title>
      <link>/post/2022-03-01-serverless-framework-IAM-policy/</link>
      <pubDate>Tue, 01 Mar 2022 00:00:00 +0000</pubDate>
      <guid>/post/2022-03-01-serverless-framework-IAM-policy/</guid>
      <description>The AWS IAM policy I&amp;rsquo;m using for the CD pipeline</description>
    </item>
    <item>
      <title>Mounting encrypted Linux partitions from a Live Disc</title>
      <link>/post/2022-01-02-mounting-encrypted-partitions/</link>
      <pubDate>Sun, 02 Jan 2022 00:00:00 +0000</pubDate>
      <guid>/post/2022-01-02-mounting-encrypted-partitions/</guid>
      <description>Notes to my future self about how to deal with encrypted partitions when running in a Live Disc (or USB) environment</description>
    </item>
    <item>
      <title>Moving an AWS Lambda between subnets</title>
      <link>/post/2021-12-30-moving-an-aws-lambda-between-subnets/</link>
      <pubDate>Thu, 30 Dec 2021 00:00:00 +0000</pubDate>
      <guid>/post/2021-12-30-moving-an-aws-lambda-between-subnets/</guid>
      <description>You also have to publish a new version and delete all the old versions</description>
    </item>
    <item>
      <title>Minimising finger movement for keyboard keys</title>
      <link>/post/2021-11-18-more-keys-less-movement/</link>
      <pubDate>Thu, 18 Nov 2021 00:00:00 +0000</pubDate>
      <guid>/post/2021-11-18-more-keys-less-movement/</guid>
      <description>Non-functioning prototype of the finger part of a keyboard, with photos!</description>
    </item>
    <item>
      <title>DroidCamX on Linux</title>
      <link>/post/2021-09-22-droidcamx-on-linux/</link>
      <pubDate>Wed, 22 Sep 2021 12:55:32 -0600</pubDate>
      <guid>/post/2021-09-22-droidcamx-on-linux/</guid>
      <description>Using DroidCamX to save and view streamed video in the command line.</description>
    </item>
    <item>
      <title>Change mouse sensitivity (not acceleration) in Linux</title>
      <link>/post/2021-08-15-config-xinput-mouse-sensitivity/</link>
      <pubDate>Sun, 15 Aug 2021 15:14:31 -0600</pubDate>
      <guid>/post/2021-08-15-config-xinput-mouse-sensitivity/</guid>
      <description>How to decrease mouse sensitivity in Linux for an accurate cursor</description>
    </item>
    <item>
      <title>DIY layouts for Multiling O keyboard</title>
      <link>/post/2021-08-15-custom-layouts-for-multiling-o-keyboard/</link>
      <pubDate>Sun, 15 Aug 2021 15:14:31 -0600</pubDate>
      <guid>/post/2021-08-15-custom-layouts-for-multiling-o-keyboard/</guid>
      <description>Truly doing it yourself seeing as the server-side magic seems broken</description>
    </item>
    <item>
      <title>Boot Arch linux in Qemu after archinstall</title>
      <link>/post/2021-08-15-archinstall-qemu-boot/</link>
      <pubDate>Sun, 15 Aug 2021 15:13:31 -0600</pubDate>
      <guid>/post/2021-08-15-archinstall-qemu-boot/</guid>
      <description>How to install grub to make your vm boot</description>
    </item>
    <item>
      <title>Elecom Deft Pro Bearing Swap</title>
      <link>/post/2021-06-26-elecom-deft-pro-bearing-swap/</link>
      <pubDate>Sat, 26 Jun 2021 15:07:50 -0600</pubDate>
      <guid>/post/2021-06-26-elecom-deft-pro-bearing-swap/</guid>
      <description>Swap the ball bearings for better ones that make the device better for small movements</description>
    </item>
    <item>
      <title>Yarn2 add from GitLab</title>
      <link>/post/2021-02-02-yarn2-add-from-gitlab/</link>
      <pubDate>Tue, 02 Feb 2021 16:24:45 +1030</pubDate>
      <guid>/post/2021-02-02-yarn2-add-from-gitlab/</guid>
      <description>How to install npm/yarn packages direct from a GitLab repo</description>
    </item>
    <item>
      <title>Reduce Yarn 2 Verbosity</title>
      <link>/post/2021-01-31-reduce-yarn2-verbosity/</link>
      <pubDate>Sun, 31 Jan 2021 11:55:45 +1030</pubDate>
      <guid>/post/2021-01-31-reduce-yarn2-verbosity/</guid>
      <description>I think the default log output of yarn v2 is too verbose, so I show how to tame it.</description>
    </item>
    <item>
      <title>Toilet paper roll chorded keyboard concept</title>
      <link>/post/2020-12-21-tp-roll-chorded-keyboard-concept/</link>
      <pubDate>Mon, 21 Dec 2020 18:23:18 +1030</pubDate>
      <guid>/post/2020-12-21-tp-roll-chorded-keyboard-concept/</guid>
      <description>&lt;p&gt;TL;DR: Here&amp;rsquo;s a non-functioning concept of a handheld chorded keyboard.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;./tp.gif&#34; alt=&#34;concept of keyboard&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Recently I&amp;rsquo;ve been interested in chorded keyboards. Well, interested might be an&#xA;understatement, it&amp;rsquo;s more like consumed. I tried a&#xA;&lt;a href=&#34;https://www.tapwithus.com/&#34;&gt;TapStrap&lt;/a&gt; v1, which unfortunately didn&amp;rsquo;t live up to&#xA;my expectations. The main problem was the thing everyone fears about this&#xA;product, the accuracy of recognising the taps.  This led me to look at other&#xA;options that use physical keys like the &lt;a href=&#34;https://www.infogrip.com/bat-keyboard.html&#34;&gt;BAT&#xA;Keyboard&lt;/a&gt; or the wonderful things&#xA;the &lt;a href=&#34;https://hackaday.com/tag/chorded-keyboard/&#34;&gt;maker community comes up with&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>TapStrap Key Mappings</title>
      <link>/post/tapstrap-key-mappings/</link>
      <pubDate>Tue, 08 Dec 2020 17:54:35 +1030</pubDate>
      <guid>/post/tapstrap-key-mappings/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://www.tapwithus.com/&#34;&gt;TapStrap&lt;/a&gt; is an interesting keyboard. It&amp;rsquo;s also&#xA;not that cheap so it&amp;rsquo;s understandable if you&amp;rsquo;re apprehensive about buying it.&lt;/p&gt;&#xA;&lt;p&gt;I wanted to try the layout without buying the keyboard to see how it works for&#xA;me. The first step is to find out what the layout is and my Google-fu let me&#xA;down because I couldn&amp;rsquo;t find anything written. All the references tell you to&#xA;use the TapGenius app (&lt;em&gt;the app&lt;/em&gt; from here on).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comparing Google Cloud Run and Compute Engine Costs</title>
      <link>/post/2020-05-28-comparing-google-cloud-run-and-compute-engine-costs/</link>
      <pubDate>Thu, 28 May 2020 10:54:45 +0930</pubDate>
      <guid>/post/2020-05-28-comparing-google-cloud-run-and-compute-engine-costs/</guid>
      <description>How much do you pay for convenience? TL;DR roughly 2.5x as much</description>
    </item>
    <item>
      <title>More details from Chrome &#39;Aw snap&#39;</title>
      <link>/post/2020-04-07-more-details-from-chrome-aw-snap/</link>
      <pubDate>Tue, 07 Apr 2020 22:51:59 +1100</pubDate>
      <guid>/post/2020-04-07-more-details-from-chrome-aw-snap/</guid>
      <description>Trying to get more details about why the page crashes</description>
    </item>
    <item>
      <title>Disable individual icons with favicons-webpack-plugin</title>
      <link>/post/2020-04-02-disable-individual-icons-with-favicons-webpack-plugin/</link>
      <pubDate>Thu, 02 Apr 2020 16:37:59 +1100</pubDate>
      <guid>/post/2020-04-02-disable-individual-icons-with-favicons-webpack-plugin/</guid>
      <description>If you only want to disable some icons, like the really big Apple ones, here&amp;rsquo;s how</description>
    </item>
    <item>
      <title>eRSA Tango Ubuntu VM setup</title>
      <link>/post/2018-02-21-ersa-tango-ubuntu-vm-setup/</link>
      <pubDate>Wed, 21 Feb 2018 00:00:00 +0000</pubDate>
      <guid>/post/2018-02-21-ersa-tango-ubuntu-vm-setup/</guid>
      <description>Get that newly provisioned VM running like you want.</description>
    </item>
    <item>
      <title>Ball bearing homing bumps on keycaps</title>
      <link>/post/2018-02-03-ball-bearing-homing-bumps-on-keycaps/</link>
      <pubDate>Sat, 03 Feb 2018 00:00:00 +0000</pubDate>
      <guid>/post/2018-02-03-ball-bearing-homing-bumps-on-keycaps/</guid>
      <description>How to make your own homing keys with inset ball bearings.</description>
    </item>
    <item>
      <title>Stardog plugin and Gremlin console not working</title>
      <link>/post/2017-12-18-stardog-plugin-and-gremlin-console-not-working/</link>
      <pubDate>Mon, 18 Dec 2017 00:00:00 +0000</pubDate>
      <guid>/post/2017-12-18-stardog-plugin-and-gremlin-console-not-working/</guid>
      <description>You&amp;rsquo;ve followed the instructions to install the plugin and it doesn&amp;rsquo;t load, now what?</description>
    </item>
    <item>
      <title>Docker &#39;no supported platform found in manifest&#39;</title>
      <link>/post/2017-11-09-docker-no-supported-platform-found-in-manifest/</link>
      <pubDate>Thu, 09 Nov 2017 00:00:00 +0000</pubDate>
      <guid>/post/2017-11-09-docker-no-supported-platform-found-in-manifest/</guid>
      <description>What to do when you&amp;rsquo;re trying to pull an image that DockerHub hasn&amp;rsquo;t built yet.</description>
    </item>
    <item>
      <title>faas-netes getting 502 &#39;Error pulling metrics from provider/backend&#39;</title>
      <link>/post/2017-11-08-faas-netes-getting-502-error-pulling-metrics-from-provider-backend/</link>
      <pubDate>Wed, 08 Nov 2017 00:00:00 +0000</pubDate>
      <guid>/post/2017-11-08-faas-netes-getting-502-error-pulling-metrics-from-provider-backend/</guid>
      <description>How I caused headaches for myself by deploying faas-netes to a different namespace when it only wants to run in the default one.</description>
    </item>
    <item>
      <title>Finding keycloak realm certificate for apiman</title>
      <link>/post/2017-10-17-finding-keycloak-realm-certificate-for-apiman/</link>
      <pubDate>Tue, 17 Oct 2017 00:00:00 +0000</pubDate>
      <guid>/post/2017-10-17-finding-keycloak-realm-certificate-for-apiman/</guid>
      <description>The blog post on setting up OAuth2 with apiman has some out of date bits when using apiman v1.3.1. I&amp;rsquo;ll show you where to find that realm certificate.</description>
    </item>
    <item>
      <title>Adelaide University VPN, Openconnect and Duo</title>
      <link>/post/2017-09-28-adelaide-university-vpn-openconnect-and-duo/</link>
      <pubDate>Thu, 28 Sep 2017 00:00:00 +0000</pubDate>
      <guid>/post/2017-09-28-adelaide-university-vpn-openconnect-and-duo/</guid>
      <description>How to connect to Adelaide University&amp;rsquo;s VPN using openconnect from the command line in *nix based systems now that they&amp;rsquo;re introduced 2FA using Duo.</description>
    </item>
    <item>
      <title>Three level failover with AWS Route53</title>
      <link>/post/2017-07-07-three-level-failover-with-aws-route53/</link>
      <pubDate>Fri, 07 Jul 2017 00:00:00 +0000</pubDate>
      <guid>/post/2017-07-07-three-level-failover-with-aws-route53/</guid>
      <description>How to create a 3 level failover DNS setup from the AWS web console</description>
    </item>
    <item>
      <title>Windows 10 won&#39;t start as VirtualBox guest</title>
      <link>/post/2017-07-05-windows-10-won-t-start-as-virtualbox-guest/</link>
      <pubDate>Wed, 05 Jul 2017 00:00:00 +0000</pubDate>
      <guid>/post/2017-07-05-windows-10-won-t-start-as-virtualbox-guest/</guid>
      <description>Updating to a newer version of VirtualBox is required to get Windows 10 version 1703 to run as a guest.</description>
    </item>
    <item>
      <title>Alternative way to fix the &#34;Screen Overlay Detected&#34; error on Android</title>
      <link>/post/2017-03-17-alternative-way-to-fix-the-screen-overlay-detected-error-on-android/</link>
      <pubDate>Fri, 17 Mar 2017 11:55:43 +0000</pubDate>
      <guid>/post/2017-03-17-alternative-way-to-fix-the-screen-overlay-detected-error-on-android/</guid>
      <description>Work around this annoying notification by manually enabling the permission from the settings menu.</description>
    </item>
    <item>
      <title>PluralSight custom playback speeds</title>
      <link>/post/2016-12-06-pluralsight-custom-playback-speeds/</link>
      <pubDate>Tue, 06 Dec 2016 04:21:48 +0000</pubDate>
      <guid>/post/2016-12-06-pluralsight-custom-playback-speeds/</guid>
      <description>Learn even faster by watching videos at faster than 2x playback speed.</description>
    </item>
    <item>
      <title>Can&#39;t rename files in Linux Mint using Nemo</title>
      <link>/post/2016-05-31-cant-rename-files-in-linux-mint-using-nemo/</link>
      <pubDate>Tue, 31 May 2016 03:00:40 +0000</pubDate>
      <guid>/post/2016-05-31-cant-rename-files-in-linux-mint-using-nemo/</guid>
      <description>&lt;h1 id=&#34;tldr&#34;&gt;TL;DR:&lt;/h1&gt;&#xA;&lt;p&gt;I installed Zoom which brought ibus in as a dependency. During a dist-update&#xA;ibus was set to my main input method and it doesn&amp;rsquo;t work well (for me). Use the&#xA;Input Method app to set the input method back to XIM and restart the display&#xA;manager.&lt;/p&gt;&#xA;&lt;h1 id=&#34;background&#34;&gt;Background:&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;m running Linux Mint 17.1 and I recently experienced the same issue described&#xA;in this&#xA;thread: &lt;a href=&#34;https://forums.linuxmint.com/viewtopic.php?t=171086&#34;&gt;https://forums.linuxmint.com/viewtopic.php?t=171086&lt;/a&gt;.&#xA;Basically, I could press F2 to rename a file using Nemo, the out-of-the-box file&#xA;manager but then I typing would have no effect. All permissions were OK as I&#xA;could rename the file from the terminal so it was a problem with the UI.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xtend 2.8.2, Java 8 and .sort()</title>
      <link>/post/2016-03-22-xtend-2-8-2-java-8-and-sort/</link>
      <pubDate>Tue, 22 Mar 2016 07:23:14 +0000</pubDate>
      <guid>/post/2016-03-22-xtend-2-8-2-java-8-and-sort/</guid>
      <description>&lt;h1 id=&#34;background&#34;&gt;Background&lt;/h1&gt;&#xA;&lt;p&gt;Warning: this post could probably be countered with a simple RTFM! But for those who are Googling for this, I hope it helps.&lt;/p&gt;&#xA;&lt;p&gt;Today I tested out how our Xtend 2.8 code that works in Java 7 would go in a Java 8 JDK. For the most part it was ok but one problem that we experienced was related to sorting collections.&lt;/p&gt;&#xA;&lt;p&gt;We had code like:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-xtend&#34; data-lang=&#34;xtend&#34;&gt;val someCustomerComparator = ... // a java.util.Comparator&#xA;for(item : someEObject.items.sort(someCustomComparator)) {&#xA;  // do stuff&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The sort method here is:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Loading TDB data into Apache Fuseki</title>
      <link>/post/2016-03-17-loading-tdb-data-into-apache-fuseki/</link>
      <pubDate>Thu, 17 Mar 2016 06:32:56 +0000</pubDate>
      <guid>/post/2016-03-17-loading-tdb-data-into-apache-fuseki/</guid>
      <description>&lt;h1 id=&#34;background&#34;&gt;Background&lt;/h1&gt;&#xA;&lt;p&gt;I&amp;rsquo;m working with Apache Jena and Apache Fuseki (v2.3.1) at the moment and today I had the need to load more than one lot of data into Fuseki on start up. I thought I needed an assembler file, and I probably could&amp;rsquo;ve used one, but I&amp;rsquo;ve ended up using config file for Fuseki.&lt;/p&gt;&#xA;&lt;p&gt;I was Googling for &amp;rsquo;example Fuseki config files&amp;rsquo; to get up and running quickly but didn&amp;rsquo;t find anything so it&amp;rsquo;s my hope that others can use this blog post to get a TDB data directory loaded into Fuseki using a config file quickly.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing &#34;XMLGregorianCalendarImpl is internal proprietary API and may be removed in a future release&#34;</title>
      <link>/post/2015-02-03-fixing-xmlgregoriancalendarimpl-is-internal-proprietary-api-and-may-be-removed-in-a-future-release/</link>
      <pubDate>Tue, 03 Feb 2015 07:43:51 +0000</pubDate>
      <guid>/post/2015-02-03-fixing-xmlgregoriancalendarimpl-is-internal-proprietary-api-and-may-be-removed-in-a-future-release/</guid>
      <description>&lt;h1 id=&#34;background&#34;&gt;Background:&lt;/h1&gt;&#xA;&lt;p&gt;I wrote some code that required an XMLGregorianCalendar so when I poked around with code completion, the first thing I found was a constructor on &lt;code&gt;com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl&lt;/code&gt;. This got my code working but when you build with Maven, you get given a warning (and rightly so):&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;XMLGregorianCalendarImpl is internal proprietary API and may be removed in a future release&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h1 id=&#34;the-fix&#34;&gt;The fix:&lt;/h1&gt;&#xA;&lt;p&gt;The correct way to get something that conforms to the XMLGregorianCalendar interface is to call this factory:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mocking remoteAddr with Spring-mvc</title>
      <link>/post/2014-11-12-mocking-remoteaddr-with-spring-mvc/</link>
      <pubDate>Wed, 12 Nov 2014 03:00:42 +0000</pubDate>
      <guid>/post/2014-11-12-mocking-remoteaddr-with-spring-mvc/</guid>
      <description>&lt;h1 id=&#34;the-problem&#34;&gt;The problem&lt;/h1&gt;&#xA;&lt;p&gt;We developed a Spring MVC controller that needs to know who the client is. We achieved this using a &lt;code&gt;HttpServletRequest&lt;/code&gt; parameter and then calling &lt;code&gt;getRemoteAddr()&lt;/code&gt; on it. The challenge then was how to test this because we need to be able to mock this value.&lt;/p&gt;&#xA;&lt;h1 id=&#34;the-fix&#34;&gt;The fix&lt;/h1&gt;&#xA;&lt;p&gt;The Spring test helpers don&amp;rsquo;t provide a way to set this value with a helper method but they do provide an extension point that we can use to do it ourselves. The extension point is the &lt;code&gt;.with(RequestPostProcessor)&lt;/code&gt; method:&lt;/p&gt;</description>
    </item>
    <item>
      <title>tycho-p2-director-plugin &#34;Error packing product:  isn&#39;t a directory&#34; problem</title>
      <link>/post/2014-10-27-tycho-p2-director-plugin-error-packing-product-isnt-a-directory-problem/</link>
      <pubDate>Mon, 27 Oct 2014 00:00:58 +0000</pubDate>
      <guid>/post/2014-10-27-tycho-p2-director-plugin-error-packing-product-isnt-a-directory-problem/</guid>
      <description>&lt;h1 id=&#34;the-problem&#34;&gt;The problem&lt;/h1&gt;&#xA;&lt;p&gt;You&amp;rsquo;re trying to build an Eclipse update site project, specifically &lt;code&gt;&amp;lt;packaging&amp;gt;eclipse-repository&amp;lt;/packaging&amp;gt;&lt;/code&gt;, with maven and you&amp;rsquo;re getting the following error:&lt;/p&gt;&#xA;&lt;pre style=&#34;white-space:pre;overflow-x:auto;&#34;&gt;[INFO] --- tycho-p2-director-plugin:0.21.0:archive-products (default) @ YourProject.UpdateSite ---&#xA;[INFO] ------------------------------------------------------------------------&#xA;[INFO] BUILD FAILURE&#xA;[INFO] ------------------------------------------------------------------------&#xA;[INFO] Total time: 1:00.627s&#xA;[INFO] Finished at: Mon Oct 27 09:56:51 CST 2014&#xA;[INFO] Final Memory: 84M/764M&#xA;[INFO] ------------------------------------------------------------------------&#xA;&lt;span style=&#34;color:#ff0000;&#34;&gt;[ERROR] Failed to execute goal org.eclipse.tycho:tycho-p2-director-plugin:0.21.0:archive-products (default) on project YourProject.UpdateSite: Error packing product: /path/to/YourProject.UpdateSite/target/products/your.product/linux/gtk/x86 isn&#39;t a directory. -&gt; [Help 1]&lt;/span&gt;&#xA;[ERROR]&#xA;[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.&#xA;[ERROR] Re-run Maven using the -X switch to enable full debug logging.&#xA;[ERROR]&#xA;[ERROR] For more information about the errors and possible solutions, please read the following articles:&#xA;[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException&lt;/pre&gt;&#xA;&lt;p&gt;This error message is specific to this environment block that you would have defined in your POM:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing &#34;The default package &#39;.&#39; is not permitted by the Import-Package syntax.&#34; with maven-bundle-plugin</title>
      <link>/post/2014-10-21-fixing-the-default-package-is-not-permitted-by-the-import-package-syntax-with-maven-bundle-plugin/</link>
      <pubDate>Tue, 21 Oct 2014 01:05:03 +0000</pubDate>
      <guid>/post/2014-10-21-fixing-the-default-package-is-not-permitted-by-the-import-package-syntax-with-maven-bundle-plugin/</guid>
      <description>&lt;h1 id=&#34;overview&#34;&gt;Overview&lt;/h1&gt;&#xA;&lt;p&gt;I found this problem when I was trying to bundle a maven project as an OSGi bundle to use with Tycho. The bundle I was trying to make was effectively a shaded/uber JAR that has all the dependencies inlined inside of the final artifact JAR.&lt;/p&gt;&#xA;&lt;h1 id=&#34;the-cause&#34;&gt;The cause&lt;/h1&gt;&#xA;&lt;p&gt;This problem is caused by a Java class file existing in the default/unamed package. It could come from anywhere in the dependency chain, including your own project, but in this case it came from one of my dependencies; JDOM.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Changing mwe2 src directory for Xtext 2.3.1</title>
      <link>/post/2014-06-06-changing-mwe2-src-directory-for-xtext-2-3-1/</link>
      <pubDate>Fri, 06 Jun 2014 06:51:54 +0000</pubDate>
      <guid>/post/2014-06-06-changing-mwe2-src-directory-for-xtext-2-3-1/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The Xtext project I&amp;rsquo;m working with had, what I assume is, the default project structure where all the java source code lives in a src directory and the generated code goes into src-gen. I wanted to change the structure to a more maven-like structure and have the java code living under src/main/java. I wasn&amp;rsquo;t too fussed about the src-gen directory, that can stay where it is. I Googled for a while but I couldn&amp;rsquo;t find anyone asking the same question as me so hopefully this will help any others (and my future self).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Help troubleshooting Spring MVC unit test failing with a HTTP 400 error code</title>
      <link>/post/2013-12-10-help-troubleshooting-spring-mvc-unit-test-failing-with-a-http-400-error-code/</link>
      <pubDate>Tue, 10 Dec 2013 06:32:17 +0000</pubDate>
      <guid>/post/2013-12-10-help-troubleshooting-spring-mvc-unit-test-failing-with-a-http-400-error-code/</guid>
      <description>&lt;p&gt;Note: I&amp;rsquo;m working in Eclipse with Spring 3 and using jUnit for my tests.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;I was writing a unit test for a file upload method on a controller that looks like:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mockMvc.&lt;span style=&#34;color:#a6e22e&#34;&gt;perform&lt;/span&gt;(fileUpload(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/fileUpload&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    .&lt;span style=&#34;color:#a6e22e&#34;&gt;param&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;description&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;blah&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  )&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  .&lt;span style=&#34;color:#a6e22e&#34;&gt;andExpect&lt;/span&gt;(status().&lt;span style=&#34;color:#a6e22e&#34;&gt;isOk&lt;/span&gt;());&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The test was failing with the message:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;java.lang.AssertionError: Status expected:&amp;lt;200&amp;gt; but was:&amp;lt;400&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This isn&amp;rsquo;t super helpful because I wasn&amp;rsquo;t sure why I was getting the 400. I tried changing the URL that I was testing and the error code changed to a 404 so I knew the request was trying to get to the right controller method. I also put a breakpoint in my controller method but it was never hit so I knew it was the configuration of the test and not the code in the controller method that was causing the issue.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to time-hack TinyDeathStar without losing a Bitizen to the airlock</title>
      <link>/post/2013-12-09-how-to-time-hack-tinydeathstar-without-losing-a-bitizen-to-the-airlock/</link>
      <pubDate>Mon, 09 Dec 2013 09:45:31 +0000</pubDate>
      <guid>/post/2013-12-09-how-to-time-hack-tinydeathstar-without-losing-a-bitizen-to-the-airlock/</guid>
      <description>&lt;p&gt;Note: this was done on a rooted Android. It may work on Apple devices but you definitely require root on Android.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve become a bit addicted to this game and in the course of playing it, I&amp;rsquo;ve had it rip me off a few times. This happened when I&amp;rsquo;d open the game after, it&amp;rsquo;d been sitting for a while, but then it would crash a few seconds after and when I relaunched it, the extra money I&amp;rsquo;d earned wouldn&amp;rsquo;t be there.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing SEVERE errors with Jersey on WebApp startup</title>
      <link>/post/2013-04-19-fixing-severe-errors-with-jersey-on-webapp-startup/</link>
      <pubDate>Fri, 19 Apr 2013 08:20:40 +0000</pubDate>
      <guid>/post/2013-04-19-fixing-severe-errors-with-jersey-on-webapp-startup/</guid>
      <description>&lt;h1 id=&#34;the-problem&#34;&gt;The problem&lt;/h1&gt;&#xA;&lt;p&gt;As some background, I&amp;rsquo;m running the following:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Jersey 1.15&lt;/li&gt;&#xA;&lt;li&gt;Apache Tomcat 7&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The specific error that we&amp;rsquo;re going to fix is:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SEVERE: The following errors and warnings have been detected with resource and/or provider classes:&#xA;SEVERE: Missing dependency for method public au.com.your.package.YourResponse au.com.your.package.YourClass.someMethod(au.com.your.package.YourRequest) at parameter at index 0&#xA;SEVERE: Method, public au.com.your.package.YourResponse au.com.your.package.YourClass.someMethod(au.com.your.package.YourRequest), annotated with GET of resource, class au.com.your.package.YourClass, is not recognized as valid resource method.&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you&amp;rsquo;re running Tomcat like I am then you&amp;rsquo;ll see this in your &lt;code&gt;catalina.out&lt;/code&gt; log file.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing linux apt &#34;bzip2: Data integrity error when decompressing.&#34; error</title>
      <link>/post/2013-02-26-fixing-linux-apt-bzip2-data-integrity-error-when-decompressing-error/</link>
      <pubDate>Tue, 26 Feb 2013 01:27:28 +0000</pubDate>
      <guid>/post/2013-02-26-fixing-linux-apt-bzip2-data-integrity-error-when-decompressing-error/</guid>
      <description>How to clear the APT cache to fix failing updates.</description>
    </item>
    <item>
      <title>Fixing locale issues with postgres</title>
      <link>/post/2013-02-15-fixing-locale-issues-with-postgres/</link>
      <pubDate>Fri, 15 Feb 2013 02:25:55 +0000</pubDate>
      <guid>/post/2013-02-15-fixing-locale-issues-with-postgres/</guid>
      <description>&lt;p&gt;I came across this problem the other day and thought I&amp;rsquo;d post up the fix because it&amp;rsquo;s simple to fix but a show stopper if you can&amp;rsquo;t.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m running Linux Mint 64-bit Cinnamon and Postgres 9.1 as a refenece in case you can&amp;rsquo;t copy-paste my commands.&lt;/p&gt;&#xA;&lt;p&gt;Basically, when I copied an already running version of postgres to a new box and it failed to start. When I took a look in the postgres log for when you try to start it, I could see that it was complaining about a missing locale. For me, it was &lt;code&gt;en_AU.UTF-8&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>&#34;Could not open a connection to your authentication agent.&#34; when trying to ssh-add</title>
      <link>/post/2013-01-22-could-not-open-a-connection-to-your-authentication-agent-when-trying-to-ssh-add/</link>
      <pubDate>Tue, 22 Jan 2013 12:58:55 +0000</pubDate>
      <guid>/post/2013-01-22-could-not-open-a-connection-to-your-authentication-agent-when-trying-to-ssh-add/</guid>
      <description>How to &lt;code&gt;ssh-add&lt;/code&gt; on a remote machine.</description>
    </item>
    <item>
      <title>Maven deploy to Sonatype Nexus &#34;401 Premission Denied&#34; workaround</title>
      <link>/post/2012-12-24-maven-deploy-401-workaround/</link>
      <pubDate>Mon, 24 Dec 2012 05:37:53 +0000</pubDate>
      <guid>/post/2012-12-24-maven-deploy-401-workaround/</guid>
      <description>&lt;p&gt;My current infrastructure has an instance of Jenkins as the Continuous Integration server and Sonatype Nexus as the repository manager. The POMs for my project and the &lt;code&gt;settings.xml&lt;/code&gt; file for maven are configured so that Jenkins can automatically deploy SNAPSHOTs to the Nexus repository but the problem arose when I had a build that went to production and I needed to deploy that pre-built artifact to Nexus&amp;rsquo; RELEASE repository. This was easier that going back and checking out the correct versions of the many dependencies. In the future I&amp;rsquo;ll use the &lt;a href=&#34;http://maven.apache.org/maven-release/maven-release-plugin/index.html&#34;&gt;maven-release-plugin&lt;/a&gt; but for now, this is how I solved this problem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configuring Eclipse source directories with maven</title>
      <link>/post/2012-11-10-configuring-eclipse-source-directories-with-maven/</link>
      <pubDate>Sat, 10 Nov 2012 00:19:20 +0000</pubDate>
      <guid>/post/2012-11-10-configuring-eclipse-source-directories-with-maven/</guid>
      <description>&lt;p&gt;When you generate a Java project using maven and then import it into Eclipse, often you want to add extra directories that are treated as source directories. This guide will show you how to do it.&lt;/p&gt;&#xA;&lt;p&gt;First lets look at (a snippet of) the &lt;a href=&#34;http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Super_POM&#34;&gt;Super POM&lt;/a&gt; to see what we get by default:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;build&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;sourceDirectory&amp;gt;&lt;/span&gt;src/main/java&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/sourceDirectory&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;scriptSourceDirectory&amp;gt;&lt;/span&gt;src/main/scripts&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/scriptSourceDirectory&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;testSourceDirectory&amp;gt;&lt;/span&gt;src/test/java&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/testSourceDirectory&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;resources&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;resource&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;directory&amp;gt;&lt;/span&gt;src/main/resources&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/directory&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/resource&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/resources&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/build&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We can override what we get from here which is probably what you&amp;rsquo;ll do most of the time; adding another resource directory. When you add another resource remember that you&amp;rsquo;re overriding the default so if you still want &lt;code&gt;src/main/resources&lt;/code&gt; then you&amp;rsquo;ll have to explicitly add it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejecting an ISO from a VirtualBox VM using VBoxManage</title>
      <link>/post/2012-09-22-ejecting-an-iso-from-a-virtualbox-vm-using-vboxmanage/</link>
      <pubDate>Sat, 22 Sep 2012 01:19:45 +0000</pubDate>
      <guid>/post/2012-09-22-ejecting-an-iso-from-a-virtualbox-vm-using-vboxmanage/</guid>
      <description>How to eject an ISO when you only have the command line (no GUI).</description>
    </item>
    <item>
      <title>Removing 10 minute screen timeout for Ubuntu Server</title>
      <link>/post/2012-08-15-removing-10-minute-screen-timeout-for-ubuntu-server/</link>
      <pubDate>Wed, 15 Aug 2012 01:59:47 +0000</pubDate>
      <guid>/post/2012-08-15-removing-10-minute-screen-timeout-for-ubuntu-server/</guid>
      <description>&lt;h1 id=&#34;the-problem&#34;&gt;The problem&lt;/h1&gt;&#xA;&lt;p&gt;My situation is that I run an Ubuntu Server for normal server-like tasks; web server, file server, etc. I decided to install XMBC on it so I could make it into a HTPC because after all, it already had all my media stored on it. Installing XMBC meant that I also had to install Xserver and along with that install, I scored some defaults for screen saver timeout and monitor timeout (all set to 10 minutes) and this really sucks when you&amp;rsquo;re watching a movie and even 10 minutes the display would turn off unless you gave some input (keyboard, mouse, remote). This guide will show how I fixed it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blacklisting a module on Ubuntu Server 11.10 Oneiric Ocelot</title>
      <link>/post/2012-05-21-blacklisting-a-module-on-ubuntu-server-11-10-oneiric-ocelot/</link>
      <pubDate>Mon, 21 May 2012 11:48:28 +0000</pubDate>
      <guid>/post/2012-05-21-blacklisting-a-module-on-ubuntu-server-11-10-oneiric-ocelot/</guid>
      <description>&lt;p&gt;This assumes you have vim (the command line text editor) installed. If not, you can use vi or any command line text editor in its place.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Change to the modprobe directory:&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd /etc/modprobe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;We need to create a new blacklist file to store our blacklistings in. If there are already other files in this directory, you can reuse one of them but for the sake of separating configuration you&amp;rsquo;ve made from the out-of-the-box setup, we&amp;rsquo;ll create a new file. you can name this file anything you want as long as it ends in a &lt;code&gt;.conf&lt;/code&gt; suffix and it would make sense to add blacklist and the type of device you&amp;rsquo;re blacking list to the name so it&amp;rsquo;s obvious what things live in there (as the module names might not give this information away). Note that you&amp;rsquo;ll need to be superuser or sudo and this command requires vim:&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo vim blacklist-&amp;lt;deviceType&amp;gt;.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;Add one blacklisting per line in the file using the format&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;blacklist &amp;lt;module&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;for example:&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;blacklist pcspkr&#xA;&lt;/code&gt;&lt;/pre&gt;If in doubt, have a look in the other blacklist files for examples.&lt;/li&gt;&#xA;&lt;li&gt;Save and exit the file&lt;/li&gt;&#xA;&lt;li&gt;Restart your machine&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Credit to: &lt;a href=&#34;&#34;&gt;http://ubuntuforums.org/showthread.php?t=1850267&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>XenServer 5.6.1 FP1: Mounting a guest VM&#39;s hard drive (VDI) on the host</title>
      <link>/post/2012-05-21-xenserver-5-6-1-fp1-mounting-a-guest-vms-hard-drive-vdi-on-the-host/</link>
      <pubDate>Mon, 21 May 2012 10:58:40 +0000</pubDate>
      <guid>/post/2012-05-21-xenserver-5-6-1-fp1-mounting-a-guest-vms-hard-drive-vdi-on-the-host/</guid>
      <description>&lt;h1 id=&#34;back-story&#34;&gt;Back story&lt;/h1&gt;&#xA;&lt;p&gt;This is a problem that I ran up against because I was running the host machine as a bare host and all the functionality that I needed was in the guest machine. The purpose of this was to insulate myself from changes in hardware and to be able to easily backup the entire server (the guest) so it could be restored from image. This meant that occasionally I&amp;rsquo;d need to access files on the guest machine&amp;rsquo;s &amp;ldquo;hard drive&amp;rdquo; but it wasn&amp;rsquo;t running so methods that require networking were out. The  solution is to mount the guest&amp;rsquo;s hard drive image on the host to access it like any other partition.&lt;/p&gt;</description>
    </item>
    <item>
      <title></title>
      <link>/archives/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/archives/</guid>
      <description></description>
    </item>
    <item>
      <title>About</title>
      <link>/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/about/</guid>
      <description>&lt;figure&gt;&lt;img src=&#34;/about/tom.png&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;I&amp;rsquo;ve been a professional software developer since the start of 2009 and I &lt;em&gt;love&lt;/em&gt;&#xA;my job. Honestly, if money wasn&amp;rsquo;t an issue then I&amp;rsquo;d be doing the same thing for&#xA;free. I love building things and learning so this is the perfect industry for&#xA;me.&lt;/p&gt;&#xA;&lt;p&gt;Early on I did a lot of Java webapps. These days I&amp;rsquo;m doing Vue.js based apps&#xA;that connect to whatever server we&amp;rsquo;re using for the job.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
