<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<title>ecocode</title>
	<subtitle>A personal blog about [eco|techno]logy and other musings</subtitle>
	<link rel="self" type="application/atom+xml" href="https://ecocode.ca/posts/feed.xml"/>
  <link rel="alternate" type="text/html" href="https://ecocode.ca/posts/"/>
  
	<updated>2026-04-04T00:00:00+00:00</updated>
	
	<id>https://ecocode.ca/posts/feed.xml</id>
	<entry xml:lang="en">
		<title>Alto</title>
		<published>2026-04-04T00:00:00+00:00</published>
		<updated>2026-04-04T00:00:00+00:00</updated>
		<link rel="alternate" type="text/html" href="https://ecocode.ca/posts/alto/"/>
		<id>https://ecocode.ca/posts/alto/</id>
    
		<content type="html" xml:base="https://ecocode.ca/posts/alto/">&lt;h1 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;Recently, a good friend of mine brought up the Alto&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; high-speed rail (HSR)
project. My initial reaction was very enthusiastic, but I hadn&#x27;t grounded myself
in many of the details. Since then I&#x27;ve been pondering and researching the
project almost daily, while trying to get a feel for local and regional
positions on the matter. My general impression toward Alto is one of high
skepticism, at best, and public sentiment (which, admittedly, I&#x27;ve picked up on
primarily from social media and reports around public consultations from Alto&#x27;s
representatives) isn&#x27;t optimistic either. Between concerns about cost,
environmental impact, land expropriation, urban-rural divides, corruption, and
maybe some simple NIMBYism, there are a lot of different angles to consider from
the &quot;no&quot; camp. I find myself with thoughts, which you&#x27;re about to read (stop
while you can).&lt;&#x2F;p&gt;
&lt;h1 id=&quot;the-nots&quot;&gt;The &quot;Nots&quot;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-nots&quot; aria-label=&quot;Anchor link for: the-nots&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;To be clear, I&#x27;m not against HSR as a concept. In fact, I think that serious and
iterative commitment to building and improving public services - including
infrastructure - is something that we are sorely missing as a society. A
regional or even coast-to-coast HSR network is a transformative example of this,
and it would dramatically alter the lives of nearly everyone across this land,
often in unexpected ways. I find the lack of creativity in the public discourse
about Alto very frustrating, but while I suspect that contrarianism plays a big
part, it seems clear that there are valid concerns about it. So, this article is
&lt;strong&gt;not&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;A dismissal of Alto&#x27;s hypothetical benefits to those who would have access to
it;&lt;&#x2F;li&gt;
&lt;li&gt;A suggestion that the existence of opposition should stop further research
and development toward such projects;&lt;&#x2F;li&gt;
&lt;li&gt;Ignorance towards historically exploitative, dismissive, and otherwise
one-way relationships between Canada and First Nations regarding land use,
resource extraction, and treaty obligations, the trends of which this project
will probably continue (even though it mentions consultations are ongoing);&lt;&#x2F;li&gt;
&lt;li&gt;One of the usual arguments like &quot;the country is simply too big&quot;, &quot;it&#x27;s too
cold here for the trains to work&quot;, &quot;it&#x27;d cost too much&quot;, and so on. These are
solved problems in other parts of the world. We don&#x27;t need to keep pretending
we&#x27;re on our own;&lt;&#x2F;li&gt;
&lt;li&gt;A partisan position, i.e. opposition because the former PM and&#x2F;or the team
wearing red gets credit;&lt;&#x2F;li&gt;
&lt;li&gt;Me pretending that I&#x27;m unbiased.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Let&#x27;s get into it.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;the-back-of-the-envelope&quot;&gt;The Back of the Envelope&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-back-of-the-envelope&quot; aria-label=&quot;Anchor link for: the-back-of-the-envelope&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;h2 id=&quot;ottawa-to-toronto-for-the-weekend-round-trip&quot;&gt;Ottawa to Toronto, for the Weekend (Round Trip)&lt;a class=&quot;zola-anchor&quot; href=&quot;#ottawa-to-toronto-for-the-weekend-round-trip&quot; aria-label=&quot;Anchor link for: ottawa-to-toronto-for-the-weekend-round-trip&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Here come some numbers for an example trip, using these assumptions:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;The trip is assumed to begin on Friday, September 25th, 2026 (about six months
from now). We&#x27;re planning well in advance.&lt;&#x2F;li&gt;
&lt;li&gt;Where possible, these numbers were obtained by searching for flights and
trains via Google, using results for Westjet and VIA Rail, respectively. They
do vary depending on time of year (and especially day of week - weekdays are
sometimes $40-50 cheaper for a round trip), but you can find similar numbers
by browsing the booking calendars.&lt;&#x2F;li&gt;
&lt;li&gt;Fuel cost assumes there and back, plus some city driving, in a mid-sized SUV.
It&#x27;s probably closer to $200 at current per-litre costs.&lt;&#x2F;li&gt;
&lt;li&gt;&quot;Other Costs&quot; is broad and meant to encompass everything from bus&#x2F;subway fares
to a one-off Uber ride, which can vary wildly in price. For the driver&#x27;s case,
it&#x27;s also meant to cover parking. As of today, TTC fares&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#2&quot;&gt;2&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; are around $3.30
per ride for a single adult. There are lots of variables here, and those
who&#x27;ve made similar trips before will likely attest to many mixed solutions
they&#x27;ve come up with to save cash.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;The train and flight ticket prices are for a single adult&lt;&#x2F;strong&gt; - for a family,
driving is by far the most affordable option.&lt;&#x2F;li&gt;
&lt;li&gt;Time spent for the car assumes at least one short stop to stretch, use the
washroom, etc., while for the flight it assumes you&#x27;re at the airport at least
an hour before departure. The train is simplest here.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Item&lt;&#x2F;th&gt;&lt;th&gt;Car&lt;&#x2F;th&gt;&lt;th&gt;VIA Rail&lt;&#x2F;th&gt;&lt;th&gt;HSR&lt;&#x2F;th&gt;&lt;th&gt;Flight&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Fuel Cost (CAD)&lt;&#x2F;td&gt;&lt;td&gt;150&lt;&#x2F;td&gt;&lt;td&gt;X&lt;&#x2F;td&gt;&lt;td&gt;X&lt;&#x2F;td&gt;&lt;td&gt;X&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Ticket Cost (CAD)&lt;&#x2F;td&gt;&lt;td&gt;X&lt;&#x2F;td&gt;&lt;td&gt;161&lt;&#x2F;td&gt;&lt;td&gt;&lt;strong&gt;?&lt;&#x2F;strong&gt;&lt;&#x2F;td&gt;&lt;td&gt;493&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Other Costs (e.g. bus, subway, in CAD)&lt;&#x2F;td&gt;&lt;td&gt;100&lt;&#x2F;td&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;td&gt;50&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Time Spent (hours, one way)&lt;&#x2F;td&gt;&lt;td&gt;4.5&lt;&#x2F;td&gt;&lt;td&gt;4.5&lt;&#x2F;td&gt;&lt;td&gt;2&lt;&#x2F;td&gt;&lt;td&gt;3&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Attention&lt;&#x2F;td&gt;&lt;td&gt;Occupied&lt;&#x2F;td&gt;&lt;td&gt;Free&lt;&#x2F;td&gt;&lt;td&gt;Free&lt;&#x2F;td&gt;&lt;td&gt;Free&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;It goes without saying that &lt;strong&gt;all&lt;&#x2F;strong&gt; of these options are expensive for someone
earning the median or average incomes (using 2023&#x27;s numbers&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#3&quot;&gt;3&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;) of $45,400 or
$59,400 per year, respectively, so it&#x27;s easy to understand how critics would
perceive this project to be by and for a much wealthier demographic. I don&#x27;t see
any indication that Alto is expected to solve these problems of access and
affordability. There are also hidden factors baked into those options to
consider - for example, unless you use a carsharing service like
&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;ontario.communauto.com&#x2F;&quot;&gt;Communauto&lt;&#x2F;a&gt;, the first option means you need
to own and maintain a vehicle, which is a frustrating and expensive
barrier-to-entry for people to access many modes of living. When climate and
environmental consequences are considered, all of them tend to look even worse
(although Alto will be electric, which is a point in its favour). For
comparison, here&#x27;s the table&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#4&quot;&gt;4&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; from Wikipedia showing estimated times:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ecocode.ca&#x2F;posts&#x2F;alto&#x2F;table.png&quot; alt=&quot;Ontario is big&quot; title=&quot;To Drive, or Not to Drive?&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-will-an-alto-fare-cost&quot;&gt;What Will an Alto Fare Cost?&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-will-an-alto-fare-cost&quot; aria-label=&quot;Anchor link for: what-will-an-alto-fare-cost&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;I think that this is the single most important question to be asked about this
project: once all of the sacrifices are made despite myriad objections, will
anyone actually be able (or want) to use it? This reminds me of another question
which former BQ leader Gilles Duceppe once rightly asked, long ago:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ecocode.ca&#x2F;posts&#x2F;alto&#x2F;gilles.jpg&quot; alt=&quot;How much?&quot; title=&quot;We&amp;#39;re still waiting for the answer&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;For Alto, the best place to start looking may be a recent study&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#5&quot;&gt;5&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; published by
McGill in late 2025 (updated 2026), which my aforementioned friend pointed out.
Notably, it is based on a survey which (after a data validation step) only
includes 8,276 responses, all of whom are distributed among the cities with
proposed stops - so, excluding the many communities along the route but without
direct access, along with everybody further afield in other regions of the
country. This seems fine for estimating ridership, station preference, and so
on, but not other categories such as perceived benefits or concerns.&lt;&#x2F;p&gt;
&lt;p&gt;The most interesting analysis there is the &quot;Willingness to Pay&quot; section, which
suggests that &lt;strong&gt;prospective riders would only be willing to pay about $25 more
per fare than for VIA Rail.&lt;&#x2F;strong&gt; Using our single-adult hypothetical from earlier,
that&#x27;d mean the round-trip cost for Alto would be &lt;strong&gt;$186&lt;&#x2F;strong&gt;. That doesn&#x27;t sound
too bad, especially when you compare it to the flight.&lt;&#x2F;p&gt;
&lt;p&gt;Two problems:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Most people are going to compare costs, see that the train is more expensive,
and choose to drive anyway - especially when the apparent flexibility of
driving versus being bound to train and public transit schedules is
considered (and despite potential parking fees);&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;VIA Rail services seem unlikely to remain viable once Alto is complete&lt;&#x2F;strong&gt; -
their 2023 annual report&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#6&quot;&gt;6&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; mentions that &lt;strong&gt;96%&lt;&#x2F;strong&gt; of passenger trips were
taken along the Quebec City-Windsor corridor - unless there&#x27;s a major
re-imagining of their mandate.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;To reiterate, all of this is also assuming a single adult is making the trip -
the argument falls apart pretty quickly with access to &quot;cheap&quot; fuel and a
vehicle if you are going with friends and&#x2F;or family. Will this be the case in 20
years when Alto is up and running? It&#x27;s hard to say, but for now other forms of
transportation are really expensive. Unless costs come down across the board, I
don&#x27;t see how Alto is going to be any more appealing than the decision to drive,
even if it means taking 2.5 times as long (or more, with rush hour traffic).&lt;&#x2F;p&gt;
&lt;h2 id=&quot;which-problem-are-we-solving&quot;&gt;Which Problem Are We Solving?&lt;a class=&quot;zola-anchor&quot; href=&quot;#which-problem-are-we-solving&quot; aria-label=&quot;Anchor link for: which-problem-are-we-solving&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;If we want to see serious adoption of public transit from a majority of the
population, then the real issue is that these services are already too expensive
for most riders. I&#x27;m not quite as concerned about Alto&#x27;s engineering aspects or
the price tag - we can get ideas of what to expect from other countries who&#x27;ve
worked on megaprojects before. To be fair, this is already happening -
Cadence&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#7&quot;&gt;7&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; (the organization slated to build Alto) includes &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.sncf-voyageurs.com&#x2F;en&#x2F;&quot;&gt;SNCF
Voyageurs&lt;&#x2F;a&gt; and
&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.keolis.com&#x2F;en&#x2F;&quot;&gt;Keolis&lt;&#x2F;a&gt; on the international side, and a post&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#8&quot;&gt;8&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
from the Japanese Embassy about hosting an Alto round table seems like further
(if anecdotal) evidence of that. I&#x27;m not sure that speed is the actual priority,
though. What&#x27;s missing is a plan to push ticket prices down, and to increase
reliability of alternatives to driving.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;media2.giphy.com&#x2F;media&#x2F;v1.Y2lkPTc5MGI3NjExbG1uaDNteWV6c3MxendydXF5OW5lZzNidTFyZDhlZXZlNXgwcXVzcCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw&#x2F;7XsFGzfP6WmC4&#x2F;giphy.gif&quot; alt=&quot;Must we though?&quot; title=&quot;There&amp;#39;s no T-Rex chasing us, I think&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I still want to look into other studies on this, but &lt;strong&gt;in my mind the threshold
for choosing to ride the train every time as a family of four - assuming that
something like VIA&#x27;s policy&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#9&quot;&gt;9&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; of children traveling for free is in effect for
the trip, so only two adult tickets are required - comes in at about $200&lt;&#x2F;strong&gt;, or
about 33% more than the driving estimate. This per-adult cost of about $100 is
where I&#x27;d have to seriously consider leaving the car at home, keeping in mind
that there&#x27;s still a lot of other factors which make this kind of outing a
fairly rare one. I&#x27;m assuming that people thinking about such a trip have the
funds to allow those choices, though. &lt;strong&gt;To make it accessible to more people, it
should be pushed much lower, with corresponding investments in higher
reliability and more frequent service&lt;&#x2F;strong&gt;. Apparently there was a report&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#10&quot;&gt;10&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
suggesting a similar model in 2015, at least on the expansion-of-service side.&lt;&#x2F;p&gt;
&lt;p&gt;Speaking of VIA Rail again, their 2023 report listed operating expenses of
$812.5 million and operating losses of $381.8 million, respectively. With ~40
million people, those operating expenses work out to a little over $20 per
person per year, with current fare costs. You have to wonder what a version of
the VIA Rail service running at two, three, or even five times that number would
look like, assuming the difference was split between expanded service and
subsidizing of the fares themselves. The main issue that comes to mind with the
expansion aspect is increased emissions and further reliance on one type of
energy (diesel). Maybe there&#x27;s an approach where slower electrified services are
easier to build? This would require a lot of the same safety measures that Alto
HSR would to deliver power to the trains (so the tracks would still be fenced
and impassable without going over or under), but removing the wide turning
radius required for high-speed operation may make it easier to avoid routing
through critical habitats and properties whose owners are opposed to the current
proposals. If such examples don&#x27;t exist yet, then maybe this is a chance for us
to show the rest of the world a new example.&lt;&#x2F;p&gt;
&lt;p&gt;Ultimately, I think that &lt;strong&gt;public services should not be expected to turn a
profit&lt;&#x2F;strong&gt;, and if spending a little more means coming up with a solution that
addresses this line of thinking, it may be the best path forward.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;future-work&quot;&gt;Future Work&lt;a class=&quot;zola-anchor&quot; href=&quot;#future-work&quot; aria-label=&quot;Anchor link for: future-work&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;h2 id=&quot;international-studies-and-other-media&quot;&gt;International Studies and Other Media&lt;a class=&quot;zola-anchor&quot; href=&quot;#international-studies-and-other-media&quot; aria-label=&quot;Anchor link for: international-studies-and-other-media&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;A non-exhaustive list of papers which I&#x27;ve either read, or plan to read, around
HSR projects elsewhere in the world:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.itf-oecd.org&#x2F;sites&#x2F;default&#x2F;files&#x2F;docs&#x2F;dp201326.pdf&quot;&gt;High Speed Rail Performance in France: From Appraisal Methodologies to
Ex-post
Evaluation&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;elib.dlr.de&#x2F;215637&#x2F;1&#x2F;2025_Oesingmann_Ennen_Rail.pdf&quot;&gt;The impacts of high-speed rail expansion on short-haul air passenger
transport - Evidence from German domestic and international
traffic&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;shs.hal.science&#x2F;halshs-01137902v3&#x2F;file&#x2F;Spatial_Equity_High_Speed_Trains_France.pdf&quot;&gt;Spatial equity and high speed trains: the example of
France&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;rail-research.europa.eu&#x2F;wp-content&#x2F;uploads&#x2F;2023&#x2F;01&#x2F;HSR_Technical_Report_1_Final_220123_v1_update.pdf&quot;&gt;Smart and Affordable Rail Services in the EU: a socio-economic and
environmental study for High-Speed in 2030 and
2050&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.researchgate.net&#x2F;publication&#x2F;366679534_THE_DEVELOPMENT_OF_HIGH-SPEED_RAIL_IN_THE_FEDERAL_REPUBLIC_OF_GERMANY_BETWEEN_2002-2020&quot;&gt;The Development of High-Speed Rail in the Federal Republic of Germany
Between
2002-2020&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;I&#x27;ll have to find and read publications around African proposals, along with
Chinese and Japanese systems, too. If video essays are more your thing, there
are at least eight focused on train infrastructure on the Wendover Productions
channel&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#11&quot;&gt;11&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; (I can&#x27;t recall which ones I&#x27;ve seen).&lt;&#x2F;p&gt;
&lt;h2 id=&quot;trains-of-thought&quot;&gt;Trains of Thought&lt;a class=&quot;zola-anchor&quot; href=&quot;#trains-of-thought&quot; aria-label=&quot;Anchor link for: trains-of-thought&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Some related topics, which I may explore in the future:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Degrowth and slowing down - how is our perception of trip length changed if
our society finds ways to reduce the urgency with which we work and travel? I
suspect these ideas quickly intersect with problems of compressed or reduced
work weeks, remote work options, universal basic income (UBI) projects, and
other concepts meant to alleviate pressure on people to always be producing,
achieving, and doing.&lt;&#x2F;li&gt;
&lt;li&gt;Necropolitics and ecological borderization - what do fare costs, geographic
accessibility, and environmental consequences look like when infrastructure
projects are viewed as physical and economic borders? How do we ensure equity
across the population? What does it mean not only for the ecological systems
we are part of, but our changing relationships with our non-human kin?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;last-words&quot;&gt;Last Words&lt;a class=&quot;zola-anchor&quot; href=&quot;#last-words&quot; aria-label=&quot;Anchor link for: last-words&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;In the week or so since I began writing this post, it feels like the activity
around the Alto project on social media has grown (although with algorithmic
feedback loops and the potential for fake accounts, it&#x27;s hard for me to know how
much without digging). I&#x27;m having a hard time keeping track of the many
articles, letters written to Parliament, and research papers on successes and
failures in other HSR projects around the world. There&#x27;s even been a press
conference&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#12&quot;&gt;12&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; from the leader of the federal opposition, with very predictable
content - a firm &quot;no&quot; to Alto, lamentation about no &quot;projects&quot; (pipelines) being
built, and so on - which really seemed like a combination of points from &lt;a href=&quot;https:&#x2F;&#x2F;ecocode.ca&#x2F;posts&#x2F;alto&#x2F;#the-nots&quot;&gt;The
Nots&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;I am not an expert on the inner workings of federal government, so I can&#x27;t be
sure of the presser&#x27;s political expediency. However, given that it seems like
more of the same rhetoric used in recent elections, I&#x27;d guess one of three
outcomes, in order of likelihood:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;It is seen as opportunistic positioning and&#x2F;or a continuation of favouring
rural areas at the expense of urban ones - despite the CPC losing the
interest of those ridings in the near term - and is largely ignored;&lt;&#x2F;li&gt;
&lt;li&gt;It motivates the LPC to push the Alto project even harder to avoid a loss of
confidence and a sudden election (although recent floor crossings&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#13&quot;&gt;13&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
suggest that maybe this isn&#x27;t a problem);&lt;&#x2F;li&gt;
&lt;li&gt;Two or more parties revisit the project and the budget, then consider
possible alternatives for rail expansion alongside other big projects to
shore up ailing industries and economic hardship.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;It&#x27;s truly unfortunate that we&#x27;re perpetually stuck in the middle of this
back-and-forth dance. Maybe if plans to implement proportional representation in
our electoral system (which, coincidentally, were promised and then cancelled by
former PM Trudeau, who also happens to have announced&lt;sup class=&quot;footnote-reference&quot;&gt;&lt;a href=&quot;#14&quot;&gt;14&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; the Alto project
shortly before his retirement) hadn&#x27;t been cancelled, we could have more
transparency than it seems we&#x27;re getting. It might also mean more creative
approaches to solving the growing transportation challenges that people face
every day.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;special-thanks-to&quot;&gt;Special Thanks To&lt;a class=&quot;zola-anchor&quot; href=&quot;#special-thanks-to&quot; aria-label=&quot;Anchor link for: special-thanks-to&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Justin for:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Inspiring this dive in the first place&lt;&#x2F;li&gt;
&lt;li&gt;Sharing your insights and concerns, particularly around the McGill paper&lt;&#x2F;li&gt;
&lt;li&gt;Reviewing my drafts, and always being willing to chat&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Amy for:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Listening to me rant, at any time of day&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Mitch for:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;A very relevant Gilles Duceppe meme&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;references&quot;&gt;References&lt;a class=&quot;zola-anchor&quot; href=&quot;#references&quot; aria-label=&quot;Anchor link for: references&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;1&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;1&lt;&#x2F;sup&gt;
&lt;p&gt;Alto (2026). &lt;em&gt;Alto: Shaping Canada&#x27;s Future With a High-Speed Train&lt;&#x2F;em&gt;. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.altotrain.ca&#x2F;en&quot;&gt;https:&#x2F;&#x2F;www.altotrain.ca&#x2F;en&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;2&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;2&lt;&#x2F;sup&gt;
&lt;p&gt;Toronto Transit Commission (2026, April 02). &lt;em&gt;Information about TTC fares and passes&lt;&#x2F;em&gt;. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.ttc.ca&#x2F;Fares-and-passes&quot;&gt;https:&#x2F;&#x2F;www.ttc.ca&#x2F;Fares-and-passes&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;3&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;3&lt;&#x2F;sup&gt;
&lt;p&gt;Statistics Canada (2025, May 01). &lt;em&gt;Income of individuals by age group, sex and income source, Canada, provinces and selected census metropolitan areas.&lt;&#x2F;em&gt; &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www150.statcan.gc.ca&#x2F;t1&#x2F;tbl1&#x2F;en&#x2F;tv.action?pid=1110023901&quot;&gt;https:&#x2F;&#x2F;www150.statcan.gc.ca&#x2F;t1&#x2F;tbl1&#x2F;en&#x2F;tv.action?pid=1110023901&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;4&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;4&lt;&#x2F;sup&gt;
&lt;p&gt;Alto (high-speed rail) (2026, April 04). In &lt;em&gt;Wikipedia&lt;&#x2F;em&gt;. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;w&#x2F;index.php?title=Alto_(high-speed_rail)&amp;amp;oldid=1346827990&quot;&gt;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;w&#x2F;index.php?title=Alto_(high-speed_rail)&amp;amp;oldid=1346827990&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;5&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;5&lt;&#x2F;sup&gt;
&lt;p&gt;Billie Zhang, Hisham Negm, &amp;amp; Ahmed El-Geneidy (2025). &lt;em&gt;High-Speed Rail in Canada: Insights from a corridorwide survey &amp;amp; a financial analysis&lt;&#x2F;em&gt;. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;tram.mcgill.ca&#x2F;Research&#x2F;Surveys&#x2F;HSR_REPORT_2026.pdf&quot;&gt;https:&#x2F;&#x2F;tram.mcgill.ca&#x2F;Research&#x2F;Surveys&#x2F;HSR_REPORT_2026.pdf&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;6&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;6&lt;&#x2F;sup&gt;
&lt;p&gt;VIA Rail (2024, March 21). &lt;em&gt;2023 ANNUAL REPORT&lt;&#x2F;em&gt;. VIA Rail Canada. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;media.viarail.ca&#x2F;sites&#x2F;default&#x2F;files&#x2F;publications&#x2F;397_034_VIARAIL_ANNUAL-REPORT-2023.pdf&quot;&gt;https:&#x2F;&#x2F;media.viarail.ca&#x2F;sites&#x2F;default&#x2F;files&#x2F;publications&#x2F;397_034_VIARAIL_ANNUAL-REPORT-2023.pdf&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;7&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;7&lt;&#x2F;sup&gt;
&lt;p&gt;Cadence (2025). &lt;em&gt;About us&lt;&#x2F;em&gt;. Cadence. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;cadence.info&#x2F;en&#x2F;about-us&quot;&gt;https:&#x2F;&#x2F;cadence.info&#x2F;en&#x2F;about-us&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;8&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;8&lt;&#x2F;sup&gt;
&lt;p&gt;The Embassy of Japan in Canada [@japan_embassy_canada] (2026). &lt;em&gt;Can Japan contribute to high speed rail in Canada? We welcome your comments&lt;&#x2F;em&gt; [Photograph]. Instagram. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.instagram.com&#x2F;p&#x2F;DWcbL0BDZr1&quot;&gt;https:&#x2F;&#x2F;www.instagram.com&#x2F;p&#x2F;DWcbL0BDZr1&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;9&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;9&lt;&#x2F;sup&gt;
&lt;p&gt;VIA Rail (2026). &lt;em&gt;Canada Strong Pass&lt;&#x2F;em&gt;. VIA Rail Canada. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.viarail.ca&#x2F;en&#x2F;offers&#x2F;canada-strong-pass&quot;&gt;https:&#x2F;&#x2F;www.viarail.ca&#x2F;en&#x2F;offers&#x2F;canada-strong-pass&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;10&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;10&lt;&#x2F;sup&gt;
&lt;p&gt;Jean Dupuis (2015, August 31). &lt;em&gt;VIA Rail Canada Inc. and the Future of Passenger Rail in Canada.&lt;&#x2F;em&gt; Parliamentary Information and Research Service. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;lop.parl.ca&#x2F;staticfiles&#x2F;PublicWebsite&#x2F;Home&#x2F;ResearchPublications&#x2F;BackgroundPapers&#x2F;PDF&#x2F;2015-55-e.pdf&quot;&gt;https:&#x2F;&#x2F;lop.parl.ca&#x2F;staticfiles&#x2F;PublicWebsite&#x2F;Home&#x2F;ResearchPublications&#x2F;BackgroundPapers&#x2F;PDF&#x2F;2015-55-e.pdf&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;11&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;11&lt;&#x2F;sup&gt;
&lt;p&gt;Wendover Productions. &lt;em&gt;Videos&lt;&#x2F;em&gt; [YouTube Channel]. Retrieved April 04, 2026, from &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;@Wendoverproductions&#x2F;videos&quot;&gt;https:&#x2F;&#x2F;www.youtube.com&#x2F;@Wendoverproductions&#x2F;videos&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;12&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;12&lt;&#x2F;sup&gt;
&lt;p&gt;CBC News. (2026, March 31). &lt;em&gt;Poilievre holds news conference in Peterborough, Ont.&lt;&#x2F;em&gt; [Video]. YouTube. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=gE6J9kReZic&quot;&gt;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=gE6J9kReZic&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;13&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;13&lt;&#x2F;sup&gt;
&lt;p&gt;Murphy, J, Yousif, N. (2026, March 11). &lt;em&gt;Carney inches closer to majority, as fourth MP defects to Liberals.&lt;&#x2F;em&gt; BBC News. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.bbc.com&#x2F;news&#x2F;articles&#x2F;c0e5jwz0703o&quot;&gt;https:&#x2F;&#x2F;www.bbc.com&#x2F;news&#x2F;articles&#x2F;c0e5jwz0703o&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
&lt;div class=&quot;footnote-definition&quot; id=&quot;14&quot;&gt;&lt;sup class=&quot;footnote-definition-label&quot;&gt;14&lt;&#x2F;sup&gt;
&lt;p&gt;Prime Minister of Canada (2025, February 19). &lt;em&gt;Canada is getting high-speed rail&lt;&#x2F;em&gt;. Government of Canada. &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.pm.gc.ca&#x2F;en&#x2F;news&#x2F;news-releases&#x2F;2025&#x2F;02&#x2F;19&#x2F;canada-getting-high-speed&quot;&gt;https:&#x2F;&#x2F;www.pm.gc.ca&#x2F;en&#x2F;news&#x2F;news-releases&#x2F;2025&#x2F;02&#x2F;19&#x2F;canada-getting-high-speed&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;div&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>Yet Another (N)Vim Config</title>
		<published>2026-03-22T00:00:00+00:00</published>
		<updated>2026-03-22T00:00:00+00:00</updated>
		<link rel="alternate" type="text/html" href="https://ecocode.ca/posts/yet-another-nvim-config/"/>
		<id>https://ecocode.ca/posts/yet-another-nvim-config/</id>
    
		<content type="html" xml:base="https://ecocode.ca/posts/yet-another-nvim-config/">&lt;h1 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;You can find my configs for everything
&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;threexc&#x2F;configs&quot;&gt;here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;the-basic-vim-config&quot;&gt;The Basic Vim Config&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-basic-vim-config&quot; aria-label=&quot;Anchor link for: the-basic-vim-config&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;I&#x27;ve used Vim since about 2018. Over these last eight years, my Vim config has
changed very little. Here&#x27;s the entire .vimrc as of today:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;quot; Make sure Python virtualenvs don&amp;#39;t throw a warning when starting vim.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;if exists(&amp;#39;$VIRTUAL_ENV&amp;#39;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    let &amp;amp;pythonthreedll = system(&amp;quot;find &#x2F;usr&#x2F;lib64 -name &amp;#39;libpython3.*.so.1.0&amp;#39; | tail -1 | tr -d &amp;#39;\n&amp;#39;&amp;quot;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    python3 &amp;lt;&amp;lt; EOF&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;import sys&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;import sysconfig&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sys.path.insert(0, sysconfig.get_path(&amp;#39;purelib&amp;#39;, vars={&amp;#39;base&amp;#39;: &amp;#39;&#x2F;usr&amp;#39;, &amp;#39;platbase&amp;#39;: &amp;#39;&#x2F;usr&amp;#39;}))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;EOF&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;endif&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;quot; Uncomment this instead if using neovim:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;quot; if exists(&amp;#39;$VIRTUAL_ENV&amp;#39;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;quot;    let g:python3_host_prog = &amp;#39;&#x2F;usr&#x2F;bin&#x2F;python3&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;quot; endif&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;execute pathogen#infect()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;syntax on&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;colorscheme desert&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&amp;quot; Use filetype detection and file-based automatic indenting&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;if has(&amp;#39;filetype&amp;#39;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    filetype plugin indent on&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;endif&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set autoindent          &amp;quot; automatically indent&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set hidden              &amp;quot; allow switching buffers without saving&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set hlsearch            &amp;quot; highlight search results&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set ignorecase          &amp;quot; case-insensitive search...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set incsearch           &amp;quot; show search results as you type&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set mouse=              &amp;quot; disable mouse&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set pastetoggle=&amp;lt;F2&amp;gt;    &amp;quot; hotkey for paste mode to avoid extra indentation&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set ruler               &amp;quot; show cursor position in status bar (redundant with airline but harmless)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set scrolloff=5         &amp;quot; keep 5 lines visible above&#x2F;below cursor when scrolling&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set smartcase           &amp;quot; ...unless you use uppercase in the search term&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set textwidth=80        &amp;quot; wrap width&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set updatetime=100      &amp;quot; reduce time between updates from 4000ms to 100ms&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set visualbell          &amp;quot; don&amp;#39;t beep&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set wildmenu            &amp;quot; better tab completion in command mode&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;if has(&amp;quot;autocmd&amp;quot;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    &amp;quot; Use actual tab chars in Makefiles&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    autocmd FileType make setlocal tabstop=8 shiftwidth=8 softtabstop=0 noexpandtab&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    autocmd FileType c    setlocal tabstop=8 shiftwidth=8 softtabstop=8 noexpandtab&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    autocmd FileType python setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    autocmd FileType rust   setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    autocmd FileType yaml   setlocal tabstop=2 shiftwidth=2 softtabstop=2 expandtab&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    autocmd BufNewFile,BufRead *.v,*.vs setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;endif&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;let g:airline_powerline_fonts = 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;with the following installed as plugins:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;fugitive&lt;&#x2F;li&gt;
&lt;li&gt;nerdtree&lt;&#x2F;li&gt;
&lt;li&gt;vim-airline&lt;&#x2F;li&gt;
&lt;li&gt;vim-gitgutter&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;switching-to-neovim&quot;&gt;Switching to NeoVim&lt;a class=&quot;zola-anchor&quot; href=&quot;#switching-to-neovim&quot; aria-label=&quot;Anchor link for: switching-to-neovim&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;There have been times when I&#x27;ve made an attempt to switch to NeoVim, but I&#x27;ve
always found the popular distros to be too much even on first install - there
are a lot of changes and new features that feel too different from the default
Vim behaviour I expect on a random system. Now that I use Claude for a bit of
pair programming and clean-up, I asked it about how I could achieve a similar
minimal setup with NeoVim. It gave me this config structure:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&#x2F;home&#x2F;tgamblin&#x2F;.config&#x2F;nvim&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;├── init.lua&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;└── lua&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    └── plugins.lua&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;and these files:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;init.lua&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Bootstrap lazy.nvim&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;local lazypath = vim.fn.stdpath(&amp;quot;data&amp;quot;) .. &amp;quot;&#x2F;lazy&#x2F;lazy.nvim&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;if not vim.loop.fs_stat(lazypath) then&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    vim.fn.system({&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        &amp;quot;git&amp;quot;, &amp;quot;clone&amp;quot;, &amp;quot;--filter=blob:none&amp;quot;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        &amp;quot;https:&#x2F;&#x2F;github.com&#x2F;folke&#x2F;lazy.nvim.git&amp;quot;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        &amp;quot;--branch=stable&amp;quot;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        lazypath,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    })&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;end&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.rtp:prepend(lazypath)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Load plugins&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;require(&amp;quot;lazy&amp;quot;).setup(&amp;quot;plugins&amp;quot;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Appearance&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.cmd(&amp;quot;colorscheme desert&amp;quot;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.number         = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.ruler          = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.visualbell     = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.colorcolumn    = &amp;quot;81&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Editing behaviour&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.autoindent     = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.textwidth      = 80&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.scrolloff      = 5&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.hidden         = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.mouse          = &amp;quot;&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Search&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.hlsearch       = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.incsearch      = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.ignorecase     = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.smartcase      = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.wildmenu       = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Performance&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.opt.updatetime     = 100&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Filetype-specific indentation&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.api.nvim_create_augroup(&amp;quot;FileTypeIndent&amp;quot;, { clear = true })&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Use Esc to exit terminal mode&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.api.nvim_set_keymap(&amp;#39;t&amp;#39;, &amp;#39;&amp;lt;Esc&amp;gt;&amp;#39;, &amp;#39;&amp;lt;C-\\&amp;gt;&amp;lt;C-n&amp;gt;&amp;#39;, {noremap = true})&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;local function set_indent(pattern, opts)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    vim.api.nvim_create_autocmd(&amp;quot;FileType&amp;quot;, {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        group = &amp;quot;FileTypeIndent&amp;quot;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        pattern = pattern,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        callback = function()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            vim.opt_local.tabstop     = opts.tabstop&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            vim.opt_local.shiftwidth  = opts.shiftwidth&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            vim.opt_local.softtabstop = opts.softtabstop&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            vim.opt_local.expandtab   = opts.expandtab&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        end,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    })&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;end&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set_indent(&amp;quot;make&amp;quot;,   { tabstop=8, shiftwidth=8, softtabstop=0, expandtab=false })&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set_indent(&amp;quot;c&amp;quot;,      { tabstop=8, shiftwidth=8, softtabstop=8, expandtab=false })&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set_indent(&amp;quot;python&amp;quot;, { tabstop=4, shiftwidth=4, softtabstop=4, expandtab=true  })&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set_indent(&amp;quot;rust&amp;quot;,   { tabstop=4, shiftwidth=4, softtabstop=4, expandtab=true  })&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;set_indent(&amp;quot;yaml&amp;quot;,   { tabstop=2, shiftwidth=2, softtabstop=2, expandtab=true  })&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Verilog files (.v, .vs)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.api.nvim_create_autocmd({&amp;quot;BufNewFile&amp;quot;, &amp;quot;BufRead&amp;quot;}, {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    group = &amp;quot;FileTypeIndent&amp;quot;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    pattern = {&amp;quot;*.v&amp;quot;, &amp;quot;*.vs&amp;quot;},&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    callback = function()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        vim.opt_local.tabstop     = 4&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        vim.opt_local.shiftwidth  = 4&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        vim.opt_local.softtabstop = 4&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        vim.opt_local.expandtab   = true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    end,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;})&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;code&gt;plugins.lua&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;return {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -- Statusline&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        &amp;quot;vim-airline&#x2F;vim-airline&amp;quot;,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        dependencies = { &amp;quot;vim-airline&#x2F;vim-airline-themes&amp;quot; },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        config = function()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            vim.g.airline_powerline_fonts = 1&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        end,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -- Git&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    { &amp;quot;tpope&#x2F;vim-fugitive&amp;quot; },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        &amp;quot;lewis6991&#x2F;gitsigns.nvim&amp;quot;,  -- gitgutter equivalent, native neovim plugin&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        config = function()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;            require(&amp;quot;gitsigns&amp;quot;).setup()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        end,&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    -- tpope essentials&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    { &amp;quot;tpope&#x2F;vim-surround&amp;quot; },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    { &amp;quot;tpope&#x2F;vim-commentary&amp;quot; },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    { &amp;quot;tpope&#x2F;vim-repeat&amp;quot; },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    { &amp;quot;tpope&#x2F;vim-sleuth&amp;quot; },&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;It seems like a nice upgrade, but the differences are subtle. Terminal Mode got
me at first. Note this part&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo z-code&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;-- Use Esc to exit terminal mode&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;vim.api.nvim_set_keymap(&amp;#39;t&amp;#39;, &amp;#39;&amp;lt;Esc&amp;gt;&amp;#39;, &amp;#39;&amp;lt;C-\\&amp;gt;&amp;lt;C-n&amp;gt;&amp;#39;, {noremap = true})&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h1 id=&quot;more&quot;&gt;More?&lt;a class=&quot;zola-anchor&quot; href=&quot;#more&quot; aria-label=&quot;Anchor link for: more&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;I think at this point this may be the heaviest I want to make my editor, but
we&#x27;ll see. Maybe I&#x27;ll publish it with a setup script as an alternative to the
bigger options. There are also still a lot of shortcuts in Vim I ought to make
much better use of before trying to add extra stuff. There&#x27;s a great reference
&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;vim.rtorr.com&#x2F;&quot;&gt;here&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>The Birds Are Back</title>
		<published>2026-03-19T00:00:00+00:00</published>
		<updated>2026-03-19T00:00:00+00:00</updated>
		<link rel="alternate" type="text/html" href="https://ecocode.ca/posts/the-birds-are-back/"/>
		<id>https://ecocode.ca/posts/the-birds-are-back/</id>
    
		<content type="html" xml:base="https://ecocode.ca/posts/the-birds-are-back/">&lt;p&gt;There are two birds in this picture:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ecocode.ca&#x2F;posts&#x2F;the-birds-are-back&#x2F;march_cardinal.jpg&quot; alt=&quot;One Handsome Fellow&quot; title=&quot;A northern cardinal&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;A small number have been around all winter, but activity has really
picked up again in the last week or so. The temptation is there to
assume there&#x27;s a seasonal pattern for certain species like the grackles
(who spend a lot of time bullying others off of the blue feeder), and
there might be. There may also be some other place they like to be which
hasn&#x27;t provided food for them recently (further research may confirm).
It seems that I was wrong about them not liking this mixed bird seed
too.&lt;&#x2F;p&gt;
&lt;p&gt;So far we&#x27;ve seen:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Both cardinals&lt;&#x2F;li&gt;
&lt;li&gt;Grackles&lt;&#x2F;li&gt;
&lt;li&gt;Black-capped chickadees&lt;&#x2F;li&gt;
&lt;li&gt;Some unrecognized small brown bird (House Wren or Eastern Phoebe,
maybe)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;On the ground, in addition to squirrels and the neighbourhood cats,
we&#x27;ve also had repeat visits from this one:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ecocode.ca&#x2F;posts&#x2F;the-birds-are-back&#x2F;rabbit.jpg&quot; alt=&quot;The Rabbit&quot; title=&quot;The Rabbit&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>Backyard Ecology: Fauna</title>
		<published>2025-12-20T00:00:00+00:00</published>
		<updated>2025-12-20T00:00:00+00:00</updated>
		<link rel="alternate" type="text/html" href="https://ecocode.ca/posts/backyard-ecology-fauna/"/>
		<id>https://ecocode.ca/posts/backyard-ecology-fauna/</id>
    
		<content type="html" xml:base="https://ecocode.ca/posts/backyard-ecology-fauna/">&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;2025 was a busy year, and few of the ecological study ideas laid out in
my &lt;a href=&quot;https:&#x2F;&#x2F;ecocode.ca&#x2F;posts&#x2F;backyard-ecology-fauna&#x2F;@content&#x2F;posts&#x2F;backyard_ecology_ideas&#x2F;index.md&quot;&gt;previous post&lt;&#x2F;a&gt; got
implemented. However, we have taken to the millenial memetic trend of
birdwatching, and as of writing this we have three bird feeders around
the house. We&#x27;ve been enthusiastically keeping track of their usage
since the spring, noting the coming and going of different species of
birds (and squirrels), and making sure to fill them regularly so that
the birds know to keep visiting. The highlight of 2025 was probably
seeing three blue jays at once, hanging around the big (and
coincidentally, also blue!) feeder near the back deck.&lt;&#x2F;p&gt;
&lt;p&gt;This got me thinking about more formally tracking the species we see and
comparing them against currently understood ranges. When I was younger, I
had a hardcover edition of the book &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.simonandschuster.ca&#x2F;books&#x2F;North-American-Wildlife&#x2F;Readers-Digest&#x2F;Readers-Digest&#x2F;9781606524916&quot;&gt;Reader&#x27;s Digest North American
Wildlife&lt;&#x2F;a&gt;,
which I poured over obsessively - particularly the sections on sharks -
in the way only a nerdy kid can. I picked up a newer edition a while
back, but only recently remembered I had it, and I figured it&#x27;d be a good
starting point. At the very least, it would be a reference I could use
to speculate on changing ecologies in the area.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;caveats&quot;&gt;Caveats&lt;a class=&quot;zola-anchor&quot; href=&quot;#caveats&quot; aria-label=&quot;Anchor link for: caveats&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Our birding observations are pretty qualitative, and there are some
other limitations to keep in mind:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Tracking exact population numbers of different species is going to be
hard, beyond noting the maximum number of the same species seen at
one time;&lt;&#x2F;li&gt;
&lt;li&gt;Some animals may come and go, whether seasonally, because of other
opportunities, territorial changes, predation, or other factors. For
example, it seems we&#x27;ve barely seen any of the slightly larger birds
since the first major snowfall, despite the feeder being filled;&lt;&#x2F;li&gt;
&lt;li&gt;The type of feed we fill the feeders with may limit which kinds of
birds appear at all - for example, at first we used exclusively
sunflower and saw mostly grackles and mourning doves, but now we
don&#x27;t see the latter.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Most of this data will be from Wikipedia for now - eventually I&#x27;ll get
pictures of the actual animals. I&#x27;ll also make a point to come back and
update it as things change.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;birds&quot;&gt;Birds&lt;a class=&quot;zola-anchor&quot; href=&quot;#birds&quot; aria-label=&quot;Anchor link for: birds&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;img width=600&#x2F;&gt;Name&lt;&#x2F;th&gt;&lt;th&gt;Image&lt;&#x2F;th&gt;&lt;th&gt;Quantity&lt;&#x2F;th&gt;&lt;th&gt;Comments&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Blue_jay&quot;&gt;Blue Jay&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;b&#x2F;bb&#x2F;Blue_jay_in_Central_Park_%2816465%29.jpg&quot; alt=&quot;Blue Jay&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;3+&lt;&#x2F;td&gt;&lt;td&gt;Possibly more than this number&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Northern_cardinal&quot;&gt;Northern Cardinal&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;5&#x2F;5c&#x2F;Male_northern_cardinal_in_Central_Park_%2852612%29.jpg&quot; alt=&quot;Northern Cardinal&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;2+&lt;&#x2F;td&gt;&lt;td&gt;Mated pair, present since at least 2024&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Common_grackle&quot;&gt;Common Grackle&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;6&#x2F;6f&#x2F;Common_grackle_in_PP_%2836732%29.jpg&quot; alt=&quot;Common Grackle&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;5+&lt;&#x2F;td&gt;&lt;td&gt;Originally had monopoly on feeder; helped mourning doves with feeding. Moved on after seed change&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Mourning_dove&quot;&gt;Mourning Dove&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;a&#x2F;aa&#x2F;Av_Mourning_Dove_JG.jpg&quot; alt=&quot;Mourning Dove&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;4+&lt;&#x2F;td&gt;&lt;td&gt;One may have been taken by a neighbourhood cat&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;American_goldfinch&quot;&gt;American Goldfinch&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;d&#x2F;d9&#x2F;Carduelis_tristis_-Michigan%2C_USA_-male-8.jpg&quot; alt=&quot;American Goldfinch&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;5+&lt;&#x2F;td&gt;&lt;td&gt;Hard to track, very skittish&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Black-capped_chickadee&quot;&gt;Black-capped Chickadee&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;4&#x2F;4a&#x2F;Poecile-atricapilla-001.jpg&quot; alt=&quot;Black-capped Chickadee&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;10+&lt;&#x2F;td&gt;&lt;td&gt;Lots - possibly the most common visitor. Could also be a &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Boreal_chickadee&quot;&gt;Boreal Finch&lt;&#x2F;a&gt; or two, but slightly outside range&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;American_robin&quot;&gt;American Robin&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;9&#x2F;97&#x2F;American_robin_%2871307%29.jpg&quot; alt=&quot;American Robin&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;2+&lt;&#x2F;td&gt;&lt;td&gt;Don&#x27;t actually visit the feeder, but frequently around. Nesting mated pair in our garage two years in a row (2023, 2024)&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;One of the most interesting observations has been how the birds
cooperate - the mourning doves can&#x27;t actually sit on the feeder&#x27;s rim
themselves, but the grackles and others drop enough seeds to the ground
that there&#x27;s often a few doves and others milling about below.  There
also seems to be a bird or two keeping watch from the shed&#x27;s roof in
such scenarios, in case a predator comes along.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;mammals&quot;&gt;Mammals&lt;a class=&quot;zola-anchor&quot; href=&quot;#mammals&quot; aria-label=&quot;Anchor link for: mammals&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;img width=600&#x2F;&gt;Name&lt;&#x2F;th&gt;&lt;th&gt;Image&lt;&#x2F;th&gt;&lt;th&gt;Quantity&lt;&#x2F;th&gt;&lt;th&gt;Comments&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Eastern_gray_squirrel&quot;&gt;Eastern Grey Squirrel&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;a&#x2F;a1&#x2F;Black_squirrel_in_Santa_Clara_CA.jpg&quot; alt=&quot;Eastern Grey Squirrel (Black)&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;10+&lt;&#x2F;td&gt;&lt;td&gt;Mostly the melanistic variant, with a few grey-furred individuals too. Probably the most active and noisiest of the furry residents around. They often intentionally drop walnut seeds from the tree later in the year, which makes a loud &quot;thud&quot; when it hits the ground or a roof.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Eastern_chipmunk&quot;&gt;Eastern Chipmunk&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;c&#x2F;c4&#x2F;Chipmunk_with_stuffed_cheeks_in_Prospect_Park_%2805980%29.jpg&quot; alt=&quot;Eastern Chipmunk&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;2+&lt;&#x2F;td&gt;&lt;td&gt;Could be more than two, but they are much less prolific than the squirrels. More vulnerable to the neighbourhood cats.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Eastern_cottontail&quot;&gt;Eastern Cottontail&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;https:&#x2F;&#x2F;upload.wikimedia.org&#x2F;wikipedia&#x2F;commons&#x2F;c&#x2F;c2&#x2F;2025-04-27_10_27_04_An_Eastern_Cottontail_Rabbit_in_a_yard_along_Aquetong_Lane_in_the_Mountainview_section_of_Ewing_Township%2C_Mercer_County%2C_New_Jersey_%28cropped%29.jpg&quot; alt=&quot;Eastern Cottontail&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;2+&lt;&#x2F;td&gt;&lt;td&gt;Could be more than two. Originally spotted a mother and kit in 2024. Usually seen in evenings or at night.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Cat&quot;&gt;Domestic Cat&lt;&#x2F;a&gt;&lt;&#x2F;td&gt;&lt;td&gt;&lt;img src=&quot;morrison.jpg&quot; alt=&quot;an old man&quot; style=&quot;width:50%; height:auto;&quot;&gt;&lt;&#x2F;td&gt;&lt;td&gt;6+&lt;&#x2F;td&gt;&lt;td&gt;A somewhat-cheeky inclusion, but they &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.cbc.ca&#x2F;news&#x2F;canada&#x2F;kitchener-waterloo&#x2F;university-of-guelph-birds-killed-by-cats-each-year-9.6942108&quot;&gt;kill&lt;&#x2F;a&gt; a lot of other animals. The one pictured mostly chews on grass and sunbathes.&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h2 id=&quot;next&quot;&gt;Next&lt;a class=&quot;zola-anchor&quot; href=&quot;#next&quot; aria-label=&quot;Anchor link for: next&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;I know I&#x27;m missing some, so the lists will likely grow. There are a few
one-time encounters (a porcupine, raccoons on a night camera, etc.) I
didn&#x27;t include.&lt;&#x2F;p&gt;
&lt;p&gt;Need to think more about how to do:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Bugs and everything else&lt;&#x2F;li&gt;
&lt;li&gt;A corresponding flora list&lt;&#x2F;li&gt;
&lt;li&gt;Broader climate statistics - soil type, moisture, cover, microbiomes,
seasonal variations, etc.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>Thoughts on Backyard Ecology</title>
		<published>2025-05-26T00:00:00+00:00</published>
		<updated>2025-05-26T00:00:00+00:00</updated>
		<link rel="alternate" type="text/html" href="https://ecocode.ca/posts/backyard-ecology-ideas/"/>
		<id>https://ecocode.ca/posts/backyard-ecology-ideas/</id>
    
		<content type="html" xml:base="https://ecocode.ca/posts/backyard-ecology-ideas/">&lt;h1 id=&quot;introduction&quot;&gt;Introduction&lt;a class=&quot;zola-anchor&quot; href=&quot;#introduction&quot; aria-label=&quot;Anchor link for: introduction&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h1&gt;
&lt;p&gt;My wife and I bought a house in eastern Ontario during the spring of
2023, wanting to reduce the distance from friends and family while also
gaining some independence, particularly with being outdoors (our
apartment wasn&#x27;t great for that; I&#x27;m sure our dog and cat concur). Since
then we&#x27;ve been slowly determining what our backyard actually &lt;strong&gt;is&lt;&#x2F;strong&gt; to
us, and what we might do with it. This, combined with a fair amount of
reading about both traditional Indigenous knowledge and modern gardening
practices (where &quot;reading&quot; sometimes also means &quot;watching YouTube&quot;) has
led me to start viewing our backyard as an ecological system, and asking
myself how it relates to the others, along with the wider region.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;view-from-the-deck&quot;&gt;View From the Deck&lt;a class=&quot;zola-anchor&quot; href=&quot;#view-from-the-deck&quot; aria-label=&quot;Anchor link for: view-from-the-deck&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Here&#x27;s how it looked on the evening of April 28th, 2025.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ecocode.ca&#x2F;posts&#x2F;backyard-ecology-ideas&#x2F;20250428_194706.jpg&quot; alt=&quot;Backyard, Evening of April 28th, 2025&quot; title=&quot;Backyard, Evening of April 28th, 2025&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;And here&#x27;s how it looked a little over two weeks later (after partially
cutting the very long grass):&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ecocode.ca&#x2F;posts&#x2F;backyard-ecology-ideas&#x2F;20250520_125122.jpg&quot; alt=&quot;Backyard, Evening of May 20th, 2025&quot; title=&quot;Backyard, Evening of May 20th, 2025&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;ve been considering what it might mean to do a study on this kind of
environment, in a way that&#x27;s both useful to our future plans as stewards
of the space, and interesting to others who might&#x27;ve had the same idea.
This project would involve collecting quantitative data whenever
possible, composing it along with any other observations we can make.
To make it meaningful as an ecological (and maybe anthropological)
study, it&#x27;d need to:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Be accessible and repeatable by others without highly-technical
expertise;&lt;&#x2F;li&gt;
&lt;li&gt;Span multiple years and scopes;&lt;&#x2F;li&gt;
&lt;li&gt;Recognize our place within it, rather than impartial observers.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;I&#x27;m not formally trained in any sort of biology, ecology, or
environmental science program that would provide a foundation for this
project. However, the process should be doable with access to a library,
the Internet, and&#x2F;or others with similar experience. We need a good
template - probably a guide or two, with associated spreadsheets for
filling out all sorts of details about the backyard ecology. Keeping it
at this level means the digital tools will remain available from a web
browser and shouldn&#x27;t require more than a GMail account. I&#x27;ll have to
start developing a spreadsheet template soon, using observations from my
own backyard as a springboard.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;practical-considerations&quot;&gt;Practical Considerations&lt;a class=&quot;zola-anchor&quot; href=&quot;#practical-considerations&quot; aria-label=&quot;Anchor link for: practical-considerations&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Given that we live in the shadow of changing climates and
drastically-reduced habitat for wildlife, tracking observations across
multiple years seems critical for understanding our impact and changes
in the local area.
&lt;ul&gt;
&lt;li&gt;These can include anything from precipitation and temperature
extremes to the presence of specific species of bird, rodent, even
the odd sighting of larger fauna. I remember hearing on local
discussion groups about the presence of coyotes in town - I don&#x27;t
think they ever came near our house, but it&#x27;s worth noting, if for
no other reason than as part of a broader look at the region&#x27;s
environmental properties.&lt;&#x2F;li&gt;
&lt;li&gt;It&#x27;s also definitely worth tracking classifications that existing
organizations put out for the areas these backyards are located in.
I&#x27;m thinking things like &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;K%C3%B6ppen_climate_classification&quot;&gt;Köppen climate
classifications&lt;&#x2F;a&gt;
and &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;planthardiness.gc.ca&#x2F;?m=1&quot;&gt;Plant Hardiness Zones&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;The best way to track flora and fauna (other than visual
identification) might be by cross-referencing weight&#x2F;size&#x2F;dietary&#x2F;etc.
characteristics from Wikipedia, along with other traits as able&lt;&#x2F;li&gt;
&lt;li&gt;A camera capable of taking photos as much as every hour would be handy
for timelapse, and possibly motion-sensing&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;equipment-software-needs&quot;&gt;Equipment&#x2F;Software Needs&lt;a class=&quot;zola-anchor&quot; href=&quot;#equipment-software-needs&quot; aria-label=&quot;Anchor link for: equipment-software-needs&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Some&#x2F;all of the following would be useful:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;An IP camera that can be accessed via script - automatic, periodic
snapshot collection. Something with motion sense would be even better&lt;&#x2F;li&gt;
&lt;li&gt;A variety of instruments like soil samplers, rain gauges,
temperature sensors, and other IoT sensors (if we want to get really
detailed)&lt;&#x2F;li&gt;
&lt;li&gt;Public data on biomes, waterways, precipitation, wildlife ranges,
etc.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;As far as #1 goes, there are a lot of fairly cheap outdoor,
solar-powered IP security cameras available that might work. I couldn&#x27;t
find much for soil samplers (the closest I got was &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;soiltaxguys.com&#x2F;lawn-garden&#x2F;&quot;&gt;this
site&lt;&#x2F;a&gt;, but they seem more
large-scale farming oriented), but rain gauges and temperature
measurement are easy in theory. The public data might be a bit tricker
to collect and could be outdated (see the habitat maps in &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=hprN9oyEM7A&amp;amp;pp=ygUJYXRsYXMgcHJv&quot;&gt;this
video&lt;&#x2F;a&gt;
as an example).&lt;&#x2F;p&gt;
&lt;p&gt;The language of choice for developing any analysis tools is probably
Python - I&#x27;m comfortable with it and it&#x27;s easy for others to learn. In
addition to generating interesting plots, I&#x27;m also wondering about a
massive table contrasting the different physical and temporal
characteristics of things we find.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;similar-projects&quot;&gt;Similar Projects&lt;a class=&quot;zola-anchor&quot; href=&quot;#similar-projects&quot; aria-label=&quot;Anchor link for: similar-projects&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;I did some searching for the phrase &lt;code&gt;backyard ecology&lt;&#x2F;code&gt; in Google. The
top results seem to be mainly for helping backyard gardeners out, but
there are no deeply technical posts in the first few pages (maybe
there&#x27;s a reason for that and my approach will have issues). Plenty of
incredibly useful posts and videos, though. I did find
&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;gardenecology.pdx.edu&#x2F;backyard-ecology&#x2F;index.html&quot;&gt;this&lt;&#x2F;a&gt; page
from Portland State University. The website &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.backyardecology.net&#x2F;&quot;&gt;matching the search
phrase&lt;&#x2F;a&gt; is about providing a community
and resources for building vibrant backyard ecosystems.&lt;&#x2F;p&gt;
&lt;p&gt;Someone else made a nice &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;backyardecologist.com&#x2F;&quot;&gt;blog&lt;&#x2F;a&gt; covering
their experiences and tips on popular gardening topics. There&#x27;s also
Andrew Millison who has an active YouTube
&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;@amillison&quot;&gt;channel&lt;&#x2F;a&gt; and teaches some
&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;horticulture.oregonstate.edu&#x2F;users&#x2F;andrew-millison&quot;&gt;courses&lt;&#x2F;a&gt;
at Oregon State University. I don&#x27;t doubt that there are other resources
similar to my idea somewhere, but I&#x27;ll get started and look along the
way. Notably, searching for &lt;code&gt;backyard environmental study&lt;&#x2F;code&gt; seems to get
more content in psychology and news articles about academic programs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;impetus-or-a-source-of-guilt&quot;&gt;Impetus, or a Source of Guilt&lt;a class=&quot;zola-anchor&quot; href=&quot;#impetus-or-a-source-of-guilt&quot; aria-label=&quot;Anchor link for: impetus-or-a-source-of-guilt&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;The second picture above was taken following a near two-week journey to
France. There was a lot of rainfall during and after the trip, to the
point where much of the lawn had grown so tall that it looked more like
a forest meadow, and my unpowered mower wouldn&#x27;t cut it. While clearing
it with the snipper, I disturbed this creature
(&lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Northern_leopard_frog&quot;&gt;Wikipedia&lt;&#x2F;a&gt;):&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;ecocode.ca&#x2F;posts&#x2F;backyard-ecology-ideas&#x2F;20250520_120357.jpg&quot; alt=&quot;A resident northern leopard frog&quot; title=&quot;A resident
northern leopard frog&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;I felt bad about it, and it got me thinking of our goals. I&#x27;d like to
create a thriving little space for us and small critters, one that
avoids having another over-mowed lawn that&#x27;s desolate and uninteresting;
but it&#x27;s also important not to allow harmful and&#x2F;or invasive species (we
have a little creeping thistle and a lot of wild raspberry, among
others) to overrun it. In particular, I&#x27;m interested in seeing a lot
more butterflies around, which will require milkweed for monarchs and a
variety of other additions. Having detailed knowledge of the space
also seems crucial in our role as what are basically small-scale
terraformers, and key to a sense of belonging. My hope is that maybe
I&#x27;ll get skilled and methodical enough at this project that it&#x27;ll help
others do the same, and decades from now we&#x27;ll leverage all of this data
to help achieve a communal understanding of the world that helps some of
those solarpunk quasi-utopias of science fiction.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;a class=&quot;zola-anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link for: conclusion&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;That&#x27;s a scattered assortment of ideas and issues, and there&#x27;s probably
some stuff I&#x27;ve accidentally omitted.
Over the next while I&#x27;m going to start posting about more specific
adventures - things like camera setup and configuration, snapshots of
flora and fauna with details, and more. It might also make sense for me
to curate little lists of things I find useful and&#x2F;or related to the
project even if they aren&#x27;t used. We&#x27;ll see.&lt;&#x2F;p&gt;
</content>
	</entry>
	<entry xml:lang="en">
		<title>My Journey Into Open Source</title>
		<published>2024-11-03T00:00:00+00:00</published>
		<updated>2024-11-03T00:00:00+00:00</updated>
		<link rel="alternate" type="text/html" href="https://ecocode.ca/posts/my-journey/"/>
		<id>https://ecocode.ca/posts/my-journey/</id>
    
		<content type="html" xml:base="https://ecocode.ca/posts/my-journey/">&lt;h2 id=&quot;the-tl-dr&quot;&gt;The TL;DR&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-tl-dr&quot; aria-label=&quot;Anchor link for: the-tl-dr&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;One part schismogenesis, one part STEM education, and many parts
patience and good luck in the job market.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;beginnings&quot;&gt;Beginnings&lt;a class=&quot;zola-anchor&quot; href=&quot;#beginnings&quot; aria-label=&quot;Anchor link for: beginnings&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;I&#x27;m just barely old enough that being exposed to early versions of Linux
operating systems could&#x27;ve been possible, but that&#x27;s not how it
happened. While my first computer was a second-hand Commodore 64, and
the second (a year or two later) ran Windows 98 SE with a command
prompt, I didn&#x27;t even take advantage of access to the available tools
except to try and play video games. It wasn&#x27;t actually until I started
experimenting with more efficient messaging apps (and loading my systems
with plenty of viruses in the process) around 2009 that I learned it was
possible to run an operating system other than Windows on the computer
hardware I had.  During that year in university, I downloaded what at
the time was a recent Ubuntu release (based on the release history, I&#x27;m
guessing Ubuntu 8.04.2) and installed it on a spare laptop. However, I
didn&#x27;t have access to internet other than via a dial-up modem at home -
perks of growing up in rural New Brunswick - and my install didn&#x27;t seem
to include a driver for that, so (not knowing what else to do) I let it
sit for the summer.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;back-to-class&quot;&gt;Back to Class&lt;a class=&quot;zola-anchor&quot; href=&quot;#back-to-class&quot; aria-label=&quot;Anchor link for: back-to-class&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;The following term (fall 2010) I was registered in a full slate of
physics, mathematics, and computer science courses, and I became
convinced that using Linux and various open-source alternatives to
popular tools (e.g. GNU Octave instead of MATLAB or Maple) set me apart,
in a way that was a little elitist. I wasn&#x27;t even considering
open-source contributions yet, but I was breaking my operating system
installations (or at least putting them in strange states with no
backups) often enough to learn the basics of system administration and
what &lt;strong&gt;not&lt;&#x2F;strong&gt; to do. Combine that with Git basics and slowly figuring out
how to compile some things from source, it&#x27;d put me in better shape to
start doing these things full-time in a few years.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;professional-experience-and-personal-projects&quot;&gt;Professional Experience and Personal Projects&lt;a class=&quot;zola-anchor&quot; href=&quot;#professional-experience-and-personal-projects&quot; aria-label=&quot;Anchor link for: professional-experience-and-personal-projects&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;After a short, unpleasant experience as a junior developer at a drone
startup in Halifax, I ended up at a defense contractor in the Ottawa
area, where I picked up a bit more practice and a few new system admin
skills before becoming one of the go-to people in the organization for
system integration, probably because of my comfort with Linux systems
(even if they were old releases with limited support). This wasn&#x27;t a
great experience for me, so after a couple of years there I was actively
looking for a role elsewhere that might mean more open-source work with
different technology. I was getting pretty good at Googling topics
effectively here, though.&lt;&#x2F;p&gt;
&lt;p&gt;During this time I was starting some of my first personal projects with
Python - in particular some weather modeling using METAR and TAF data
from Canadian airports. I also continued insisting on using Python and C
programs written on whatever flavor of Ubuntu or Fedora I happened to be
using at the time to meet the needs of the masters program I had
started, rather than the recommended tooling available in university
computer labs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;my-first-yocto-patch&quot;&gt;My First Yocto Patch&lt;a class=&quot;zola-anchor&quot; href=&quot;#my-first-yocto-patch&quot; aria-label=&quot;Anchor link for: my-first-yocto-patch&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;The first real opportunity I got to contribute professionally to open
source was in 2019, nearly ten years after my first foray into personal
use of the operating system. I got hired at a large tech company to work
on their Yocto-based operating system, which meant submitting most of my
changes (usually recipe upgrades and CVE fixes) upstream first. I&#x27;m
pretty sure the very first Yocto patch I ever wrote was &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;git.openembedded.org&#x2F;openembedded-core&#x2F;commit&#x2F;?id=c2559ab9b41b823b23dc675745bbaefd45362a08&quot;&gt;this
one&lt;&#x2F;a&gt;,
updating ptest dependencies for gzip.&lt;&#x2F;p&gt;
&lt;p&gt;I was hooked at this point. It felt good to see my contributions not
only be displayed on a public repository alongside many other highly-skilled
and well-known developers, but to know that my changes (however niche)
were making their way into custom Linux systems of all sorts. It wasn&#x27;t
long before I was collaborating with others in the community to make
bigger changes, including taking on a bigger role as maintainer of the
meta-python layer and &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=luxMUcOB_JM&quot;&gt;presenting the
system&lt;&#x2F;a&gt; I used to do so at
a virtual conference during the COVID days.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;and-then&quot;&gt;And Then...&lt;a class=&quot;zola-anchor&quot; href=&quot;#and-then&quot; aria-label=&quot;Anchor link for: and-then&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Things got rockier over the next few years as I made a poor decision in
switching to another role for more money, but lost opportunities to work
on projects I found interesting and ended up resigning from my
maintainer roles not long after. I almost immediately sought to find my
way back, but it probably comes as no surprise that it took time to find
the right one. During all this, though, I wrote &lt;a rel=&quot;nofollow noreferrer external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;threexc&#x2F;routesignal&quot;&gt;the
code&lt;&#x2F;a&gt; for my masters&#x27; thesis in
Python and published it on GitHub. Someday I&#x27;ll hopefully go back and
reimagine it.&lt;&#x2F;p&gt;
&lt;p&gt;As of now I&#x27;m back contributing regularly to the Yocto Project, as well
as finally writing my first kernel drivers, which has been a huge
personal goal of mine for a long time. I&#x27;m sure my involvement in all
things Linux and embedded systems will only grow from here.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-point&quot;&gt;The Point?&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-point&quot; aria-label=&quot;Anchor link for: the-point&quot; style=&quot;visibility: hidden;&quot;&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;This post is a drawn-out way for me to say the following things to
others who might be struggling to find their way into open-source and&#x2F;or
a tech career that feels right:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;You don&#x27;t need to be doing this from a very young age to succeed (I
didn&#x27;t seriously start programming or playing with electronics until
my 20s);&lt;&#x2F;li&gt;
&lt;li&gt;It might take time - it was about a decade from the time I first
started experimenting with Linux until I got my first job where I
could get paid to contribute, and the job market seems to be
challenging even when you have a desirable set of skills on your
resume;&lt;&#x2F;li&gt;
&lt;li&gt;What you learn will serve you well, even if it isn&#x27;t the latest fad
technology. Compared to some of my peers, my career has been very
short, but even in that time I&#x27;ve seen a lot of tools and paradigms
come and go. Knowing how to debug and rule things out will always be
useful;&lt;&#x2F;li&gt;
&lt;li&gt;Doing this kind of work is &lt;strong&gt;hard&lt;&#x2F;strong&gt;, even when you&#x27;re an expert - try
not to be too harsh on yourself, because a) failure is often the best
way to learn, and b) even the experts will make mistakes, struggle, or
forget things they used to be good at.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
</content>
	</entry>
</feed>
