<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://neil.mckillop.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://neil.mckillop.org/feed.php">
        <title>neil.mckillop.org projects</title>
        <description></description>
        <link>https://neil.mckillop.org/</link>
        <image rdf:resource="https://neil.mckillop.org/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-16T22:30:49+0100</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/bon_accord_webcam?rev=1619963433&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/dynamic_photo_frame?rev=1578407140&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/gemini-php?rev=1605680762&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/gemini?rev=1601334426&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/gigacube?rev=1619708075&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/large_image_archives?rev=1578407465&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/load_logger?rev=1605680275&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/matrix_php_class?rev=1617825581&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/owncastmatrix?rev=1617826692&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/podcast_generator?rev=1682623473&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/speedtest?rev=1660681827&amp;do=diff"/>
                <rdf:li rdf:resource="https://neil.mckillop.org/projects/wifi_scanner?rev=1596467470&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://neil.mckillop.org/lib/tpl/dokuwiki/images/favicon.ico">
        <title>neil.mckillop.org</title>
        <link>https://neil.mckillop.org/</link>
        <url>https://neil.mckillop.org/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://neil.mckillop.org/projects/bon_accord_webcam?rev=1619963433&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-02T14:50:33+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:bon_accord_webcam</title>
        <link>https://neil.mckillop.org/projects/bon_accord_webcam?rev=1619963433&amp;do=diff</link>
        <description>Bon Accord Webcam

I set this up over lockdown (in the summer) to see how busy the beer garden was (and whether there was a table available) at a glance on my phone.  I wanted to just use what I had lying around.  If I could do this again (and I probably will) I think I'd make something with stepper motors (so I could return it to fixed positions).</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/dynamic_photo_frame?rev=1578407140&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-07T14:25:40+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:dynamic_photo_frame</title>
        <link>https://neil.mckillop.org/projects/dynamic_photo_frame?rev=1578407140&amp;do=diff</link>
        <description>Dynamic Photo Frame

I wanted to build a photoframe that changed what it displayed based on who was in the flat (i.e. if friends arrived, the pictures it showed would feature them - a bit like how the paintings changed in the movie Antitrust).

This project is currently on hold (until I decide on a decent photoframe platform), but the</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/gemini-php?rev=1605680762&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-18T06:26:02+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:gemini-php</title>
        <link>https://neil.mckillop.org/projects/gemini-php?rev=1605680762&amp;do=diff</link>
        <description>Gemini-PHP

I wanted to create a very simple server for the Gemini protocol - I'll be using it to teach socket programming.

See &lt;https://opensource.glasgow.social/gemini-php&gt; for more details.

The server has a home page on the geminisphere at &lt;gemini://glasgow.social/gemini-php&gt;

	*  View the source at https://coding.openguide.co.uk/gitweb/
	*  Download a tarball
	*  Or clone a copy using</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/gemini?rev=1601334426&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-29T00:07:06+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:gemini</title>
        <link>https://neil.mckillop.org/projects/gemini?rev=1601334426&amp;do=diff</link>
        <description>Gemini

Gemini is a new internet protocol which:

	*  is heavier than gopher
	*  is lighter than the web
	*  will not replace either
	*  strives for maximum power to weight ratio
	*  takes user privacy very seriously

You can read more about it here: &lt;https://gemini.circumlunar.space/&gt;

I've created a server implementation, see more details here</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/gigacube?rev=1619708075&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-29T15:54:35+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:gigacube</title>
        <link>https://neil.mckillop.org/projects/gigacube?rev=1619708075&amp;do=diff</link>
        <description>Monitoring: Huawei Vodafone 5G Gigacube

I wanted to get some bandwith statistics from my Gigacube.  After browsing around in the web interface I found an unauthenicated API that has most of what I need.


http://192.168.8.1/api/monitoring/traffic-statistics</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/large_image_archives?rev=1578407465&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-07T14:31:05+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:large_image_archives</title>
        <link>https://neil.mckillop.org/projects/large_image_archives?rev=1578407465&amp;do=diff</link>
        <description>Large Image Archives

Since around 2005 my mum has taken an average of 3,200 pictures a year.  That's after I removed all duplicate files.  I'm still deciding on what software to suggest she uses to manage her archive of around 43k photos.  In the meantime I wanted to generate some stats with the goal of making a simple interface for her to browse the backup I have of her archive (by date and maybe location).</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/load_logger?rev=1605680275&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-18T06:17:55+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:load_logger</title>
        <link>https://neil.mckillop.org/projects/load_logger?rev=1605680275&amp;do=diff</link>
        <description>Retired project.  This had it's uses for some of my more esoteric systems (that only had busybox for example) but I've sinced moved to an infrastructure that all supports collectd.

Load logger

A simple bash script to log the datetime and system load to a file every minute.  I wanted something that didn't rely on having any other programs installed (though it does rely on the /proc/ filesystem and some basic utilities like free, ps, awk, bc).</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/matrix_php_class?rev=1617825581&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-07T20:59:41+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:matrix_php_class</title>
        <link>https://neil.mckillop.org/projects/matrix_php_class?rev=1617825581&amp;do=diff</link>
        <description>Matrix PHP Class

See also: &lt;https://opensource.glasgow.social/projects/matrix_php_class&gt;


class matrix {

   function __construct() {
      $this-&gt;homeserver = &quot;glasgow.social&quot;;
      $this-&gt;access_token = &quot;ACCESS_TOKEN_HERE&quot;;
      // room lookups
      $this-&gt;rooms = array(      
                                 &quot;#room_name&quot;=&gt; &quot;!room_id:glasgow.social&quot;,
                           );
   }

   function post($msg, $room_name = &quot;#glasgow&quot;, $formatted_msg = null) {
      $msgtype = &quot;m.text&quot;;
    …</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/owncastmatrix?rev=1617826692&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-07T21:18:12+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:owncastmatrix</title>
        <link>https://neil.mckillop.org/projects/owncastmatrix?rev=1617826692&amp;do=diff</link>
        <description>Owncast/Matrix

How to link Matrix to Owncast and vice-versa.

Moved this to: &lt;https://opensource.glasgow.social/projects/matrix_owncast&gt;</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/podcast_generator?rev=1682623473&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-27T20:24:33+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:podcast_generator</title>
        <link>https://neil.mckillop.org/projects/podcast_generator?rev=1682623473&amp;do=diff</link>
        <description>Podcast generator

This projects allows you to turn a bunch of mp3s into an RSS feed formatted for the iPhone podcast app (it should work with any podcast app).

The steps are:

	*  Create a directory on your webserver for example (/var/www/html/mypodcasts/)</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/speedtest?rev=1660681827&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-08-16T21:30:27+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:speedtest</title>
        <link>https://neil.mckillop.org/projects/speedtest?rev=1660681827&amp;do=diff</link>
        <description>Projects: Speedtest

I'm testing out some new 5G antennas and after experimenting with a number of different ways to measure their performance I decided the most reliable and simplest way was just write a script that repeats a download every minute and then plot the results in a graph.  That allows me to average out any atmospheric interference (and more importantly average out all the other activity on my busy network).</description>
    </item>
    <item rdf:about="https://neil.mckillop.org/projects/wifi_scanner?rev=1596467470&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-03T16:11:10+0100</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>projects:wifi_scanner</title>
        <link>https://neil.mckillop.org/projects/wifi_scanner?rev=1596467470&amp;do=diff</link>
        <description>Wifi Scanner

Goals: Two goals for this project.  I wanted to detect who was in the flat at any given time (see my Dynamic photo frame project) and I also wanted to see if I could detect spikes of activity near by (like a protest walking past the building etc).

Data</description>
    </item>
</rdf:RDF>
