<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>The Stocks Family</title>
  <subtitle>The website of Brenda, Campbell &amp; Richard.</subtitle>
  <link href="https://stocksfamily.org/feed.xml" rel="self"/>
  <link href="https://stocksfamily.org/"/>
  <updated>2026-10-11T00:00:00Z</updated>
  <id>https://stocksfamily.org/</id>
  <author>
    <name>Richard Stocks</name>
  </author>
  
  <entry>
    <title>Getting even nerdier</title>
    <link href="https://stocksfamily.org/2026/getting-even-nerdier/"/>
    <updated>2026-10-11T00:00:00Z</updated>
    <id>https://stocksfamily.org/2026/getting-even-nerdier/</id>
    <content type="html">&lt;p&gt;While continuing on my journey of moving services away from providers with a right-wing philosophy, I hit upon the realisation that I might have been doing things all wrong...&lt;/p&gt;
&lt;p&gt;When moving virtual servers away from Digital Ocean, I ended up relocating to &lt;a href=&quot;https://stocksfamily.org/www.mythic-beasts.com&quot;&gt;Mythic Beasts&lt;/a&gt;. I dropped from two servers to one, and rather then running my own web server for static hosting I opted to use the Mythic Beasts web hosting service.&lt;/p&gt;
&lt;p&gt;Now, there is nothing wrong with Mythic Beasts. Both their web hosting and their virtual servers are perfectly fine. If you want someone simple to stick your files, check them out.&lt;/p&gt;
&lt;p&gt;But I&#39;m a nerd, and I&#39;m prepared to go to crazy lengths to get something that ticks my nerd boxes. And that is what led me to discover &lt;a href=&quot;https://bunny.net/&quot;&gt;Bunny&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Similar to Cloudflare, which I&#39;m running away from, Bunny is primarily a content distribution network - but the way they&#39;ve built it allows you to create a hosted storage pool (with geographic replication for fault tolerance), and then map it to one or more hostnames that are then served from their global network.&lt;/p&gt;
&lt;p&gt;And yes, there is an API, so I&#39;ve been able to update my site build and deploy script to upload any new or changed files to Bunny (which automatically replicates globally) and then clears the CDN cache so visitors will get the latest content.&lt;/p&gt;
&lt;p&gt;The cost? Literally a few cents a month.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Making salami</title>
    <link href="https://stocksfamily.org/2026/making-salami/"/>
    <updated>2026-07-26T00:00:00Z</updated>
    <id>https://stocksfamily.org/2026/making-salami/</id>
    <content type="html">&lt;p&gt;Bren and I went to a salami making class this morning! Now we have to wait four weeks or so for our salami to mature before we find out if it’s any good or not.&lt;/p&gt;
&lt;p&gt;I may need to invest in a sausage maker…&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Site configs and nerding out</title>
    <link href="https://stocksfamily.org/2026/site-configs-and-nerding-out/"/>
    <updated>2026-07-25T00:00:00Z</updated>
    <id>https://stocksfamily.org/2026/site-configs-and-nerding-out/</id>
    <content type="html">&lt;p&gt;This site is powered by Caddy, which is an amazing web server. Secure by default, lightweight, high performance - all the things that other servers like Apache are not.&lt;/p&gt;
&lt;p&gt;And right now I’m feeling very proud of myself because I did the reasonably obvious thing of splitting out the config file from a single monolith to break out “snippets” and “sites”.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Snippets: small bits of config that I reuse over and over&lt;/li&gt;
&lt;li&gt;Sites: individual files for individual virtual servers&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;My main config file is now just a couple of lines:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import snippets/*.caddy
import sites/*.caddy
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Snippets&lt;/h2&gt;
&lt;p&gt;Some bits of config are repeated in most or all sites. Rather than repeat it, I use a snippet to break it into a reusable block, like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(logging) {
        log {
                format json {
                        time_format iso8601
                }
                output file /var/log/caddy/{args[0]}.log
        }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This creates a snippet called &lt;code&gt;logging&lt;/code&gt;, which I can then use in a site definition in a single line, rather than duplicating everything. The &lt;code&gt;{args[0]}&lt;/code&gt; part means I can pass the filename I want as a parameter.&lt;/p&gt;
&lt;h2&gt;Sites&lt;/h2&gt;
&lt;p&gt;Each virtual site is now configured by simply adding a new file into the sites directory. For example, &lt;code&gt;stocksfamily.org.caddy&lt;/code&gt;. The filename doesn’t matter, but obviously it’s easier to manage if you use sensible names!&lt;/p&gt;
&lt;p&gt;A site config looks something like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;stocksfamily.org www.stocksfamily.org {
        import logging www.stocksfamily.org
        import robots
        import clacks
        root * /home/caddy/sites/stocksfamily.org
        file_server
        encode gzip zstd
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Note the three &lt;code&gt;import&lt;/code&gt; lines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;logging&lt;/code&gt;: write a log file for activity on this server to /var/log/caddy/www.stocksfamily.org.log (see the log snippet above).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;robots&lt;/code&gt;: Responds to requests for &lt;code&gt;/robots.txt&lt;/code&gt; without having to actually create the file. I have the same requirements on most sites, so this saves a bunch of duplicate boilerplate.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;clacks&lt;/code&gt;: Adds an &lt;code&gt;X-Clacks-Overhead&lt;/code&gt; &lt;a href=&quot;https://xclacksoverhead.org/&quot;&gt;header&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, this avoids repeating a lot of configuration. But I didn’t stop there…&lt;/p&gt;
&lt;p&gt;I’ve also put all of those files under version control, so I can get history and rollback. But even geekier, I’ve added a devops pipeline, so that I can auto-deploy new config files directly from the source repository.&lt;/p&gt;
&lt;p&gt;Where that gets a little trickier is making those changes live: Caddy is pretty good in this regard, the &lt;code&gt;caddy reload&lt;/code&gt; command will perform a zero downtime refresh of the config. The wrinkle here is that command needs to be issued on the actual host. My Forgejo server and my web server are different hosts, and the continuous integration tasks run inside a Docker container. What to do?&lt;/p&gt;
&lt;p&gt;Another nice thing about Caddy is that it ships with an admin API by default. I did have to modify the config to bind to a private network address (by default the API binds to localhost), but now the CI runner is able to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy the config files to the web server (keep a local copy in case of server restarts, etc, so it’s always in sync)&lt;/li&gt;
&lt;li&gt;Generate a new JSON version of the config&lt;/li&gt;
&lt;li&gt;Upload that new config via the admin API&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bingo, instant reload with the updated config, without actually touching the server at all!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Garage door, Shelly 1 and CarPlay</title>
    <link href="https://stocksfamily.org/2026/garage-door-shelly-1-and-carplay/"/>
    <updated>2026-07-21T00:00:00Z</updated>
    <id>https://stocksfamily.org/2026/garage-door-shelly-1-and-carplay/</id>
    <content type="html">&lt;p&gt;There is plenty of documentation around about how to wire up a Shelly 1 relay module to automate a garage door. It’s conceptually simple: the relay is wired in to the manual door open button.&lt;/p&gt;
&lt;p&gt;The Gen 4 modules from Shelly also support Matter, which means they can be adopted straight into HomeKit. Awesome!&lt;/p&gt;
&lt;p&gt;Except…&lt;/p&gt;
&lt;p&gt;Despite being able to configure what the Shelly is used for (you can define the “appliance type” to be lighting, entertainment, heating and cooling - there’s a whole bunch of them, including “garage door”), this doesn’t actually change how it identifies itself over Matter. It always shows up as a switch.&lt;/p&gt;
&lt;p&gt;In the Apple ecosystem, HomeKit allows it to be displayed within the Home app as an outlet, a light or a fan. This is all functional, but is missing some key functionality:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A garage door will change its icon to show if it is open or closed. States for a switch are on or off, which kind of works but not really.&lt;/li&gt;
&lt;li&gt;A garage door will automatically appear on a CarPlay dashboard as you approach your house, so you can open it with a quick tap.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Don’t get me wrong, missing these is absolutely a first world problem. However, I live in the first world, and I want my CarPlay icon.&lt;/p&gt;
&lt;p&gt;For reasons, I also have a Home Assistant installation. I was pretty sure I’d be able to use a “helper” entitiy to change the switch into something else (like, a garage door!), but alas: I could only get a cover (which HomeKit thinks is a curtain or blind) or a lock. Close - would show me the open/closed state (kind of), but still wouldn’t show on CarPlay.&lt;/p&gt;
&lt;p&gt;It turns out that Home Assistant actually did provide the solution, but I had to do some manual config work rather than rely on the GUI. I added this to my configuration.yaml:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-yaml&quot;&gt;# Define the virtual state helper
input_boolean:
  garage_door_open:
    name: Garage Door State
    initial: false

# The template cover configuration
template:
  - cover:
      - name: &amp;quot;Garage Door&amp;quot;
        unique_id: garage_door_cover
        device_class: garage
        state: &amp;gt;-
          {% if is_state(&#39;input_boolean.garage_door_open&#39;, &#39;on&#39;) %}
            open
          {% else %}
            closed
          {% endif %}
        open_cover:
          - action: switch.turn_on
            target:
              entity_id: switch.id.goes.here
          - action: input_boolean.turn_on
            target:
              entity_id: input_boolean.garage_door_open
        close_cover:
          - action: switch.turn_on
            target:
              entity_id: switch.id.goes.here
          - action: input_boolean.turn_off
            target:
              entity_id: input_boolean.garage_door_open
        icon: &amp;gt;-
          {% if is_state(&#39;input_boolean.garage_door_open&#39;, &#39;on&#39;) %}
            mdi:garage-open
          {% else %}
            mdi:garage-variant
          {% endif %}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I’m just testing this setup, so I don’t have the I/O module and reed sensor installed on the Shelly, so it doesn’t have any way to report if the door is open or closed. I’m faking it by using an internal variable to hold the door state - that’s what the boolean value for &lt;code&gt;Garage Door State&lt;/code&gt; is for. No, it’s not ideal, and yes it could potentially get out of sync, but for now it’s good enough.&lt;/p&gt;
&lt;p&gt;The real work is in the next section. Basically, what it does is specific type of cover (i.e. a garage door), uses the variable to report the state, and then ties the open and close actions to turning on the relay. The Shelly relay is configured to turn itself off after half a second, to simulate a button being pressed, so the action for both open and close is to turn it on.&lt;/p&gt;
&lt;p&gt;It then also applies a custom icon so that in the Home Assistant dashboards it will show the open/closed state on the icon.&lt;/p&gt;
&lt;p&gt;Then it’s a simple task to add the new “cover” to a HomeKit bridge, and bingo! It magically appeared in HomeKit as a garage door.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>New site</title>
    <link href="https://stocksfamily.org/2026/new-site/"/>
    <updated>2026-05-24T00:00:00Z</updated>
    <id>https://stocksfamily.org/2026/new-site/</id>
    <content type="html">&lt;p&gt;You might be looking at this post and thinking &amp;quot;What, again?&amp;quot; And that would be a fair question. The answer, of course, is &amp;quot;yes&amp;quot;.&lt;/p&gt;
&lt;p&gt;Why?&lt;/p&gt;
&lt;p&gt;That&#39;s a simple question, with a long answer. I&#39;m going to give that answer - mainly because I need a bunch of content to test the site with!&lt;/p&gt;
&lt;p&gt;In the beginning, there was hand-crafted HTML. And that was fine, because I am a nerd, and we nerds love doing that kind of thing. I think I even had a couple of the little standard-of-the-day sized &lt;a href=&quot;https://web.badges.world/&quot;&gt;buttons&lt;/a&gt; that read &amp;quot;Made with Notepad&amp;quot; and &amp;quot;Best viewed in a web browser&amp;quot;. Yes, I am that guy.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://anlucas.neocities.org/built_with_microsoft_notepad.gif&quot; alt=&quot;Made with Notepad&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://capstasher.neocities.org/88x31Buttons/any.gif&quot; alt=&quot;Best viewed with any browser&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Anyway, over time it became too much like hard work to write pages by hand and upload them all the time, and things like Wordpress (not linking for moral reasons) had started to exist so I played with a few of them. Now it was all about dynamic sites, using server-side scripting languages like &lt;a href=&quot;https://www.php.net/&quot;&gt;PHP&lt;/a&gt; and databases like &lt;a href=&quot;https://www.mysql.com/&quot;&gt;MySQL&lt;/a&gt; with an &lt;a href=&quot;https://projects.apache.org/project.html?httpd-http_server&quot;&gt;Apache&lt;/a&gt; front end. Cool.&lt;/p&gt;
&lt;p&gt;Time passes, and things change. Wordpress (both the core platform and millions of plugins) are full of exploitable &lt;a href=&quot;https://attackerkb.com/search?q=wordpress&quot;&gt;vulnerabilities&lt;/a&gt; (to be fair, Wordpress itself is fairly solid these days). Apache still makes up a huge chunk of the internet, but newer server platforms like &lt;a href=&quot;https://caddyserver.com/&quot;&gt;Caddy&lt;/a&gt; are smaller, faster, more flexible and secure by default.&lt;/p&gt;
&lt;p&gt;The tipping point for me came when the founder of Wordpress started &lt;a href=&quot;https://www.sitelock.com/blog/automattic-vs-wpengine/&quot;&gt;behaving like a complete tool&lt;/a&gt;. To each their own, but for me I didn&#39;t want to be relying on software being controlled by this guy. That coupled with the ongoing effort required to keep a server secure made me change direction to the new-fangled things known as &lt;a href=&quot;https://en.wikipedia.org/wiki/Static_site_generator&quot;&gt;static site generators&lt;/a&gt;, or SSGs.&lt;/p&gt;
&lt;p&gt;On the surface, this all seemed great: export my existing content from the Wordpress back-end database, do some messing around and feed a bunch of files into an SSG. Upload the output to a web server, and done. No active content, no server side processing, just fast delivery of HTML to a client. However, I quickly ran into some stumbling blocks...&lt;/p&gt;
&lt;p&gt;The big one is my own knowledge, or lack thereof. SSGs were typically based on Go, or Ruby, or JavaScript. I&#39;ve never had any real exposure to these languages, so every time I tried to get one working the way I wanted to I was constantly fighting my lack of experience. I&#39;d typically also need to install the relevant toolchain, which in some cases I didn&#39;t really want to do. I don&#39;t want to install Node, and pull random packages I don&#39;t understand from a package repo.&lt;/p&gt;
&lt;p&gt;I did look at a couple of SSGs that were more my jam. Paul Hudson of &lt;a href=&quot;https://hackingwithswift.com/&quot;&gt;Hacking With Swift&lt;/a&gt; released &lt;a href=&quot;https://github.com/twostraws/Ignite&quot;&gt;Ignite&lt;/a&gt;, an SSG built in Swift. I already use Swift for developing for macOS and iOS. I already have the toolchain installed. Seemed like an obvious solution! Ultimately, there were just a couple of little niggles that I couldn&#39;t get get past. I also looked at &lt;a href=&quot;https://raptor.build/&quot;&gt;Raptor&lt;/a&gt;, which is an evolution of Ignite, which has some different little niggles. Both are great, just didn&#39;t quite do it for me.&lt;/p&gt;
&lt;p&gt;At some point, can&#39;t remember when, I discovered &lt;a href=&quot;https://sql-page.com/&quot;&gt;SQLPage&lt;/a&gt;. Rather than writing HTML, you can build a web site purely from SQL queries. Yes, this meant going back to server side processing, but I could minimise the attack surface through careful infrastructure design, and by literally not having any internet-facing code that could modify content or execute random code or queries. It&#39;s super cool.&lt;/p&gt;
&lt;p&gt;The obvious flaw here: I&#39;m a hack when it comes to SQL! Traditionally this has been a bit of a barrier to me doing anything complex, but hell, it&#39;s 2026 and Claude is really good at reading the docs and writing SQL code for me. I spent a bunch of time working on some really cool things, like caching all my &lt;a href=&quot;https://smugmug.com/&quot;&gt;SmugMug&lt;/a&gt; albums to show them in-page - means photos are served from SmugMug&#39;s content network, and not my little baby server.&lt;/p&gt;
&lt;p&gt;After all that, though, I&#39;ve got back to a traditional SSG. &lt;a href=&quot;https://11ty.dev/&quot;&gt;Eleventy&lt;/a&gt; isn&#39;t too bad to deal with once you get the hang on it, without a massive overheard of learning JavaScript. Templating is pretty standardised using Nunjucks. I&#39;m a hack when it comes to styling and CSS, but I&#39;ve managed to cobble together something that I think looks okay.&lt;/p&gt;
&lt;p&gt;Now it&#39;s just converting all the old content...&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>From the air</title>
    <link href="https://stocksfamily.org/2024/from-the-air/"/>
    <updated>2024-02-16T00:00:00Z</updated>
    <id>https://stocksfamily.org/2024/from-the-air/</id>
    <content type="html">&lt;p&gt;I finally got around to setting up a programmed flight path for the drone, so I can record the same thing at different times. I was initially thinking of different times of the year, but ended up taking one in the evening around twilight with some smoke haze from distant bushfires, and then one the next morning when it was quite clear. The difference in what can be seen is actually quite amazing!&lt;/p&gt;
&lt;p&gt;The first clip is the evening flight. Because there is no direct sun, the colours are more muted, but without the stark contrasts of the shaded areas you can actually see a lot more detail.&lt;/p&gt;
&lt;p&gt;The second video is the following morning, which was clear skies and bright sun. The trees are much more vivid, but the areas of shadow create a massive contrast.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Crazy weather and floods</title>
    <link href="https://stocksfamily.org/2024/crazy-weather-and-floods/"/>
    <updated>2024-01-09T00:00:00Z</updated>
    <id>https://stocksfamily.org/2024/crazy-weather-and-floods/</id>
    <content type="html">&lt;p&gt;Well, it’s been an interesting couple of days.&lt;/p&gt;
&lt;p&gt;It was a damp start to summer. We recorded 72.85mm of rain through December, although most of that was on Christmas Eve (17.30mm), Christmas Day (40.21mm) and Boxing Day (4.80mm). Even with that amount, it wasn’t really much of a big deal, and the water ran off and soaked away quite quickly really.&lt;/p&gt;
&lt;p&gt;A couple of weeks later, and the storms were back with a vengeance. January 7 gifted us with 60.50mm. As I started to write this, mid afternoon on January 8, we’re at 56.31mm since midnight – but fingers crossed it appears to be slowly clearing up.&lt;/p&gt;
&lt;p&gt;This time, however, things were a little different. The ground was already soaked from the previous downpours. Dams and tanks were already full. Waterways were already flowing. There wasn’t anywhere for the water to go.&lt;/p&gt;
&lt;p&gt;The dam on the property behind us overflowed, and due to a serious oversight on their part the excess water didn’t go into the creek, but instead flowed down behind our water tanks. We’ll need to assess any issues there, potentially the crusher dust supporting the tanks may have been partially washed away.&lt;/p&gt;
&lt;p&gt;Our two creek crossings were both under water, with considerable erosion on both. One is drivable if you’re careful, the other really not. We managed to get one car across by recovering a stack of rocks from the creek bed and shoring up the sides long enough to sneak over.&lt;/p&gt;
&lt;p&gt;The one good thing is when we get an event like this, the water usually recedes fairly quickly once the rain stops. By early afternoon on Monday, the water was low enough that we could assess the damage.&lt;/p&gt;
&lt;p&gt;One crossing, nearest the house, was just drivable, if you were careful. The other one, not a chance. Just too much of the road had been washed away.&lt;/p&gt;
&lt;p&gt;At this point we were literally trapped on the property. Okay, yes, it was possible to walk to the front gate, but from there it’s a pretty long trek to civilization!&lt;/p&gt;
&lt;p&gt;Thankfully, we were able to enlist the help of our local earth-moving folks, who came in today and restored access!&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Echidnas</title>
    <link href="https://stocksfamily.org/2023/echidnas/"/>
    <updated>2023-09-06T00:00:00Z</updated>
    <id>https://stocksfamily.org/2023/echidnas/</id>
    <content type="html">&lt;p&gt;I love when these critters come to visit. And eat the ants.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Old slides</title>
    <link href="https://stocksfamily.org/2023/old-slides/"/>
    <updated>2023-03-05T00:00:00Z</updated>
    <id>https://stocksfamily.org/2023/old-slides/</id>
    <content type="html">&lt;p&gt;In the stuff I got from dad was a couple of shoeboxes of old slides. The obvious thing to do was to start scanning them.&lt;/p&gt;
&lt;p&gt;Here are the boxes I’ve scanned so far…&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Phalaris</title>
    <link href="https://stocksfamily.org/2021/phalaris/"/>
    <updated>2021-06-19T00:00:00Z</updated>
    <id>https://stocksfamily.org/2021/phalaris/</id>
    <content type="html">&lt;p&gt;A sad day on the estate today: while out exploring, Bren came across a lone kangaroo sitting down by the creek. Startled, she tried to hop away, but fell and struggled to get to her feet. She managed to drag itself under some fallen branches to hide.&lt;/p&gt;
&lt;p&gt;Having no idea what was going on (was she injured?) I put a call in to Wildlife Victoria and described what had happened. &amp;quot;Sounds like Phalaris toxicity,&amp;quot; came the immediate response. If, like us, you&#39;ve never heard of this, check out this article on &lt;a href=&quot;https://en.wikipedia.org/wiki/Phalaris_(plant)&quot;&gt;Wikipedia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unfortunately, there is no cure for Phalaris poisoning. Afflicted animals will gradually lose any ability to move or even feed themselves, and will either die from starvation or be easy prey for other animals. It was sad, but the best thing was to end her suffering and have the poor thing euthanised.&lt;/p&gt;
&lt;p&gt;Welcome to the country.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Methlab Estate Flyover</title>
    <link href="https://stocksfamily.org/2021/methlab-estate-flyover/"/>
    <updated>2021-06-12T23:54:45Z</updated>
    <id>https://stocksfamily.org/2021/methlab-estate-flyover/</id>
    <content type="html">&lt;p&gt;What better way to check out a new property than from the air?&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Instagram</title>
    <link href="https://stocksfamily.org/2020/instagram/"/>
    <updated>2020-09-30T00:00:00Z</updated>
    <id>https://stocksfamily.org/2020/instagram/</id>
    <content type="html">&lt;p&gt;Decided that Zuckerberg and everyone else at Meta can fuck right off, so downloaded all my photos from Instagram. Here they are, collected for your viewing pleasure.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Tyabb Airshow</title>
    <link href="https://stocksfamily.org/2020/tyabb-airshow/"/>
    <updated>2020-03-08T00:00:00Z</updated>
    <id>https://stocksfamily.org/2020/tyabb-airshow/</id>
    <content type="html">&lt;p&gt;Watching the &lt;a href=&quot;https://tyabbairshow.com/&quot;&gt;Tyabb Airshow&lt;/a&gt; from Pete’s back yard, overlooking the airport.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Gears Ink</title>
    <link href="https://stocksfamily.org/2019/gears-ink/"/>
    <updated>2019-09-05T00:00:00Z</updated>
    <id>https://stocksfamily.org/2019/gears-ink/</id>
    <content type="html">&lt;p&gt;To celebrate the launch of Gears 5, Microsoft hosted a party in Melbourne. A few lucky (?) folks got free Gears of War tattoos.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>New Orleans</title>
    <link href="https://stocksfamily.org/2018/new-orleans/"/>
    <updated>2018-05-11T00:00:00Z</updated>
    <id>https://stocksfamily.org/2018/new-orleans/</id>
    <content type="html"></content>
  </entry>
  
  <entry>
    <title>Universal Studios</title>
    <link href="https://stocksfamily.org/2018/universal-studios/"/>
    <updated>2018-04-28T00:00:00Z</updated>
    <id>https://stocksfamily.org/2018/universal-studios/</id>
    <content type="html"></content>
  </entry>
  
  <entry>
    <title>Salton Sea</title>
    <link href="https://stocksfamily.org/2018/salton-sea/"/>
    <updated>2018-04-26T00:00:00Z</updated>
    <id>https://stocksfamily.org/2018/salton-sea/</id>
    <content type="html"></content>
  </entry>
  
  <entry>
    <title>Joshua Tree</title>
    <link href="https://stocksfamily.org/2018/joshua-tree/"/>
    <updated>2018-04-26T00:00:00Z</updated>
    <id>https://stocksfamily.org/2018/joshua-tree/</id>
    <content type="html"></content>
  </entry>
  
  <entry>
    <title>Palm Springs</title>
    <link href="https://stocksfamily.org/2018/palm-springs/"/>
    <updated>2018-04-24T00:00:00Z</updated>
    <id>https://stocksfamily.org/2018/palm-springs/</id>
    <content type="html"></content>
  </entry>
  
  <entry>
    <title>Warburton</title>
    <link href="https://stocksfamily.org/2018/warburton/"/>
    <updated>2018-04-01T00:00:00Z</updated>
    <id>https://stocksfamily.org/2018/warburton/</id>
    <content type="html"></content>
  </entry>
  
</feed>
