Add draft pages

This commit is contained in:
Tom 2025-01-11 19:35:42 +00:00
parent 7626386952
commit 859d68b059
34 changed files with 624 additions and 9 deletions

10
.autoreload.json Normal file
View File

@ -0,0 +1,10 @@
{
"watch": true,
"reload": "**/**.{html,js,css}",
"mount": [
{
"path": "test_pages/",
"target": "/"
}
]
}

View File

@ -2,7 +2,7 @@
<header class = "h-card">
<div class = "profile-pic-name">
<img src="/assets/images/avatar.jpeg" class = "u-photo avatar" alt = "A picture of me." height="175" width="175">
<a class="p-name u-url u-uid" href="https://thomashodson.com"><h1>Tom Hodson</h1></a>
<a class="p-name u-url u-uid" href="{{ site.url }}"><h1>Tom Hodson</h1></a>
</div>
<p class="p-note bio">
<span>Maker, Baker</span>

View File

@ -2,7 +2,7 @@
{% capture posttime %}{{post.date | date: '%s'}}{% endcapture %}
{% if post.path contains '_drafts' or posttime > nowunix %}
{% if post.draft or post.path contains '_drafts' or posttime > nowunix %}
{% assign is_draft = true %}
{% else %}
{% assign is_draft = false %}

View File

@ -0,0 +1,75 @@
---
title: Sentinel Cloudless
layout: post
excerpt: Looking at the earth through the eyes of satellites.
image:
thumbnail: /assets/blog/maps/qgis/thumbnail.jpg
assets: /assets/blog/
alt:
head: |
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
crossorigin=""/>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"
integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="
crossorigin=""></script>
<script src="/assets/js/leaflet.wmts.browser.min.js"></script>
<link rel='stylesheet' href='https://unpkg.com/maplibre-gl@4.7.1/dist/maplibre-gl.css' />
<script src='https://unpkg.com/maplibre-gl@4.7.1/dist/maplibre-gl.js'></script>
draft: true
---
{{ jekyll.environment }}
<style>
.leaflet-container {
height: 400px;
width: 600px;
max-width: 100%;
max-height: 100%;
}
</style>
<div id="map"></div>
<script>
const map = L.map('map').setView([51.505, -0.09], 13);
const tiles = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 19,
attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
}).addTo(map);
const map_layers = {
"Strava Heatmap" : L.tileLayer("http://localhost:8090/strava_blue/{z}/{x}/{y}.png",
{
maxZoom: 15,
}),
"Sentinel Cloudless" : L.tileLayer("http://localhost:8091/{z}/{x}/{y}.png",
{
maxZoom: 15,
})
}
let layerControl = L.control.layers(map_layers).addTo(map);
</script>
<div id="map2"></div>
<script>
const map2 = new maplibregl.Map({
container: 'map2',
zoom: 9,
center: [137.9150899566626, 36.25956997955441],
style:
'https://api.maptiler.com/maps/hybrid/style.json?key=get_your_own_OpIi9ZULNHzrESv6T2vL'
});
</script>

View File

@ -0,0 +1,165 @@
---
title: 2024 Roundup
layout: post
excerpt: Wherein I look back at what I got up to in 2024, mostly for my own benefit.
images: /assets/images/2024
thumbnail: /assets/images/2024/2024.svg
social_image: /assets/images/2024/2024.png
assets:
alt:
image_class: invertable
draft: true
---
## January
The first big project of the year was repainting this ladder up to our mezzanine bed. This ended up being so much more work than we expected, they say it's all in the surface prep and the surface prep here took ages with all the awkward corners.
There was one aspect that was fun with this which was that I made non-slip pads on the rungs by mixing the gloss paint with sand and painting over masked rectangle.
<figure class="two-wide">
<img src="{{page.images}}/ladder/late_into_the_night.jpeg">
<img src="{{page.images}}/ladder/finished.jpeg">
</figure>
Two disappointments here which only cemented my long standing hatred of gloss paint, first despite our fastidiousness we still got too big drips! And second the nice non slip sections I made mostly worked except those sections took more than a week to fully harden and we ended up tearing it up a bit when we used it a bit too early. Repainting a ladder that you rely on to get to bed is really inconvenient!
I was actively learning to drive at this point so did a road trip with my dad and brother to Dungeness to get some more driving experience. Driving trip to Dungeness with my dad and brother.
<figure class="two-wide">
<img src="{{page.images}}/dungeness.jpeg">
<img src="{{page.images}}/ceramics/frilly_plate_unglazed.jpeg">
</figure>
I also started on my frilly ceramic plate in Jan, a piece I really like using in our kitchen!
Late 2023 I got myself a steam deck and had a bit of a renaissance in gaming. I had previously had a switch but was mostly looking to player older games held in high regard and felt limited by the switches limited catalogue.
Particularly because I try not to fly these days I've spent many a train journey enjoying a good game this year. [My steam replay][https://s.team/y24/wgnfpvc] has helped me a lot here to remember what I has up to!
My first steam deck game was Dave the Diver which I played Jan and Feb. What a relaxing game, much longer and richer than I expected picking it up. Would highly recommend.
## February
Feb brought a little project adding a better dust collector to the workshop chopsaw.
<figure class="multiple">
<img src="{{page.images}}/chop_saw_dust_collector/print_preview.jpeg">
<img src="{{page.images}}/chop_saw_dust_collector/printing.jpeg">
<img src="{{page.images}}/chop_saw_dust_collector/installed.jpeg">
</figure>
I also went on a work trip to Turin, with a stopover in Munich to visit friends Ping pong, protests, parties.
<figure>
<img src="{{page.images}}/train_view.jpeg">
<figcaption>Crossing the alps by train provided some good views and also some good gaming time on my then new Steam Deck.</figcaption>
</figure>
## March
My partner organised my first 'big' birthday party, we booked out an entire Chinese restaurant in London and had a lovely evening with all our friends. For reason we did this for my 29th. Definitely want to do that again.
I also did a bit of PSU case prototyping and lasercut an organiser which has turned out to be incredibly useful, I'll be making more of these.
<figure class="multiple">
<img src="{{page.images}}/lasercutting/boxes.jpeg">
<img src="{{page.images}}/usbc_psu/case_proto_1.jpeg">
<img src="{{page.images}}/usbc_psu/case_proto_2.jpeg">
<img src="{{page.images}}/usbc_psu/case_proto_3.jpeg">
</figure>
## April
Passed my driving test! Paris trip to sort out some family stuff. Catalonia night at RARA.
<figure>
<img src="{{page.images}}/driving_license.jpeg">
<figcaption>Passed my driving test first time!</figcaption>
</figure>
Some nice ceramics out of the kiln.
This month I played the Outer Wilds Echoes of the Eye DLC. An excellent dlc to one of the best games of our generation!
## May
<figure>
<img src="{{page.images}}/logos.jpeg">
<figcaption>Played around with some logo designs that I could stamp into ceramics.</figcaption>
</figure>
In May, I spent a couple weeks in the Spanish countryside with friends, got to spend a day with a professional ceramicist. Managed to miss my train from Paris to Barcelona by being far too complacent but ended up having a lovely evening in Paris and they let us take the train the next day.
<figure class="multiple">
<img src="{{page.images}}/xiva/breakfast.jpeg">
<img src="{{page.images}}/xiva/brotzeit.jpeg">
<img src="{{page.images}}/xiva/ceramics.jpeg">
<img src="{{page.images}}/xiva/entrance.jpeg">
<!-- <img src="{{page.images}}/xiva/my_kind_of_mess.jpeg"> -->
</figure>
I also ran the Hackney Half Marathon, pretty slowly and got way too hot!
And finally this month, I spent a few afternoons preparing [my Sensor.Community workshop for EMFcamp](/2024/05/29/sensor-community-emfcamp-workshop).
<figure class="two-wide">
<img src="{{page.images}}/emf_workshop_prep/organised.jpeg">
<img src="{{page.images}}/emf_workshop_prep/final.jpeg">
</figure>
The workshop went really well, before arriving I had been a bit unsure how to decide how many kits to put together, they were about £30 each so I didn't want to have many unsold kits. Particularly because I was selling them at cost. But apparently EMFcamp workshops are always 100% sold out so this turned out to be a complete non-issue and I kinda wished I had brought more kits!
That being said we filled a large workshop tent with 30 very enthusiastic people and I think almost all the kits worked in the end!
## June
Work trip to Zuric for PASC 2024. Played Hades, what a fun beat em up roguelike. This was a very work heavy month, I also had a week long training course on low level UNIX programming, which was quite fun. Apparently the training company don't offer the course publicly anymore because it's so low level.
<figure>
<img src="{{page.images}}/twat_union.jpeg">
<figcaption>A gig put on my one of my favourite bands at the vagina museum in London.</figcaption>
</figure>
And honestly a low of what we learned is stuff that any good standard library in any reasonable programming language would abstract away from you. And most of the time that's the best thing! It's still nice to know what's going on under the hood though.
## July
This month I played Stardew Valley for the first time. Definitely lived up to its status as one of the best selling games of all time!
In junas for two weeks
<figure>
<img src="{{page.images}}/swimming_in_junas.jpeg">
<figcaption>Testing out a new swimming spot near Junas.</figcaption>
</figure>
## August
Cornwall with friends
My gaming august was split between Stardew Valley and Tactical breach wizards. The latter is a short and sweet turn based... breach wizards game. Surprisingly funny and well written dialogue.
## September
Poznan for work and Brussels on the way back. Three weeks in Italy! Visited my home Italian commune and found my grandmother's grave.
## October
This month I spent some time playing Batman Arkham Night - I grabbed this after watching Jacob Geller's video "How Does Arkham Knight Still Look So Good?". It's true that it looks great but predictably for a AAA game the gameplay is quite formulaic. The open world, grapple hook and gliding mechanics are quite fun in combination though.
## November
## December
In December I bought a bunch of games in the Steam sale, including Fallout 4 which has occupied my gaming time for the month.
### Books
A lot of Octavia E Butler this year. Also Becky Chambers and Anne Bishop
### Crosswords

View File

@ -0,0 +1,48 @@
---
title: Outline Rendering
layout: post
excerpt: I'm currently obsessed with the aesthetic of rendering angular CAD like 3D assets with thin black lines.
models: /assets/blog/outline_rendering
image:
thumbnail:
assets:
alt:
head: |
<script async src="/node_modules/es-module-shims/dist/es-module-shims.js"></script>
<script type="importmap">
{
"imports": {
"three": "/node_modules/three/build/three.module.min.js",
"three/addons/": "/node_modules/three/examples/jsm/",
"lil-gui": "/node_modules/lil-gui/dist/lil-gui.esm.min.js"
}
}
</script>
<script src="/assets/js/projects.js" type="module"></script>
draft: true
---
First we have the scene exported with no additional normal information. Because of this, the render calculates the normal for each triangle of the mesh and lights it based on that, this is why we can see the individual faces of the cylinder and torus so easily.
<figure>
<outline-model-viewer model = "{{page.models}}/no_uvs_no_normals_no_vertex_colours.glb" materials=keep mode=2 ambient-light="1.5" directional-light="5" camera = '{"position":[-3.493,4.932,-9.259],"rotation":[-2.652,-0.3214,-2.975],"zoom":223.15174865581577,"target":[0,0,0]}'>
<img class="outline-model-poster no-wc" src = "">
<p class="has-wc">Loading model...</p>
</outline-model-viewer>
<figcaption>Three simple meshes made in blender. I've exported these with no UVs, nor normals.</figcaption>
</figure>
Next let's add in normals.
<figure>
<outline-model-viewer model = "{{page.models}}/with_normals.glb" materials=flat mode=2 ambient-light="1.5" directional-light="5" camera = '{"position":[-3.493,4.932,-9.259],"rotation":[-2.652,-0.3214,-2.975],"zoom":223.15174865581577,"target":[0,0,0]}'>
<img class="outline-model-poster no-wc" src = "">
<p class="has-wc">Loading model...</p>
</outline-model-viewer>
<figcaption>With smooth normals.</figcaption>
</figure>

Binary file not shown.

BIN
assets/images/2024/2024.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -0,0 +1,87 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="128"
height="128"
viewBox="0 -677 7071.8231 7074.0039"
aria-hidden="true"
version="1.1"
id="svg151"
sodipodi:docname="2024.svg"
inkscape:version="1.2.2 (b0a84865, 2022-12-01)"
inkscape:export-filename="2024.png"
inkscape:export-xdpi="192"
inkscape:export-ydpi="192"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview153"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="3.0862671"
inkscape:cx="61.887061"
inkscape:cy="97.366815"
inkscape:window-width="1352"
inkscape:window-height="815"
inkscape:window-x="0"
inkscape:window-y="35"
inkscape:window-maximized="0"
inkscape:current-layer="svg151" />
<defs
id="defs135">
<path
id="MJX-5-TEX-N-32"
d="m 109,429 q -27,0 -43,18 -16,18 -16,44 0,71 53,123 53,52 132,52 91,0 152,-56 61,-56 62,-145 0,-43 -20,-82 -20,-39 -48,-68 -28,-29 -80,-74 -36,-31 -100,-92 l -59,-56 76,-1 q 157,0 167,5 7,2 24,89 v 3 h 40 v -3 Q 448,183 436,95 424,7 421,3 V 0 H 50 v 19 12 q 0,7 6,15 6,8 30,35 29,32 50,56 9,10 34,37 25,27 34,37 9,10 29,33 20,23 28,34 8,11 23,30 15,19 21,32 6,13 15,29 9,16 13,32 4,16 7,30 3,14 3,33 0,63 -34,109 -34,46 -97,46 -33,0 -58,-17 -25,-17 -35,-33 -10,-16 -10,-19 0,-1 5,-1 18,0 37,-14 19,-14 19,-46 0,-25 -16,-42 -16,-17 -45,-18 z" />
<path
id="MJX-5-TEX-N-30"
d="m 96,585 q 56,81 153,81 48,0 96,-26 48,-26 78,-92 37,-83 37,-228 0,-155 -43,-237 -20,-42 -55,-67 -35,-25 -61,-31 -26,-6 -51,-7 -26,0 -52,6 -26,6 -61,32 -35,26 -55,67 -43,82 -43,237 0,174 57,265 z m 225,12 q -30,32 -71,32 -42,0 -72,-32 -25,-26 -33,-72 -8,-46 -8,-192 0,-158 8,-208 8,-50 36,-79 28,-30 69,-30 40,0 68,30 29,30 36,84 7,54 8,203 0,145 -8,191 -8,46 -33,73 z" />
<path
id="MJX-5-TEX-N-34"
d="M 462,0 Q 444,3 333,3 217,3 199,0 h -9 v 46 h 31 q 20,0 27,0 7,0 17,2 10,2 14,5 4,3 7,8 1,2 1,54 v 50 H 28 v 46 l 151,231 q 153,232 155,233 2,2 21,2 h 18 l 6,-6 V 211 h 92 v -46 h -92 v -51 q 0,-41 0,-48 0,-7 6,-12 8,-7 57,-8 h 29 V 0 Z M 293,211 V 545 L 74,212 183,211 Z" />
</defs>
<g
stroke="#000000"
fill="#000000"
stroke-width="0"
transform="matrix(3.678291,0,0,-3.678291,779.03245,3847.4786)"
id="g149-3">
<g
data-mml-node="math"
id="g147-2">
<g
data-mml-node="mn"
id="g145-6">
<use
data-c="32"
xlink:href="#MJX-5-TEX-N-32"
id="use137-9"
transform="translate(313.5924,258.25256)" />
<use
data-c="30"
xlink:href="#MJX-5-TEX-N-30"
transform="rotate(-92.58717,266.28445,-179.41562)"
id="use139-4" />
<use
data-c="32"
xlink:href="#MJX-5-TEX-N-32"
transform="translate(686.4076,267.47587)"
id="use141-1" />
<use
data-c="34"
xlink:href="#MJX-5-TEX-N-34"
transform="rotate(4.6826946,1031.6891,5956.867)"
id="use143-3"
inkscape:transform-center-x="-34.501579"
inkscape:transform-center-y="-64.542018" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 611 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

221
assets/images/logo.svg Normal file
View File

@ -0,0 +1,221 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="51.794682mm"
height="55.443527mm"
viewBox="0 0 51.794682 55.443527"
version="1.1"
id="svg1942"
inkscape:version="1.2.2 (b0a84865, 2022-12-01)"
sodipodi:docname="logo.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1944"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.914906"
inkscape:cx="344.84417"
inkscape:cy="355.77425"
inkscape:window-width="1390"
inkscape:window-height="1205"
inkscape:window-x="1007"
inkscape:window-y="199"
inkscape:window-maximized="0"
inkscape:current-layer="layer1" />
<defs
id="defs1939">
<inkscape:path-effect
effect="powerstroke"
id="path-effect6246-5-8"
is_visible="true"
lpeversion="1"
offset_points="0.18224551,0.28188904 | 0.36029823,0.43584958 | 0.754965,0.30821317"
not_jump="false"
sort_points="true"
interpolator_type="CentripetalCatmullRom"
interpolator_beta="0.2"
start_linecap_type="zerowidth"
linejoin_type="round"
miter_limit="4"
scale_width="1"
end_linecap_type="zerowidth" />
<inkscape:path-effect
effect="powerstroke"
id="path-effect5884-8-2"
is_visible="true"
lpeversion="1"
offset_points="0.2,0.47799999 | 0.4806596,0.67441974 | 0.8,0.47799999"
not_jump="false"
sort_points="true"
interpolator_type="CentripetalCatmullRom"
interpolator_beta="0.19533528"
start_linecap_type="zerowidth"
linejoin_type="round"
miter_limit="4"
scale_width="1"
end_linecap_type="zerowidth" />
<inkscape:path-effect
effect="mirror_symmetry"
start_point="-97.678141,160.81888"
end_point="-97.678141,177.7813"
center_point="-97.678141,169.30009"
id="path-effect2767-9-0-5-0-2-7-3"
is_visible="true"
lpeversion="1.2"
lpesatellites=""
mode="free"
discard_orig_path="false"
fuse_paths="false"
oposite_fuse="false"
split_items="false"
split_open="false"
link_styles="false" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath6915">
<path
style="opacity:0.478992;fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:0.106974;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
d="M 28.149487,13.059818 C 16.418151,-8.7090151 12.215445,-3.7596424 8.8441539,0.89771479 L 3.4775368,17.08455 c 1.8600814,0.306244 5.9974969,0.858885 7.5007252,0.42767 5.981311,-0.840134 12.310027,-0.811699 17.171225,-4.452402 z"
id="path6917"
sodipodi:nodetypes="ccccc" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath7174">
<path
style="opacity:0.478992;fill:#ff5757;fill-opacity:1;stroke:none;stroke-width:0.739266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
d="M 10.538156,16.714335 C 8.8468927,17.377595 0.98956412,16.464009 -0.24627545,16.238784 L 6.0490438,-11.158414 42.481159,9.7499583 20.324808,18.064421 Z"
id="path7176"
sodipodi:nodetypes="cccccc" />
</clipPath>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-131.423,-31.27337)">
<path
style="mix-blend-mode:difference;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.18094;stroke-linejoin:round;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
id="path4397-3-4-21-1-9-0"
sodipodi:type="arc"
sodipodi:cx="157.32034"
sodipodi:cy="60.819557"
sodipodi:rx="25.897341"
sodipodi:ry="25.897341"
sodipodi:start="0.25939046"
sodipodi:end="0.25900113"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 182.35133,67.462004 a 25.897341,25.897341 0 0 1 -31.671,18.389184 25.897341,25.897341 0 0 1 -18.39226,-31.669205 25.897341,25.897341 0 0 1 31.66741,-18.395348 25.897341,25.897341 0 0 1 18.39843,31.665623" />
<path
style="mix-blend-mode:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.782787;stroke-linejoin:round;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
id="path2761-1-2-2-5-6-5-4"
sodipodi:type="arc"
sodipodi:cx="157.32031"
sodipodi:cy="62.065681"
sodipodi:rx="12.116026"
sodipodi:ry="2.3028855"
sodipodi:start="0.25939046"
sodipodi:end="0.25900113"
sodipodi:open="true"
sodipodi:arc-type="arc"
d="m 169.03101,62.656352 a 12.116026,2.3028855 0 0 1 -14.81721,1.635233 12.116026,2.3028855 0 0 1 -8.60479,-2.816141 12.116026,2.3028855 0 0 1 14.81554,-1.635781 12.116026,2.3028855 0 0 1 8.60767,2.815822" />
<g
id="g6286-5-9"
transform="translate(530.23207,-98.365537)"
style="fill:#ffffff;fill-opacity:1">
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.956;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
d="m -374.7641,156.66788 c 0.16394,-0.2009 0.45797,-0.54873 0.66525,-0.85631 0.0811,-0.12028 0.14475,-0.22804 0.19173,-0.32513 0.0625,-0.12907 0.10966,-0.24926 0.13846,-0.36802 0.026,-0.10741 0.0384,-0.2194 0.0292,-0.33652 -0.006,-0.0787 -0.0221,-0.15942 -0.05,-0.24113 -0.008,-0.0227 -0.0164,-0.0454 -0.026,-0.0683 -0.0725,-0.17228 -0.18538,-0.31888 -0.31726,-0.45682 -0.11619,-0.12154 -0.24032,-0.23099 -0.35992,-0.34762 -0.13383,-0.1305 -0.24974,-0.25701 -0.36384,-0.41273 -0.005,-0.007 -0.01,-0.0134 -0.0146,-0.0201 -0.11807,-0.16401 -0.2435,-0.35781 -0.36015,-0.62533 -0.1645,-0.37724 -0.25299,-0.77516 -0.29066,-1.05256 -0.0291,0.27318 -0.0763,0.68933 -0.0517,1.1311 0.0175,0.31409 0.0689,0.59012 0.15216,0.82442 0.003,0.01 0.007,0.0194 0.0105,0.0291 0.0829,0.22528 0.19062,0.42515 0.31571,0.61434 0.10631,0.16078 0.22931,0.31797 0.30549,0.42059 0.0989,0.13323 0.13796,0.19756 0.17771,0.26547 0.004,0.006 0.0101,0.0174 0.0138,0.0236 0.014,0.0239 0.032,0.0543 0.045,0.0775 0.0215,0.0386 0.0442,0.0841 0.0627,0.14233 0.0204,0.0641 0.0374,0.14867 0.0377,0.25925 3e-4,0.0839 -0.004,0.18661 -0.0224,0.31693 -0.0498,0.355 -0.18217,0.74527 -0.28887,1.00595 z"
id="path5882-2-7"
inkscape:path-effect="#path-effect6246-5-8"
inkscape:original-d="m -374.7641,156.66788 c 1.76784,-2.97296 -0.70762,-1.64781 -0.75779,-5.11051"
sodipodi:nodetypes="cc" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.956;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
d="m -372.42362,156.79395 c 0.34032,-0.16753 0.93624,-0.45065 1.40211,-0.88071 0.22213,-0.20506 0.39651,-0.42615 0.51747,-0.6596 0.0812,-0.15673 0.14467,-0.32343 0.18869,-0.49947 0.10465,-0.41852 0.0903,-0.85113 -0.007,-1.28213 -0.0788,-0.34776 -0.20912,-0.68429 -0.36135,-1.00515 -0.0276,-0.0582 -0.0563,-0.11659 -0.086,-0.17526 -0.18406,-0.36381 -0.40141,-0.72755 -0.61902,-1.08878 -0.2314,-0.3841 -0.42181,-0.6986 -0.61148,-1.04824 -0.0792,-0.14601 -0.15057,-0.28423 -0.21704,-0.41987 -0.10239,-0.20892 -0.20498,-0.41914 -0.29678,-0.65244 -0.2063,-0.52427 -0.27055,-0.96986 -0.26354,-1.29216 -0.12733,0.2752 -0.33707,0.73211 -0.38824,1.3775 -0.0229,0.28857 -0.0102,0.57636 0.0344,0.84672 0.0291,0.17671 0.0707,0.35759 0.12382,0.54268 0.12235,0.42628 0.29653,0.84217 0.48934,1.24969 0.18726,0.39581 0.38211,0.76591 0.54273,1.08951 0.0261,0.0526 0.0512,0.10376 0.0756,0.15392 0.13608,0.28027 0.24731,0.53015 0.33187,0.76849 0.10103,0.28476 0.15983,0.54195 0.17258,0.78937 0.006,0.10755 0.003,0.21694 -0.0107,0.33026 -0.0198,0.1693 -0.0567,0.3645 -0.14589,0.59503 -0.1982,0.51239 -0.57582,0.97427 -0.8712,1.26064 z"
id="path4120-0-7-6-33-8-9"
inkscape:path-effect="#path-effect5884-8-2"
inkscape:original-d="m -372.42362,156.79395 c 4.13497,-2.91277 -1.21521,-5.286 -0.35431,-9.00381" />
</g>
<g
id="g5166-9-1"
transform="translate(525.35141,-129.68899)">
<path
style="mix-blend-mode:normal;fill:#ffffff;fill-opacity:1;stroke:#fcfcfc;stroke-width:0.799999;stroke-linejoin:round;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
d="m -97.678153,177.3813 h 4.623815 c 5.182859,-3.60866 6.776223,-7.37559 7.376297,-10.24484 0.289861,-1.38597 0.347958,-2.56249 0.466905,-3.41054 -1.073913,1.63946 -7.966866,2.2162 -12.465813,2.19845 m -0.0012,11.45693 h -4.623811 c -5.18286,-3.60866 -6.77623,-7.37559 -7.3763,-10.24484 -0.28986,-1.38597 -0.34796,-2.56249 -0.46691,-3.41054 1.07392,1.63946 7.96687,2.2162 12.465817,2.19845"
id="path2707-9-0-1-4-8-3-3"
sodipodi:nodetypes="ccscc"
class="UnoptimicedTransforms"
transform="translate(-270.35333,28.652293)"
inkscape:original-d="m -97.678153,177.3813 h 4.623815 c 5.182859,-3.60866 6.776223,-7.37559 7.376297,-10.24484 0.289861,-1.38597 0.347958,-2.56249 0.466905,-3.41054 -1.073913,1.63946 -7.966866,2.2162 -12.465813,2.19845"
inkscape:path-effect="#path-effect2767-9-0-5-0-2-7-3" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.81944px;line-height:1.2;font-family:Charter;-inkscape-font-specification:'Charter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;mix-blend-mode:difference;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.799999;stroke-linejoin:round;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
x="-370.71606"
y="203.71504"
id="text2823-07-3-9-3-3-3"><tspan
sodipodi:role="line"
id="tspan2821-6-1-0-2-3-9"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:8.81944px;font-family:Charter;-inkscape-font-specification:'Charter, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.8;stroke-opacity:1"
x="-370.71606"
y="203.71504">T</tspan></text>
</g>
<circle
id="path5632-9-0"
style="fill:#ff0000;stroke:#000000;stroke-width:0.264583"
cx="158.75598"
cy="56.256691"
r="0.024833301" />
<path
style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:0.799999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
id="path5720-1-4"
d="m 163.42663,32.80085 c 0.22319,-0.21196 0.43727,-0.4332 0.64916,-0.65644 0.13585,-0.15033 0.28386,-0.29099 0.40031,-0.45759 0.0783,-0.10147 0.10914,-0.22225 0.13192,-0.34582 0.003,-0.0224 0.006,-0.0447 0.009,-0.0671 0,0 -7.9e-4,-5.3e-4 -7.9e-4,-5.3e-4 v 0 c -0.003,0.0224 -0.006,0.0447 -0.009,0.0671 -0.0228,0.12356 -0.0537,0.24433 -0.13191,0.34579 -0.11642,0.1666 -0.26441,0.30727 -0.40025,0.45761 -0.21188,0.22325 -0.42596,0.44451 -0.64923,0.65639 0,0 8e-4,5.3e-4 8e-4,5.3e-4 z" />
<g
style="mix-blend-mode:difference;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.01146;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.29955"
id="g410-1"
transform="matrix(0.90806656,-0.22200702,0.22200702,0.90806656,154.66895,48.7619)"
clip-path="url(#clipPath6915)">
<path
d="m 14.7,6.3 a 1,1 0 0 0 0,1.4 l 1.6,1.6 a 1,1 0 0 0 1.4,0 l 3.77,-3.77 a 6,6 0 0 1 -7.94,7.94 l -6.91,6.91 a 2.1213203,2.1213203 0 0 1 -3,-3 l 6.91,-6.91 a 6,6 0 0 1 7.94,-7.94 l -3.76,3.76 z"
id="path401-07"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.01146;stroke-dasharray:none;stroke-opacity:0.29955" />
</g>
<g
style="mix-blend-mode:difference;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.39542;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="g255-6-75-4"
transform="matrix(-0.84737515,-0.16165056,-0.15002037,0.86972825,158.4753,49.69172)"
clip-path="url(#clipPath7174)">
<path
d="M 15,12 4.52087,22.387841 c -4.20359149,4.166972 -7.2195185,1.206033 -5.7503468,-0.252666 L 12,9"
id="path240-9-5-4"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.39542;stroke-dasharray:none;stroke-opacity:1"
sodipodi:nodetypes="cssc" />
<path
d="m 18,15 4,-4"
id="path242-4-05-4"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.739264;stroke-dasharray:none;stroke-opacity:1" />
<path
d="M 21.5,11.5 19.586,9.586 A 2,2 0 0 1 19,8.172 V 7 L 16.74,4.74 A 6,6 0 0 0 12.538,2.984 L 9,2.96 9.92,3.78 A 6.18,6.18 0 0 1 12,8.4 V 10 l 2,2 h 1.172 a 2,2 0 0 1 1.414,0.586 L 18.5,14.5"
id="path244-1-2-3"
style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.39542;stroke-dasharray:none;stroke-opacity:1" />
</g>
<path
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.445;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.9;stroke-dasharray:none;stroke-dashoffset:5.04;stroke-opacity:1"
d="m 146.37696,62.36599 c 3.9097,1.8235 18.50125,1.67007 22.23622,0"
id="path7139"
sodipodi:nodetypes="cc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -15,5 +15,7 @@ img:
</section>
<hr class="heading">
{% for post in site.posts %}
{% if post.draft == false or jekyll.environment == "development" %}
{% include post_summary.html %}
{% endif %}
{% endfor %}

View File

@ -14,7 +14,7 @@ layout: none
"items": [
{% for post in site.posts limit:10 %}
{% unless post.draft %}
{% if post.draft == false or jekyll.environment == "development" %}
{
"id": "{{ post.url | prepend: site.baseurl | prepend: site.url }}",
"url": "{{ post.url | prepend: site.baseurl | prepend: site.url }}",
@ -22,7 +22,7 @@ layout: none
"content_html": {{ post.content | jsonify }},
"date_published": "{{ post.date | date_to_rfc822 }}"
}{% unless forloop.last %},{% endunless %}
{% endunless %}
{% endif %}
{% endfor %}
]
}

View File

@ -17,7 +17,7 @@ layout: none
<lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
{% assign feed_items = site.feed.post_limit | default: 10 %}
{% for post in site.posts limit:feed_items %}
{% unless post.draft %}
{% if post.draft == false or jekyll.environment == "development" %}
<item>
<title>{{ post.title | xml_escape }}</title>
<dc:creator>Tom Hodson</dc:creator>
@ -39,7 +39,7 @@ layout: none
<guid isPermaLink="true">{{ site.url }}{{ post.url }}</guid>
</item>
{% endunless %}
{% endif %}
{% endfor %}
</channel>
</rss>

View File

@ -25,7 +25,9 @@ Welcome to my little home on the web! Below you'll find recent blog posts, proje
<hr class="heading">
{% for post in site.posts limit:5 %}
{% if post.draft == false or jekyll.environment == "development" %}
{% include post_summary.html %}
{% endif %}
{% endfor %}
<br>
<a href = "/blog/" class = "highlights-more">More</a>
@ -40,7 +42,9 @@ Welcome to my little home on the web! Below you'll find recent blog posts, proje
<hr class="heading">
{% assign projects = site.projects | sort_natural: "last_modified_at"%}
{% for post in projects limit:5 %}
{% if post.draft == false or jekyll.environment == "development" %}
{% include project_summary.html %}
{% endif %}
{% endfor %}
<a href = "/projects/" class = "highlights-more">More</a>
</section>

View File

@ -18,5 +18,7 @@ social_image: /assets/projects/lego_adapters/thumbnail.png
<hr class="heading">
{% for post in site.projects %}
{% if post.draft == false or jekyll.environment == "development" %}
{% include project_summary.html %}
{% endif %}
{% endfor %}

7
run.sh
View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
bundle install
npm outdated
echo Open http://0.0.0.0:4000
# bundle exec jekyll serve --draft --future --live --incremental
bundle exec jekyll serve --live --incremental --livereload --future --host 0.0.0.0
echo Open http://0.0.0.0:4100
echo Open http://mathmac.local:4100
# bundle exec jekyll serve --draft --future --live --incremental --host 0.0.0.0
bundle exec jekyll serve --live --incremental --livereload --future --host 0.0.0.0 --port 4100 --livereload-port 4101