<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Palimpsest</title>
    <link>https://luis.apiolaza.net/</link>
    <description>Recent content on Palimpsest</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 07 Oct 2026 17:32:00 +1300</lastBuildDate>
    <atom:link href="https://luis.apiolaza.net/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>New journal article: optimizing your genetic archive</title>
      <link>https://luis.apiolaza.net/2026/09/08/new-journal-article-optimizing-your-genetic-archive/</link>
      <pubDate>Tue, 08 Sep 2026 20:15:30 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2026/09/08/new-journal-article-optimizing-your-genetic-archive/</guid>
      <description>&lt;p&gt;Breeding programs often keep an ex-situ &amp;ldquo;backup&amp;rdquo; of their breeding material.
In tree breeding, that archive is also used
for creating new genetic combinations (matings)
instead of working with the original genotypes that are in trials
in the boonies, the boondocks, the woops, the middle of nowhere.&lt;/p&gt;
&lt;p&gt;In the same way that you should not keep a single backup,
the breeding program keeps multiple copies of the genetic archives.
After a while, this occupies more and more room
and it turns out to be more and more expensive.&lt;/p&gt;
&lt;p&gt;This article explores optimization of the archive (using genomic data)
so we maintain as much as variability with as few individuals as possible.
The article is Open Access and is still subject to minor edits.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Duncan McLean, Mark F. Paget, Luis A. Apiolaza,
Ken G. Dodds &amp;amp; Sai Krishna Arojju. 2026.
Genomic diversity, trait–ancestry associations
and core subset optimization of &lt;em&gt;Pinus radiata&lt;/em&gt; germplasm in New Zealand.
Scientific Reports DOI: &lt;a href=&#34;https://doi.org/10.1038/s41598-026-69338-0&#34; rel=&#34;noopener external&#34;&gt;10.1038/s41598-026-69338-0&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This work was funded by the NZ Radiata Pine Breeding Company. Thanks to SAi Arojju for the final push to get this article over the line.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/corehunter.jpg&#34; alt=&#34;Core subsets for the 3 clusters of genetic material.&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>The article I didn&#39;t write</title>
      <link>https://luis.apiolaza.net/2026/09/03/the-article-i-didnt-write/</link>
      <pubDate>Thu, 03 Sep 2026 13:50:46 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2026/09/03/the-article-i-didnt-write/</guid>
      <description>&lt;p&gt;I am writing an article&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; on genetics of wood properties
and slowly doing a literature review when I can set a little time aside.
After looking in academic databases (Scopus and Google Scholar&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;)
I did a Google search, thinking
&amp;ldquo;perhaps people wrote something outside journals and conferences&amp;rdquo;.
Besides the typical junk results, there was the AI summary,
which I usually ignore.
However, this time I was curious, clicked on it
and ended up in a Gemini session.&lt;/p&gt;
&lt;p&gt;I tried to describe what I wanted and Gemini replied explaining me the topic.
No, I want journal articles. I got a link to one useful one,
but with the wrong authors, and three made up ones.
Nothing new here: LLM are designed to make up answers.
However, the following article caught my attention,
because I did not remember writing it and
&lt;em&gt;I was supposed to be the first author!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Strange how software can undermine reality.
I remember all the promise of the late 1990s Google search field;
now it&amp;rsquo;s a dumpster fire of misinformation and disinformation.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/spiderman.jpg&#34; alt=&#34;Two Spiderman meme: each one pointing out the other one&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I take ages writing articles, I think of the problem, meditate it
and it may take 5 years to see the light.
On top of that, I don&amp;rsquo;t like to write using a template.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;&amp;ldquo;Academic&amp;rdquo; between quotes, of course. It&amp;rsquo;s full of repeated papers, wrong attributions, etc.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    <item>
      <title>Jetsam 74: commuter selfie</title>
      <link>https://luis.apiolaza.net/2026/06/03/jetsam-74-commuter-selfie/</link>
      <pubDate>Wed, 03 Jun 2026 23:13:22 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2026/06/03/jetsam-74-commuter-selfie/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/bike-selfie.jpeg&#34; alt=&#34;Commuting selfie after noticing that I locked my bicycle only to my helmet. Super safe!&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>How does it fit?</title>
      <link>https://luis.apiolaza.net/2026/06/03/how-does-it-fit/</link>
      <pubDate>Wed, 03 Jun 2026 22:09:18 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2026/06/03/how-does-it-fit/</guid>
      <description>&lt;p&gt;There is a question, or group of questions,
that often comes up when chatting with colleagues and students:
How does X fit in the breeding program? or
How do you keep track of X, Y and Z in the breeding program?
or, even, How do you cope with so much stuff
that keeps on coming to the breeding program?
By the way, when I say breeding program,
I mostly mean the genetic evaluation part of the program,
which I consider the central (dare I say most important?) part.&lt;/p&gt;
&lt;p&gt;Now, to answer the question I have to acknowledge
that I&amp;rsquo; more of a mathematics than a biology person;
I like to learn a few basics from which I can derive everything else.
Therefore, unsurprisingly, I think of only two relationships
when talking about new(ish) technologies, drumroll&amp;hellip;&lt;/p&gt;
&lt;p&gt;the breeder&amp;rsquo;s equation (gain = intensity x accuracy x variability / time)
and the mixed model equations (y = Xb + Za + &amp;hellip; + e). Boring, I know.&lt;/p&gt;
&lt;p&gt;I turn whatever new element in two questions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;How will it affect gain by potentially changing variability,
accuracy, selection intensity or time to selection? and&lt;/li&gt;
&lt;li&gt;Where does it enter the mixed model equations?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have talked about the &lt;a href=&#34;https://luis.apiolaza.net/2023/11/11/at-the-core-of-your-breeding-programme/&#34;&gt;breeder&amp;rsquo;s equation before&lt;/a&gt;,
and keep in mind that I often think of the multivariate version,
because we are selecting for a selection index,
and working on improving a multitrait breeding objective.&lt;/p&gt;
&lt;p&gt;When talking about the mixed models, I think at two levels,
single environment and multienvironment. At the single location,
the model basically accounts for an experimental design,
a mating design (via pedigree/genomics) and a potentially very long etc.
Say we get LiDAR from drones then we can get more Xs in the model
(topographic indices from the DTM, competition from other individuals
from the crown height model, etc) but sometimes we get more Ys
(tree heights, for example). Or we get new assessments
from Near Infrared Spectroscopy from core samples: more Ys.
Or we get hyperspectral imaging which can produce more Xs
describing aspect of the terrain, and more Ys
as selection criteria for drought or disease, etc.&lt;/p&gt;
&lt;p&gt;Once we move across environments,
there is access to a huge amount of environmental datasets
(both climate and soil related) that can be used to explain
changes of ranking GIVEN that we have good connectedness between environments.
If we don&amp;rsquo;t, my assumption is that we are chasing statistical noise.&lt;/p&gt;
&lt;p&gt;After trying this for a while, it turns into a reflex.
Hey, what if we get data from &amp;ldquo;shiny new thing&amp;rdquo; now that&amp;rsquo;s a lot cheaper?
Use one side of a napkin to figure out how it affects the breeder&amp;rsquo;s equation,
and then the other side of the napkin to check implications
on the genetic evaluation system.&lt;/p&gt;
&lt;p&gt;In the old days you could have used an envelope or a cigarette pack
for writing and figuring out the problem,
but who posts stuff or smoke these days?&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/drone-control.jpeg&#34; alt=&#34;DJI drone controller&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Fresh from the oven</title>
      <link>https://luis.apiolaza.net/2026/05/26/fresh-from-the-oven/</link>
      <pubDate>Tue, 26 May 2026 21:18:20 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2026/05/26/fresh-from-the-oven/</guid>
      <description>&lt;p&gt;As a good cowboy—or is it stockman in Australia?—
&lt;a href=&#34;https://warnell.uga.edu/directory/people/dr-laurence-laurie-schimleck&#34; rel=&#34;noopener external&#34;&gt;Laurie Schimleck&lt;/a&gt;
rounded up a few of us to put together a review article on wood durability.
Due to various circumstances, it took a bit longer than expected
but finally came out! We just received
&lt;a href=&#34;https://rdcu.be/fkMGN&#34; rel=&#34;noopener external&#34;&gt;a free reading author link&lt;/a&gt; to share
&amp;ldquo;Heartwood Durability: The Quest for Natural Decay Resistance
in a Changing Resource&amp;rdquo; in Current Forestry Reports (2026) 12:15
(&lt;a href=&#34;https://link.springer.com/article/10.1007/s40725-026-00276-w&#34; rel=&#34;noopener external&#34;&gt;full article link&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Wood durability (from a breeding point of view)
picked my attention since around 2008,
when we started work with the New Zealand Dryland Forests Initiative (NZDFI).
Durable eucalypts are fantastic creatures,
with their own trade-offs and complications,
lots of Near Infrared Spectroscopy with students and colleagues,
and a few published articles and some in preparation.&lt;/p&gt;
&lt;p&gt;Thanks to Lauri for pushing us along.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/clemens-and-paul.jpeg&#34; alt=&#34;Time travel photo (2017): my colleagues Clemens Altaner (right, wood science) and Paul Millen (left, creator of NZDFI) at an update meeting with farm foresters in a Eucalyptus bosistoana progeny trial. Tree form is much better now, by the way&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Forestry is about people</title>
      <link>https://luis.apiolaza.net/2026/05/18/forestry-is-about-people/</link>
      <pubDate>Mon, 18 May 2026 17:34:21 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2026/05/18/forestry-is-about-people/</guid>
      <description>&lt;p&gt;I have heard that many times.
I’m sure that you have heard a variant of this phrase in your own work area;
simply replace &amp;lsquo;Forestry&amp;rsquo; with whatever you do. Truck driving is about people
or Nuclear engineering is about people.
However, when one works in research rarely are people the subject of study.
I work in the intersection of forestry, wood properties, quantitative genetics
and a long etcetera BUT I have never seen a study of people doing this stuff.
Instead, there are thousands of studies about
the weirdest details of that intersection.&lt;/p&gt;
&lt;p&gt;Last Wednesday, I was attending six presentations by undergraduate students
working in their dissertations (I am coordinator for that work in our School).
Remote sensing is very popular, economics and management are always there.
There was even a presentation on genetics of wood properties.
And then, gloriously, one of the students (Ruby Sumner) shared that
she did a Bachelor of Psychology before studying forestry
and that her dissertation was on the social impact
of forestry workers in their communities (supervised by Trevor Best).
I am the first to confess that I’m a quantitative person,
a numbers wallah if you will,
but I’m also willing to confess that I was very happy to hear
about this not-so-quantitative study.&lt;/p&gt;
&lt;p&gt;Dissertations are small projects and
I believe the subject deserves much more attention.
It will be a lot easier to say that forestry is about people
when we know what is happening to their lives, particularly forestry workers.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/forestry-students.jpeg&#34; alt=&#34;Forestry students in a tree breeding field visit. Drones are always cool&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Ah, learning</title>
      <link>https://luis.apiolaza.net/2026/04/25/ah-learning/</link>
      <pubDate>Sat, 25 Apr 2026 20:35:14 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2026/04/25/ah-learning/</guid>
      <description>&lt;p&gt;I keep on forgetting to write down the addresses of interesting resources
for writing and hand-coding&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://htmlforpeople.com/&#34; rel=&#34;noopener external&#34;&gt;HTML for People&lt;/a&gt; which is a good reminder
of how to put together websites using HTML. I know, on these AI days
one is almost automatically supposed to ask an LLM;
but I want to know how things work. Better, I want to remember
what I started learning 30 years ago.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://lazyvim-ambitious-devs.phillips.codes/&#34; rel=&#34;noopener external&#34;&gt;LazyVim for Ambitious Developers&lt;/a&gt;,
billed as &amp;lsquo;a course for the editor curious&amp;rsquo; and a pretty good introduction
to working with a great Neovim distribution.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://mohammeda.li/resources&#34; rel=&#34;noopener external&#34;&gt;Influential Engineering Resources&lt;/a&gt;
with links to books and blogposts on software engineering.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/lazyvim-book.jpg&#34; alt=&#34;Cover of the LazyVim book&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Fixing the pipeline, again</title>
      <link>https://luis.apiolaza.net/2026/03/13/fixing-the-pipeline-again/</link>
      <pubDate>Fri, 13 Mar 2026 11:31:30 +1300</pubDate>
      <guid>https://luis.apiolaza.net/2026/03/13/fixing-the-pipeline-again/</guid>
      <description>&lt;p&gt;All good with &lt;a href=&#34;https://luis.apiolaza.net/2026/02/28/fixing-my-pipeline/&#34;&gt;my pipeline&lt;/a&gt;
until I updated Hugo, and woke up a theme bug.
I was not really looking forward to updating Hugo,
but I run &lt;code&gt;brew upgrade&lt;/code&gt; and everything was dutifully updated.
Isn&amp;rsquo;t software marvelous? Well, there was a lurking bug in the Congo theme.
&lt;a href=&#34;https://github.com/jpanther/congo/issues/1149&#34; rel=&#34;noopener external&#34;&gt;Really&lt;/a&gt;,
and the theme has not been fixed yet.&lt;/p&gt;
&lt;p&gt;At the end I removed the theme, which was as a git submodule
(that&amp;rsquo;s a whole I hate git subplot),
cleaned the repository to remove all vestiges of the submodule,
downloaded the latest version of the not-yet-released version of the theme,
copied it under themes, deleted the 2 offending lines, git added the new version of the theme and the site works again. Finished at 12:30 am.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt; it all started when I run &lt;code&gt;hugo serve&lt;/code&gt; and got
&amp;ldquo;ERROR error building site: render: [en v1.0.0 guest] failed to render pages&amp;rdquo;
as an answer in Terminal. Tried a few times and the first fail was
always different, but always pointed to
&lt;code&gt;.../themes/congo/layouts/_partials/functions/warnings.html:10:6&lt;/code&gt;.
This led me to the theme error.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Complications:&lt;/strong&gt; The theme was installed as a git submodule that, first,
would not update. And, even worse, even the dev release didn&amp;rsquo;t include the fix.
Then the question was How to remove a submodule? According to a search,
I was supposed to &lt;em&gt;deinitialize&lt;/em&gt; the module, whatever that means,
using &lt;code&gt;git submodule deinit -f themename&lt;/code&gt;. This failed miserably,
so I first deleted the theme &lt;code&gt;rm -rf themes/congo&lt;/code&gt; and then
run &lt;code&gt;git submodule deinit -f themes/congo&lt;/code&gt;, which worked.&lt;/p&gt;
&lt;p&gt;After that, I think I removed the submodule from git using
&lt;code&gt;rm -rf .git/modules/themes/congo&lt;/code&gt;, followed by removing
the submodule from &lt;code&gt;.gitmodules&lt;/code&gt; by using
&lt;code&gt;git config -f .gitmodules --remove-section submodule.themes/congo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I added the whole shebang to git and commited the change.
Later, I copied the latest version of Congo under &lt;code&gt;themes&lt;/code&gt;
(just plain copy), deleted the offending lines, &lt;code&gt;git add&lt;/code&gt; and
&lt;code&gt;git commit&lt;/code&gt; the theme and, you know, it worked!&lt;/p&gt;
&lt;p&gt;Thanks to &lt;a href=&#34;https://www.baeldung.com/ops/git-submodule-add-remove&#34; rel=&#34;noopener external&#34;&gt;this page&lt;/a&gt;
for most of the fix.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/meccano.jpeg&#34; alt=&#34;Meccano set, from the time when it was much easier
to understand what was going on&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Influences 1</title>
      <link>https://luis.apiolaza.net/2026/03/11/influences-1/</link>
      <pubDate>Wed, 11 Mar 2026 19:29:19 +1300</pubDate>
      <guid>https://luis.apiolaza.net/2026/03/11/influences-1/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve used the notes on &amp;ldquo;Estimadores del valor genético aditivo en animales. I.
Una fuente de información&amp;rdquo; on and off for the last 34 years.&lt;/p&gt;
&lt;p&gt;Prof Ximena García gave me a copy when I was doing her course in 1992,
my last year of undergraduate forestry.
Funny thing is that this was a postgraduate course,
taught in the Department of Animal Production,
which was part of Agronomy, not Forestry. I took the course for no credits,
just for the fun of learning quantitative genetics.
Yes, it sounds weird when I put it that way.
We were only two students: a postgrad and myself, and we learnt a lot.&lt;/p&gt;
&lt;p&gt;There was a lot of doing his small things by hand,
like the regression of additive value on phenotype.
Typically the slope of a regression of Y on X is Cov(X,Y)/V(X), so&lt;/p&gt;
$$
\frac{Cov(P,A)}{V(P)} = \frac{Cov(A+D+I,A)}{V(P)} = \\
 \frac{Cov(A,A)+Cov(D,A)+Cov(I,A)}{V(P)} = \\
 \frac{Cov(A,A)+0+0}{V(P)} = \frac{V(A)}{V(P)} = h^2
$$&lt;p&gt;which helped me understand the idea of heritability; cool, I think.&lt;/p&gt;
&lt;p&gt;The cover has lost good part of its colour, and the pages are typewritten,
no fancy fonts for the huge number of equations.&lt;/p&gt;
&lt;p&gt;Thanks for the book, Ximena, which still is in my office bookshelf
after all these years.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/ximena.jpeg&#34; alt=&#34;Fading cover of the book&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Ubuntu update</title>
      <link>https://luis.apiolaza.net/2026/03/02/ubuntu-update/</link>
      <pubDate>Mon, 02 Mar 2026 22:49:12 +1300</pubDate>
      <guid>https://luis.apiolaza.net/2026/03/02/ubuntu-update/</guid>
      <description>&lt;p&gt;Today I installed &lt;code&gt;R&lt;/code&gt;, &lt;code&gt;r2u&lt;/code&gt;
(using the &lt;a href=&#34;https://github.com/eddelbuettel/r2u/blob/master/inst/scripts/add_cranapt_noble.sh&#34; rel=&#34;noopener external&#34;&gt;script&lt;/a&gt; for 24.04 LTS),
and &lt;code&gt;RStudio&lt;/code&gt;.
I also installed &lt;code&gt;neovim&lt;/code&gt; and &lt;code&gt;lazyvim&lt;/code&gt;, trying to keep basic feature parity
between my Ubuntu desktop and macbook.&lt;/p&gt;
&lt;p&gt;Talking about parity, dealing with &lt;code&gt;apt&lt;/code&gt;
(or &lt;code&gt;nala&lt;/code&gt; when dealing with larger programs) works really well
with system-wide stuff. However, installing smaller, newer stuff
feels very hacky (download this, move it there,
adjust whatever path, etc).&lt;/p&gt;
&lt;p&gt;I find using &lt;code&gt;brew&lt;/code&gt; much easier in this situation,
with the advantage that I end up with the same versions
in both desktop and laptop.&lt;/p&gt;
&lt;p&gt;Why &lt;code&gt;neovim&lt;/code&gt;? It&amp;rsquo;s part of my going back to the terminal
and reducing contact with Microsoft (sorry, &lt;code&gt;VS Code&lt;/code&gt;).
Lately I&amp;rsquo;ve felt this constant nagging from some companies
and living in a non-Microsoft environment feels peaceful
for a few hours a day.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/mega-blocks.jpg&#34; alt=&#34;Baby steps until I get comfortable&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>MKinfer: inferential statistics</title>
      <link>https://luis.apiolaza.net/2026/03/01/mkinfer-inferential-statistics/</link>
      <pubDate>Sun, 01 Mar 2026 18:30:49 +1300</pubDate>
      <guid>https://luis.apiolaza.net/2026/03/01/mkinfer-inferential-statistics/</guid>
      <description>&lt;p&gt;R package that includes the &lt;code&gt;MKinfer::perm.t.test()&lt;/code&gt; function
which performs one-sample and two-sample permutation t-tests,
including support for paired tests and confidence intervals.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Are you a cauliflower person</title>
      <link>https://luis.apiolaza.net/2026/03/01/are-you-a-cauliflower-person/</link>
      <pubDate>Sun, 01 Mar 2026 14:05:19 +1300</pubDate>
      <guid>https://luis.apiolaza.net/2026/03/01/are-you-a-cauliflower-person/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ll eat most &lt;em&gt;Brassica oleracea&lt;/em&gt; derivatives but kale.
You say broccoli? Cockily. Brussels sprouts? In great bouts!
Cauliflower? I&amp;rsquo;ll devour it.&lt;/p&gt;
&lt;p&gt;I enjoy reading good stories about breeding as much as, I don&amp;rsquo;t know,
my next door neighbour, but they have to be fun.
&lt;a href=&#34;https://worksinprogress.co/issue/sculpting-cabbages/&#34; rel=&#34;noopener external&#34;&gt;Meet your greens: How a single unappetizing shrub became dozens of different vegetables&lt;/a&gt;
kept me reading until the end, so I thought
more people who are into breeding things would appreciate it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/broccoli.jpeg&#34; alt=&#34;Dinner including plenty of broccoli&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Fixing my pipeline</title>
      <link>https://luis.apiolaza.net/2026/02/28/fixing-my-pipeline/</link>
      <pubDate>Sat, 28 Feb 2026 23:01:59 +1300</pubDate>
      <guid>https://luis.apiolaza.net/2026/02/28/fixing-my-pipeline/</guid>
      <description>&lt;p&gt;I want to like Hugo—or any static site generator + git system
for that matter—but it doesn&amp;rsquo;t quite flow;
it doesn&amp;rsquo;t feel like my own. So I checked what I was missing.&lt;/p&gt;
&lt;p&gt;My first obstacle was starting with the empty page,
so I needed to use a proper archetype:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;title&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;{{ strings.Replace (strings.Substr .Name 11) &amp;#34;&lt;/span&gt;-&lt;span class=&#34;s2&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34; | strings.FirstUpper }}&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;date&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;{{&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;.Date }}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;draft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;author&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;Luis&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;tags&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;!&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Caption here](/assets/images/image-here.jpeg)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But I also only wanted to type something like &lt;code&gt;newpost some-name&lt;/code&gt;
and still get the date at the beginning of the file name,
as in &lt;code&gt;2026-02-28-some-name.md&lt;/code&gt;. This needed to create a shell function
(in my case in &lt;code&gt;zsh&lt;/code&gt;), so I included the following in &lt;code&gt;~.zshrc&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-zsh&#34; data-lang=&#34;zsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;newpost&lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nv&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;post/&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;date -I&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;-&lt;span class=&#34;nv&#34;&gt;$1&lt;/span&gt;.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  hugo new &lt;span class=&#34;nv&#34;&gt;$name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  code content/&lt;span class=&#34;nv&#34;&gt;$name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;By the way, &lt;code&gt;code&lt;/code&gt; calls Visual Studio Code from the terminal.
I still need to fix other inconveniences,
but now it is a little less annoying to write posts.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Keeping up with research</title>
      <link>https://luis.apiolaza.net/2026/02/20/keeping-up-with-research/</link>
      <pubDate>Fri, 20 Feb 2026 18:00:00 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2026/02/20/keeping-up-with-research/</guid>
      <description>&lt;p&gt;It is impossible to be up to date in research. Some people try, but I gave up a long time ago. Even if my whole job was reduced to reading new material, I could not keep up with the volume of journal articles. The first time I was aware of this, it produced a sense of defeat or existential dread; it was overwhelming. Then I had to dig into my (theoretical) inner Buddhist and just let go: there is no point on keeping with the news.&lt;/p&gt;
&lt;p&gt;I convinced myself that it was much better to understand a small core of ideas—mostly the breeder&amp;rsquo;s equation, mixed linear models, context specific information about my crops—and the rest was anchoring new stuff into the core. Say that I got NIR spectra relationships; that&amp;rsquo;s new responses (y) in my model. Or genomic data, that&amp;rsquo;s a bunch of X, or simply a corrected pedigree or enriched numerator relationship matrix. Perhaps we got hyperspectral drone data; we have some new tree crown metrics that may end up as X, competition indices that may enrich the right-hand side of the models, etc.&lt;/p&gt;
&lt;p&gt;I believe one feels &amp;rsquo;less panicky&amp;rsquo; about new stuff if one can link it somewhere in the model, or graft it to one&amp;rsquo;s knowledge model, to sound like dealing with trees. I don&amp;rsquo;t need to keep on pressing Ctrl+R on new research, but only figure out it fits in my well-understood abstraction of the world.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/arborists.jpeg&#34; alt=&#34;The opposite of building the tree model: arborists disassembling trees that had been damaged by too many storms. Time to plant new trees.&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Less willing</title>
      <link>https://luis.apiolaza.net/2026/02/11/less-willing/</link>
      <pubDate>Wed, 11 Feb 2026 20:30:00 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2026/02/11/less-willing/</guid>
      <description>&lt;p&gt;One effect of AI, at least on me, is that I am less willing to write public posts.&lt;/p&gt;
&lt;p&gt;I have always liked making up stories and writing &amp;rsquo;explanations to myself&amp;rsquo;, so I do not forget how I fixed a problem. At the beginning, it was on paper, but then I had my first web page around 1996. Remember Geocities? This was followed by my first domain names in 2002. Posting on the web was good for me; I even got job offers from that.&lt;/p&gt;
&lt;p&gt;Lately, however, writing has been twisted into something else. The whole web, including this site, has been (and is being) absorbed by AI companies, so people can quickly regurgitate millions of blog posts, images, videos, &amp;hellip; content. Training material for placeholders to be sandwiched between ads.&lt;/p&gt;
&lt;p&gt;AI makes me question sharing and the idea of contributing to open culture, which is the complete opposite of what we wanted to do at the beginning of the internet. Anathema. Irony: LinkedIn offering me to rewrite this post with AI.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/mac-mini.jpeg&#34; alt=&#34;Not AI, but an old 2011 mac mini that I resuscitated with Linux. Instructions in old forum posts were very helpful to accomplish this task. Some of the new AI suggestions were a shitshow.&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Why the old is not yet new</title>
      <link>https://luis.apiolaza.net/2025/12/15/why-the-old-is-not-yet-new/</link>
      <pubDate>Mon, 15 Dec 2025 19:30:00 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2025/12/15/why-the-old-is-not-yet-new/</guid>
      <description>&lt;p&gt;The idea of using economically defined breeding objectives is 80 years old.BLUP is 70 years old, R and Python are over 30 years old, techniques for analyzing large numbers of markers are 25 years old.  And still you’ll find many breeding programmes that are not using some or all of these tools.&lt;/p&gt;
&lt;p&gt;What is relevant is when these tools are economically and technically feasible to be used. For some breeding programmes this is just happening now. Moreover, even now your use can be suboptimal because of software issues. Most software can’t integrate the complex models we need for MET and genomics when we have large numbers of genotyped individuals.&lt;/p&gt;
&lt;p&gt;Most crop breeding programmes don’t have economic weights for their traits. Many are not yet using animal model BLUP. Even fewer have &lt;em&gt;operational&lt;/em&gt; access to genomic data. There is a lot to be done. 😉&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Optimal</title>
      <link>https://luis.apiolaza.net/2025/09/23/optimal/</link>
      <pubDate>Tue, 23 Sep 2025 18:30:00 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2025/09/23/optimal/</guid>
      <description>&lt;p&gt;I think of myself as a &amp;ldquo;numbers wallah&amp;rdquo;&lt;sup&gt;*&lt;/sup&gt;,
a guy who deals with problems by turning them into maths of various kinds.
During the last 35 years, my kind of maths has mostly been statistics
mixed with quantitative genetics, which is a very useful combination.
But maths has been present in my life for longer, at least since high school.&lt;/p&gt;
&lt;p&gt;Thirty six years ago I was sitting an Optimization course,
as part of my forestry degree (sporting longer and darker hair,
equally nerdy, though). Linear programming, dynamic programming and simulation,
that kind of stuff.
I was fascinated by the subject and was going to do
my undergraduate thesis in some forest transportation problem.
But then came tree breeding and changed the direction of my life
(thanks, Roberto!).&lt;/p&gt;
&lt;p&gt;Last week, I was talking with a colleague visiting from Chile,
and we were talking about a harvesting optimization problem
with spatial constraints. I mean, he was doing all the work,
I was just throwing opinions about his objective function&amp;hellip;
And I remembered how much I liked this type of problems.
Together with working with forest mensuration students
and linking all this work to financial evaluations,
I have been rediscovering parts of forestry work
that I haven&amp;rsquo;t touched in a long time and that made me feel excited.
Now I am starting to read, a little bit, about optimization
and thinking of how to connect it to the rest of my work.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/maths-zoo.png&#34; alt=&#34;Saturday Morning Breakfast Cereal cartoon.&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;*&lt;/sup&gt;In the same way there are chaiwallahs or dabbawallahs.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Rain or shine</title>
      <link>https://luis.apiolaza.net/2025/08/20/rain-or-shine/</link>
      <pubDate>Wed, 20 Aug 2025 21:30:00 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2025/08/20/rain-or-shine/</guid>
      <description>&lt;p&gt;During the last week, we had 3 field activities
with forestry students of the University of Canterbury:
two trips to Bottle Lake Forest with first years doing Forest Mensuration
and a trip to Amberley with second years doing Introduction to Silviculture.&lt;/p&gt;
&lt;p&gt;The weather was spectacular for a winter day in Amberley,
where Shaf van Ballekom, manager of Proseed,
showed us the seed orchard and their propagation work.
It&amp;rsquo;s a great connection between Ngāi Tahu Farming and the School of Forestry.&lt;/p&gt;
&lt;p&gt;In contrast, the weather was subdued during our first visit to Bottle Lake
when learning to establish prism plots.
Later, it was cold (near 0°C) with some rain and even hail
during our second visit to practice flexible timber cruising.
We had good conversations with students,
sorting out why things were working well
or not working when compared to the classroom.
Kudos to Matt Deering (School of Forestry) for helping me
with 48 students in the mensuration activity.&lt;/p&gt;
&lt;p&gt;Cute detail: a few students thought that the last activity
was going to be cancelled because it was cold and rainy.
I pointed out the course outline and first lecture:
activities run &amp;ldquo;rain or shine&amp;rdquo; (unless it affects the safety of the activity).
Warm clothes, rain gear and a thermos with a hot drink
go a long way towards enjoyable time in the field.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/proseed_2025.jpeg&#34; alt=&#34;Nice day with students in Amberley.&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;
&lt;img src=&#34;https://luis.apiolaza.net/assets/images/bottle_lake_field_work_2025.jpeg&#34; alt=&#34;A not so nice day with students in Bottle Lake.&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Barely above sea level</title>
      <link>https://luis.apiolaza.net/2025/08/11/barely-above-sea-level/</link>
      <pubDate>Mon, 11 Aug 2025 18:30:00 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2025/08/11/barely-above-sea-level/</guid>
      <description>&lt;p&gt;Last Friday I went to Bottle Lake Forest,
a multipurpose plantation just at the edge of Christchurch.
Being next to the city, recreation is a very important activity
and there are plenty of walking and cycling trails.
I was there checking a stand
for taking the forest mensuration class for an activity,
looking at some bearings (road and stand were very neatly orientated)
and then I saw: 10 metres above sea level.&lt;/p&gt;
&lt;p&gt;Christchurch is a very flat city, next to the ocean,
but sometimes one loses the sense of how low we are.
I live at around 30 masl and last week we went up to 100 masl (!)
while driving 16 km. Low in productivity too;
we may need to adjust the age for running the growth models.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s very cool to have the chance to practice with a stand
that&amp;rsquo;s pretty much in the city.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/pruned_radiata.jpeg&#34; alt=&#34;A 6.5 m pruned height radiata pine stand.&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>100 billion dollars</title>
      <link>https://luis.apiolaza.net/2025/08/08/100-billion-dollars/</link>
      <pubDate>Fri, 08 Aug 2025 21:09:23 +1200</pubDate>
      <guid>https://luis.apiolaza.net/2025/08/08/100-billion-dollars/</guid>
      <description>&lt;p&gt;That is $100 000 000 000. 
If you have 1 million paying customers, each of them has to pay $100 thousand.
If you get 100 million paying customers,
each of them has to pay one thousand dollars just to recoup capital costs,
and without considering the time value of money.
Without upgrading components every few years.&lt;/p&gt;
&lt;p&gt;Now multiply all the values by 3.
That&amp;rsquo;s the reported projected investment in data centers for AI in 2025 alone.
Three hundred billion for bullshit machines.&lt;/p&gt;
&lt;p&gt;You may counter &amp;ldquo;companies are spending their own money&amp;rdquo;.
But if you have an investment fund or a retirement fund, and I do,
most likely you are part-owner of Alphabet, Amazon, Meta, Microsoft, etc.
We are part-funding this bubble.
I am sure that everyone can think of better uses for these resources,
from the betterment of humanity
to the creation of thousands of new companies trying new things.
Instead, we got bullshit and plagiarism machines
based on stealing intellectual property at a massive scale.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://luis.apiolaza.net/assets/images/monopoly_money.jpg&#34; alt=&#34;This time is not monopoly money&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
