<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on ShrimpWorks</title><link>/tags/linux/</link><description>Recent content in Linux on ShrimpWorks</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Tue, 01 Sep 2020 00:00:00 +0000</lastBuildDate><atom:link href="/tags/linux/feed.xml" rel="self" type="application/rss+xml"/><item><title>Run Your Java Services with SystemD</title><link>/2020/09/01/run-your-java-services-with-systemd/</link><pubDate>Tue, 01 Sep 2020 00:00:00 +0000</pubDate><guid>/2020/09/01/run-your-java-services-with-systemd/</guid><description>&lt;p&gt;There&amp;rsquo;s a strong tendency to want to run everything in Docker these days,
especially if you&amp;rsquo;re trying to run something as an always-on service, since
passing &lt;code&gt;--restart=always&lt;/code&gt; to your &lt;code&gt;run&lt;/code&gt; invocation or Docker Compose
configuration ensures that running containers start back up after reboots or
failures, and seems to involve a little less &amp;ldquo;black magic&amp;rdquo; than actually
configuring software to run as services directly on a host.&lt;/p&gt;
&lt;p&gt;The downside to this is the approach is that running a service in a container
leads to significantly longer startup times, more memory and CPU overhead, lost
logs, and in my opinion offer a false sense of security and isolation since
most images are still configured to run as root, and more often than not large
swathes of the host filesystem are mounted as volumes to achieve simple tasks.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s also a belief that your software will magically run anywhere - but if
you&amp;rsquo;re writing Java (or any JVM language) code - that&amp;rsquo;s one of Java&amp;rsquo;s biggest
selling points - it already has its own VM your code is running in, no most
platforms!&lt;/p&gt;
&lt;p&gt;Therefore, let&amp;rsquo;s see how easy it actually is to configure our software to run
as a standard system service, providing us with the ability to run it as a
separate restricted user, complete with standard logging configuration, and
give us control over via standard &lt;code&gt;service myservice start|status|restart|stop&lt;/code&gt;
commands.&lt;/p&gt;</description></item><item><title>Running Unreal Tournament 99 on Linux (part 1)</title><link>/2018/02/03/running-unreal-tournament-99-on-linux-part-1/</link><pubDate>Sat, 03 Feb 2018 00:00:00 +0000</pubDate><guid>/2018/02/03/running-unreal-tournament-99-on-linux-part-1/</guid><description>&lt;img src="/2018/02/03/running-unreal-tournament-99-on-linux-part-1/ut-logo.png" class="image-right" /&gt;
 


&lt;p&gt;With all the talk of Unreal Tournament 4 possibly being cancelled one of these
days, due to Epic&amp;rsquo;s runaway success with Fortnite, I&amp;rsquo;ve decided there&amp;rsquo;s really
no reason to not be playing UT99.&lt;/p&gt;
&lt;p&gt;Thus, we set about trying to run it on modern hardware, with a modern Linux
installation.&lt;/p&gt;
&lt;p&gt;As much as this is about setting things up on Linux, it&amp;rsquo;s also partially my own
attempt at some knowledge preservation, as a lot of this stuff ends up being
forgotten or lost over time (it&amp;rsquo;s been almost 20 years! a lot of the old sites
and things you expect to find this info on simply do not exist anymore :()&lt;/p&gt;
&lt;p&gt;This is part one of two, and will focus on installing and running the game
using Wine.&lt;/p&gt;</description></item><item><title>User Directories and PHP with nginx</title><link>/2015/04/25/user-directories-and-php-with-nginx/</link><pubDate>Sat, 25 Apr 2015 08:53:16 +0000</pubDate><guid>/2015/04/25/user-directories-and-php-with-nginx/</guid><description>&lt;p&gt;I&amp;rsquo;ve become fond of using nginx on my development machines, rather than
a full Apache.&lt;/p&gt;
&lt;p&gt;There are no explicit options built-in which allow something along the
same lines as Apache&amp;rsquo;s &lt;code&gt;userdir&lt;/code&gt;, however it&amp;rsquo;s easy enough to tweak
the default configuration to support that behaviour without the need for
external modules.&lt;/p&gt;
&lt;p&gt;I also do some PHP dabbling from time to time, so need to enable that as
well.&lt;/p&gt;
&lt;p&gt;Install the required bits:&lt;/p&gt;</description></item><item><title>Simple photo enhancements with GIMP</title><link>/2014/10/12/simple-photo-enhancements-with-gimp/</link><pubDate>Sun, 12 Oct 2014 22:04:21 +0000</pubDate><guid>/2014/10/12/simple-photo-enhancements-with-gimp/</guid><description>&lt;p&gt;So, being stuck without access to Photoshop and my regular Windows PC
has taught me a little about &lt;a href="http://gimp.org/"&gt;GIMP&lt;/a&gt; &amp;ndash; basically it&amp;rsquo;s
exactly the same as Photoshop with a less slick UI :D.&lt;/p&gt;
&lt;p&gt;Also, since I haven&amp;rsquo;t really written anything tutorial-ish in many many
years, so this is as much about brushing up on those skills as anything
else.&lt;/p&gt;
&lt;p&gt;This is a guide for quick and simple photo enhancement using GIMP.&lt;/p&gt;</description></item><item><title>Broken Apper on Debian Unstable/Sid</title><link>/2013/09/14/broken-apper-on-debian-unstable/sid/</link><pubDate>Sat, 14 Sep 2013 12:08:42 +0000</pubDate><guid>/2013/09/14/broken-apper-on-debian-unstable/sid/</guid><description>&lt;p&gt;All of my Debian desktop installs running KDE received an update a month
or two ago which rendered the &amp;ldquo;Apper&amp;rdquo; package management application
broken, failing with the following error:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Unable to open database read-only: Database action 'prepare dependency insert 
statement' failed: table dependencies has no column named items_installed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The solution is to delete the Listaller cache DB:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rm -r /var/lib/listaller/db/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The cache will be recreated automatically with the expected structure on
the next run of Apper (or other PackageKit type thing).&lt;/p&gt;</description></item><item><title>Check your email through Telnet</title><link>/2005/05/30/check-your-email-through-telnet/</link><pubDate>Mon, 30 May 2005 20:42:23 +0000</pubDate><guid>/2005/05/30/check-your-email-through-telnet/</guid><description>&lt;p&gt;Ok so this is a little trick I picked up a few years ago when I
developed the first version of ECheck and I started learning the POP3
protocol. It&amp;rsquo;s come in very handy when I&amp;rsquo;m away from my email client and
don&amp;rsquo;t want to receive email anywhere and fragment my mailbox by
spreading it across a few machines.&lt;/p&gt;
&lt;p&gt;Firstly, this&amp;rsquo;ll work on both Linux and Windows systems, with no extra
software needed (assuming most Linux distros come with a Telnet client
by default).&lt;/p&gt;</description></item><item><title>Change your console resolution and colour depth</title><link>/2005/01/31/change-your-console-resolution-and-colour-depth/</link><pubDate>Mon, 31 Jan 2005 20:22:42 +0000</pubDate><guid>/2005/01/31/change-your-console-resolution-and-colour-depth/</guid><description>&lt;p&gt;OK so not much is going on&amp;hellip; Thought I might as well pass along some
general knowledge.&lt;/p&gt;
&lt;p&gt;Changing the resolution of a Linux console is a fairly simple task (and
requires a reboot) and is generally a nice thing to do if you intend
using the console a lot.&lt;/p&gt;
&lt;p&gt;Start off by logging in as root, and open your Grub menu file (mine is
in /boot/grub/menu.lst). Next, find the option that would normally boot
your Linux system (probably looks something like the following):&lt;/p&gt;</description></item></channel></rss>