<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<title>Dave Shea – Journal</title>
	<subtitle>Feed of Recent journal entries</subtitle>
	<link href="https://daveshea.com/journal/feed.xml" rel="self"/>
	<link href="https://daveshea.com/"/>
	<updated>2026-10-26T12:00:00Z</updated>
	<id>https://daveshea.com/</id>
	<author>
		<name>Dave Shea</name>
	</author>
	
		
		<entry>
			<title>Don’t call it a comeback</title>
			<link href="https://daveshea.com/journal/don-t-call-it-a-comeback/"/>
			<updated>2026-10-26T12:00:00Z</updated>
			<id>https://daveshea.com/journal/don-t-call-it-a-comeback/</id>
			<content type="html">&lt;p&gt;Creating a new personal website in 2026 is certainly a choice.&lt;/p&gt;
&lt;p&gt;The commercial web is a disaster of privacy invasion, pop up annoyances, and ads that drown out content. Most social media is a dumpster fire best left in the rearview. Bots outnumber people while siphoning up every thought you or I publish. Minor algorithm tweaks by a major tech company can wipe out small businesses at the drop of a hat. Corporate earnings growth has seen to wringing out every last cent that can be made from exploiting the wreckage of what was once a free and open sphere of information sharing.&lt;/p&gt;
&lt;p&gt;But, a human-centric internet can still exist if we want it to. I want to add my voice back with those keeping craft and humanity alive on this place we all used to love. Why not get back to my roots and revive some not-quite-forgotten skills that have languished for years, and just have some fun again? Those of us who were there still remember what this place used to be, here&#39;s my small part in bringing it back.&lt;/p&gt;
&lt;div class=&quot;image-narrative narrative-l&quot;&gt;
  &lt;a href=&quot;https://daveshea.com/projects/zen/&quot;&gt;&lt;img src=&quot;https://daveshea.com/images/journal/2026/214.png&quot; width=&quot;250&quot; alt=&quot;Screenshot of the CSS Zen Garden website&quot; loading=&quot;lazy&quot;&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;If we&#39;re meeting for the first time, hi! I&#39;m Dave. I used to publish a somewhat regarded blog called &lt;a href=&quot;https://daveshea.com/projects/mezzoblue/&quot;&gt;mezzoblue&lt;/a&gt; for the better part of a decade in the early 2000&#39;s. But what really put me on the map was helping pioneer modern CSS practices around the same time, before most were using it at all. I created the &lt;a href=&quot;https://daveshea.com/projects/zen/&quot;&gt;CSS Zen Garden&lt;/a&gt;, a site that I curated for years and eventually wrote a &lt;a href=&quot;https://daveshea.com/projects/zen-book/&quot;&gt;book&lt;/a&gt; about.&lt;/p&gt;
&lt;p&gt;My earlier work on the web was about creating things that wouldn&#39;t have otherwise existed. Some had wider impact, some were just for me, and in both cases it was building things for myself that I valued. But life had a pesky way of telling me I needed to make some money off of it too, something I didn&#39;t do a great job of figuring out in the eary days. Priorities changed, I got to &lt;a href=&quot;https://daveshea.com/work/&quot;&gt;work&lt;/a&gt; building things for others, and after a bunch of years away I&#39;m rediscovering the joy of creating for myself in this form.&lt;/p&gt;
&lt;div class=&quot;image-narrative narrative-r&quot;&gt;
  &lt;a href=&quot;https://daveshea.com/photos/food/&quot;&gt;&lt;img src=&quot;https://daveshea.com/images/galleries/food/scallop-ring.jpg&quot; width=&quot;250&quot; alt=&quot;Scallop crudo arranged with cucumber, radish, and stone fruit in a ring with a central green sauce and topped with flowers&quot; loading=&quot;lazy&quot;&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;To be clear though: I never stopped creating. I just stopped doing it here.&lt;/p&gt;
&lt;p&gt;This site is picking up where I left off and filling in some of the gaps. You can see what I&#39;ve been up to in the &lt;a href=&quot;https://daveshea.com/photos/food&quot;&gt;kitchen&lt;/a&gt; – yeah I made all that, it&#39;s probably even my own &lt;a href=&quot;https://daveshea.com/recipes/&quot;&gt;recipe&lt;/a&gt;. I got &lt;a href=&quot;https://daveshea.com/projects/nautical-disaster/&quot;&gt;really into&lt;/a&gt; the craft brewing industry for a while, which turned into my newest interest in making &lt;a href=&quot;https://daveshea.com/amaro/&quot;&gt;amaro&lt;/a&gt;. I&#39;ve preserved some older extra-curricular &lt;a href=&quot;https://daveshea.com/projects/&quot;&gt;projects&lt;/a&gt;, and even brought in a few &lt;a href=&quot;https://daveshea.com/photos/bikes&quot;&gt;interests&lt;/a&gt; that have nothing to do with creating. Plenty to poke around and discover on this new site.&lt;/p&gt;
&lt;p&gt;It&#39;s good to be back. Think I&#39;ll stay a while.&lt;/p&gt;</content>
		</entry>
	
		
		<entry>
			<title>Repurposing food scraps</title>
			<link href="https://daveshea.com/journal/repurposing-food-scraps/"/>
			<updated>2026-10-12T12:00:00Z</updated>
			<id>https://daveshea.com/journal/repurposing-food-scraps/</id>
			<content type="html">&lt;p&gt;I try to get the most out of ingredients, so I&#39;ve built up a reportoire of ways to divert what would otherwise be food scraps into other productive uses. If I were going for influencer points I might call these food hacks or something, but really all this is is a way of taking what is usually waste and giving it a second purpose.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Scrap stock.&lt;/strong&gt; I keep a bag in the freezer that I throw vegetable and meat trimmings into, and then every few weeks I empty it out to make stock. I&#39;m careful about what I save, green bits like carrot tops and flavour- or texture-altering vegetables like peppers and potatoes don&#39;t go in.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dehydrated chili peppers.&lt;/strong&gt; Typically when I&#39;m buying peppers, Thai chillies usually, I end up with more than I need for what I&#39;m making. When I don&#39;t have an immediate plan I halve and deseed them and dehydrate. When I want to use them I&#39;ll rehydrate in water for a half hour first, or if I&#39;m running low on cayenne I&#39;ll powderize and top up the spice jar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scallion harvesting.&lt;/strong&gt; I store my scallions with the root end in a shallow glass of water so they&#39;ll continue growing. And if you trim a half fingers-length from the root and add it to the glass, it&#39;ll also regrow over a week or two. The new growth is thinner and weaker so you only get one harvest from it, but it&#39;s a good way to extend a fresh ingredient and make sure you always have it on hand.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dashi salt.&lt;/strong&gt; Making dashi means leftover kombu and bonito. There&#39;s still plenty of flavour in the remnants, so dehydrating and grinding it with salt gets you an umami-rich seasoning salt that can go on anything.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leftover spice blend popcorn.&lt;/strong&gt; I regularly make custom spice blends for things like curries and brines. Sometimes I don&#39;t need as much as I&#39;ve made, so it goes in a jar and becomes the seasoning for the next time I make popcorn.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Animal fats.&lt;/strong&gt; After trimming fat from a cut of meat, chopping it up a bit and letting it simmer in a small pot at lower heat for a while renders out the fat which can be skimmed into a jar and saved in the fridge. I use it interchangably with oil when cooking. This will also work with chicken skin, which has the added benefit of leaving behind cracklins that just need a bit of seasoning to be a tasty snack or topping for a future dish, store in an air-tight container if not using immediately.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leek green powder.&lt;/strong&gt; The top green parts of leeks are great for stock, but I will also chop and dehydrate them then powderize for a nice easy leek addition in future dishes. It doesn&#39;t store well, so lately I&#39;ve been keeping the dried pieces whole and grinding as needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These techniques are just the ones I regularly use myself and the ones I can remember right now. There are plenty of other ways to repurpose scrap like making vinegars and ferments etc. that I&#39;ll leave to the real influencers.&lt;/p&gt;
</content>
		</entry>
	
		
		<entry>
			<title>Mount Strachan</title>
			<link href="https://daveshea.com/journal/mount-strachan/"/>
			<updated>2026-09-27T12:00:00Z</updated>
			<id>https://daveshea.com/journal/mount-strachan/</id>
			<content type="html">&lt;p&gt;We got a nice run of late-September sun, so I got in what&#39;s presumably my last hike for the year. The days are getting shorter and I don&#39;t like being out near sunset, so I opted for a quick loop of &lt;a href=&quot;https://www.alltrails.com/trail/canada/british-columbia/mount-strachan-loop--3&quot;&gt;Mount Strachan&lt;/a&gt; for this one.&lt;/p&gt;
&lt;div class=&quot;image-narrative narrative-l&quot;&gt;
  &lt;img src=&quot;https://daveshea.com/images/journal/2026/strachan-baker.jpg&quot; width=&quot;300&quot; alt=&quot;Mt Baker, viewed from the top&quot; loading=&quot;lazy&quot;&gt;
&lt;/div&gt;
&lt;p&gt;The first stretch from the top of Cypress Montain takes you along a ridge that continues on to St Mark&#39;s Summit, a popular destination for a moderate challenge. This particular Sunday it was absolutely crawling with humans of all ages and sizes who had the same idea, and after a summer of hiking more challenging routes I wasn&#39;t prepared for that sort of crowd.&lt;/p&gt;
&lt;p&gt;Thankfully, it thinned out once I hit the hard-to-find turnoff that takes you up to the peak. The push up Christmas Gully to the summit involved some moderate scrambling over rocks and using roots as handholds to pull myself up the hill, but wasn&#39;t too much of a challenge in the end.&lt;/p&gt;
&lt;p&gt;And getting to the top rewarded me with a fantastic panorama of the surrounding mountain ranges and the city and ocean down below. The loop connects back up to the ski hill from the top, so I ended up jogging back down the green Collins run which I&#39;ve been on plenty of times with a snowboard, but never without snow.&lt;/p&gt;
&lt;div class=&quot;image-footnote&quot;&gt;
  &lt;img src=&quot;https://daveshea.com/images/journal/2026/strachan-hs.jpg&quot; width=&quot;300&quot; alt=&quot;View over Howe Sound from the peak&quot; loading=&quot;lazy&quot;&gt;
&lt;/div&gt;
&lt;p&gt;All in all, that ended up being a pretty easy one and I was done well before I thought I would be. At &lt;a href=&quot;https://www.strava.com/activities/20358614375&quot;&gt;under 2 hours&lt;/a&gt; of moving time, the payoff of an amazing view at the top is likely to make this a favourite for taking up more casual hikers in the future.&lt;/p&gt;
</content>
		</entry>
	
		
		<entry>
			<title>CSS is incredible now</title>
			<link href="https://daveshea.com/journal/css-is-incredible-now/"/>
			<updated>2026-09-24T12:00:00Z</updated>
			<id>https://daveshea.com/journal/css-is-incredible-now/</id>
			<content type="html">&lt;p&gt;This site is the first I&#39;ve built from scratch in a long time, and coming back to the current state of the web after missing some of its recent evolution offered a pretty stunning look at how much front end web technology has changed over the past 20 years.&lt;/p&gt;
&lt;h2&gt;What&#39;s amazing&lt;/h2&gt;
&lt;p&gt;There&#39;s not likely to be much insight here for anyone who has been paying attention. It&#39;s more a list of things that I used to struggle with, dreamt of, or figured were impossible that I can almost take for granted today.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Layout is &lt;em&gt;solved&lt;/em&gt;.&lt;/strong&gt; The big ones like Grid and Flexbox allow for things I could have never dreamed of doing when floats were all we had.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Browser compatibility is barely a thing.&lt;/strong&gt; Even some of the more recent properties have been widely adopted and available across multiple versions. Automatic browser updates mean hangover legacy versions from way too many years ago aren&#39;t a thing anymore. More often than not, the answer to &lt;a href=&quot;https://caniuse.com/&quot;&gt;caniuse&lt;/a&gt; is an unqualified &amp;quot;yes&amp;quot;. No more prefixes!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Type selection and control is effortless.&lt;/strong&gt; The ability to use and precisely dial in any typeface I might want is mind-blowing, and variable fonts are super cool.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fluidity is easy.&lt;/strong&gt; I can precisely control aspect ratios without having to set pixel values, I can loosely set image fills without having to worry about how they fit the parent using &lt;code&gt;object-fit&lt;/code&gt;, I can define flexible type scales with &lt;code&gt;clamp&lt;/code&gt;, and when in doubt I can always fall back to breakpoints with media queries.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pre-rendering effects as images? Over.&lt;/strong&gt; Most of the filters and shadows and gradients and blend modes you could possibly want are easily composable in the browser.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I can move things around in so many ways.&lt;/strong&gt; Blocks can be rotated along multiple axes, they can scale on loading or on hover to any degree, they even can move around in 3D space.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Animation is trivial.&lt;/strong&gt; Transitions between elements and pages can be done fully in CSS, and when I need just a bit more control I can add simple event handlers in Javascript to toggle classes and allow CSS to do the rest from there,&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Redundant selector chains are gone.&lt;/strong&gt; I can use nested selectors to chain increasingly complex selections that used to require a lot of repetition. Sass solved this over a decade ago, now it&#39;s just how CSS works.&lt;/p&gt;
&lt;p&gt;And the one that makes me irrationally happy, maybe more than it should: I can easily &lt;strong&gt;center things vertically!&lt;/strong&gt; Multiple ways!!!&lt;/p&gt;
&lt;h2&gt;Still some quirks&lt;/h2&gt;
&lt;p&gt;That&#39;s not to say it&#39;s all roses and kittens of course. There are still a few quirks and shortcomings that prevent today&#39;s experience from being seamless:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CSS variables are clunky.&lt;/strong&gt; I like them, but that &lt;code&gt;var(--whatever)&lt;/code&gt;syntax sure is verbose.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No native build process.&lt;/strong&gt; Separating concerns with multiple source files included through &lt;code&gt;@import&lt;/code&gt; rules keeps CSS maintenance manageable, but the performance overhead of extra requests for each external stylesheet isn&#39;t ideal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Missing mixins.&lt;/strong&gt; Sass allows you to define an anonymous collection of styles and then assign in bulk to any selector later. Very useful when you need to share style across otherwise unequal elements, and a way of preventing authoring overhead. Abstracting the shared pieces to their own class and assigning when needed helps, but this one got away from me as I needed similar styling across disparate elements while building this site. The overhead of refactoring is a cost I may or may not pay in the future.&lt;/p&gt;
&lt;h2&gt;Historical baggage.&lt;/h2&gt;
&lt;p&gt;Due to the way it evolved, CSS carries a lot of quirky historical inertia that resolves as odd inconsistency these days. Some examples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;How do I center something? Depends on the container! I could use &lt;code&gt;text-align&lt;/code&gt;, or &lt;code&gt;justify-content&lt;/code&gt;, or &lt;code&gt;align-items&lt;/code&gt;, or &lt;code&gt;place-items&lt;/code&gt;, or... you get the idea.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;code&gt;background&lt;/code&gt; property comes with a big list of color-adjusting subproperties like background images, color, gradients, blend modes, and filters to adjust any layers behind it each with their own property that can be set independently. But text? You just get &lt;code&gt;color&lt;/code&gt; and &lt;code&gt;shadow&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;And come on, I still have to set &lt;code&gt;box-sizing: border-box;&lt;/code&gt; manually?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all though? I wish the me of 20 years ago could see where it was going, because it wasn&#39;t clear at all in 2006 that we could ever get here.&lt;/p&gt;
&lt;p&gt;What&#39;s now widely supported across all browsers is extremely powerful and lets me do almost anything I can think to do. I&#39;m spending less time hunting down supported properties and debugging, and getting on with creating.&lt;/p&gt;
&lt;p&gt;The balance is right.&lt;/p&gt;
</content>
		</entry>
	
		
		<entry>
			<title>Tour de Victoria</title>
			<link href="https://daveshea.com/journal/tour-de-victoria/"/>
			<updated>2026-08-17T12:00:00Z</updated>
			<id>https://daveshea.com/journal/tour-de-victoria/</id>
			<content type="html">&lt;p&gt;In 2022, a group of friends and I travelled to Victoria, BC to participate in the Tour de Victoria. It&#39;s an all-ages annual cycling event where you choose your own adventure: there are family-friendly 15km and 30km starter routes, up to the serious slogs at 140km and 160km. It makes for a unique finish because the various routes channels all riders in together to cross the same finish line, so starting early in the morning with serious roadie crews ends up finishing with kids and grandparents on ebikes.&lt;/p&gt;
&lt;div class=&quot;image-narrative narrative-r&quot;&gt;
  &lt;a href=&quot;https://www.strava.com/activities/19757093067&quot;&gt;&lt;img src=&quot;https://daveshea.com/images/journal/2026/tdv-map.jpg&quot; width=&quot;300&quot; alt=&quot;Map of the lower Saanich peninsula with the ride route overlaid in red&quot; loading=&quot;lazy&quot;&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;I&#39;ll never be the kind of cyclist that competes at the head of the pack, but I&#39;ve also done enough ambitious riding that I chose the 140km that first year. Only I didn&#39;t do nearly enough to prepare for it in 2022, and the 1800M of elevation over that course wiped me out. I remember feeling done by the 50km mark, and suffering through the next 90 kilometers for a 5:39 finish.&lt;/p&gt;
&lt;p&gt;Not a terrible result, but not one I was particularly happy with myself for. The whole experience actually stripped away enough joy from riding that, with a couple of exceptions, I put the bike in storage and didn&#39;t touch it again.&lt;/p&gt;
&lt;p&gt;Until this year. I decided it was time to steel up and get back in the saddle, so I registered for the ride and committed to some proper training this summer. I racked up the hours climbing mountains, travelling to remote suburbs, and doing dumb things like &lt;a href=&quot;https://www.strava.com/activities/19409063861&quot;&gt;14 laps in a row&lt;/a&gt; of the same hill.&lt;/p&gt;
&lt;p&gt;As the day of the event drew near it was looking like wildfire smoke could be a factor. I took a risk anyway and made my way into town, and over the entire weekend the Straight seemed to act like a buffer keeping the worst of it on the mainland leaving Victoria&#39;s skies a touch hazy but air quality more than acceptable.&lt;/p&gt;
&lt;div class=&quot;image-narrative narrative-l&quot;&gt;
  &lt;img src=&quot;https://daveshea.com/images/journal/2026/tdv-start.jpg&quot; width=&quot;300&quot; alt=&quot;Large crowd of cyclists at the start line on a city street with older buildings and ornate street lamps&quot; loading=&quot;lazy&quot;&gt;
&lt;/div&gt;
&lt;p&gt;The morning arrived. I packed up and made my way to the start line a few kilometers away, and noticed that my bike was handling a bit funny. With 15 minutes before the start time I pulled up to the aid station to pump my tires but realized the pressure in the back tire was way too low. I had a slow leak, but support is great at events like this, and they were able to swap my tubes with a few minutes to spare so I was back on track.&lt;/p&gt;
&lt;p&gt;Like my previous year, The first 20km or so was slow-paced group riding where there were too many people to do anything other than go with the flow. I chose to just enjoy the scenery and not push myself, and sure enough, as the climbs started the pack thinned out. I rode the next 30km or so largely with the same group of evenly-matched cyclists, and after the main big, constant climb on the ride I found myself alone for a while.&lt;/p&gt;
&lt;div class=&quot;image-footnote&quot;&gt;
  &lt;img src=&quot;https://daveshea.com/images/journal/2026/tdv.jpg&quot; width=&quot;300&quot; alt=&quot;Road bike with a numbered tag of 9075 parked against a fountain in front of BC&#39;s legislature buildings&quot; loading=&quot;lazy&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Around 75km in, the first of the 160km group started passing me. Those people were &lt;em&gt;fast&lt;/em&gt;, good thing I stayed away from the longest ride. Around 100km started  wanting to be done, but since that happened at the 50km mark on my last attempt I knew I was in good shape. Pushing on and getting it done, my official &lt;a href=&quot;https://www.strava.com/activities/19757093067&quot;&gt;finish time&lt;/a&gt; was 5:11 so I shaved a half hour off the previous attempt.&lt;/p&gt;
&lt;p&gt;I&#39;m glad to have re-done it, and to have improved my effort to that degree. But the deeper satisfaction comes from taking a low point and building up the determination to attempt it again. I don&#39;t see myself rushing back for a third effort, but hey, ask me again in a few years.&lt;/p&gt;
</content>
		</entry>
	
</feed>