{"@attributes":{"version":"2.0"},"channel":{"title":"Palimpsest","link":"https:\/\/luis.apiolaza.net\/","description":"Recent content on Palimpsest","generator":"Hugo","language":"en","copyright":"&copy; some rights are reserved","lastBuildDate":"Fri, 13 Mar 2026 11:31:30 +1300","item":[{"title":"Fixing the pipeline, again","link":"https:\/\/luis.apiolaza.net\/2026\/03\/13\/fixing-the-pipeline-again\/","pubDate":"Fri, 13 Mar 2026 11:31:30 +1300","guid":"https:\/\/luis.apiolaza.net\/2026\/03\/13\/fixing-the-pipeline-again\/","description":"<p>All good with <a href=\"https:\/\/luis.apiolaza.net\/2026\/02\/28\/fixing-my-pipeline\/\">my pipeline<\/a>\nuntil I updated Hugo, and woke up a theme bug.\nI was not really looking forward to updating Hugo,\nbut I run <code>brew upgrade<\/code> and everything was dutifully updated.\nIsn&rsquo;t software marvelous? Well, there was a lurking bug in the Congo theme.\n<a href=\"https:\/\/github.com\/jpanther\/congo\/issues\/1149\" target=\"_blank\" rel=\"noreferrer\">Really<\/a>,\nand the theme has not been fixed yet.<\/p>\n<p>At the end I removed the theme, which was as a git submodule\n(that&rsquo;s a whole I hate git subplot),\ncleaned the repository to remove all vestiges of the submodule,\ndownloaded the latest version of the not-yet-released version of the theme,\ncopied 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.<\/p>\n<p><strong>Symptoms:<\/strong> it all started when I run <code>hugo serve<\/code> and got\n&ldquo;ERROR error building site: render: [en v1.0.0 guest] failed to render pages&rdquo;\nas an answer in Terminal. Tried a few times and the first fail was\nalways different, but always pointed to\n<code>...\/themes\/congo\/layouts\/_partials\/functions\/warnings.html:10:6<\/code>.\nThis led me to the theme error.<\/p>\n<p><strong>Complications:<\/strong> The theme was installed as a git submodule that, first,\nwould not update. And, even worse, even the dev release didn&rsquo;t include the fix.\nThen the question was How to remove a submodule? According to a search,\nI was supposed to <em>deinitialize<\/em> the module, whatever that means,\nusing <code>git submodule deinit -f themename<\/code>. This failed miserably,\nso I first deleted the theme <code>rm -rf themes\/congo<\/code> and then\nrun <code>git submodule deinit -f themes\/congo<\/code>, which worked.<\/p>\n<p>After that, I think I removed the submodule from git using\n<code>rm -rf .git\/modules\/themes\/congo<\/code>, followed by removing\nthe submodule from <code>.gitmodules<\/code> by using\n<code>git config -f .gitmodules --remove-section submodule.themes\/congo<\/code>.<\/p>\n<p>I added the whole shebang to git and commited the change.\nLater, I copied the latest version of Congo under <code>themes<\/code>\n(just plain copy), deleted the offending lines, <code>git add<\/code> and\n<code>git commit<\/code> the theme and, you know, it worked!<\/p>\n<p>Thanks to <a href=\"https:\/\/www.baeldung.com\/ops\/git-submodule-add-remove\" target=\"_blank\" rel=\"noreferrer\">this page<\/a>\nfor most of the fix.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/meccano.jpeg\" alt=\"Meccano set, from the time when it was much easier\nto understand what was going on\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Influences 1","link":"https:\/\/luis.apiolaza.net\/2026\/03\/11\/influences-1\/","pubDate":"Wed, 11 Mar 2026 19:29:19 +1300","guid":"https:\/\/luis.apiolaza.net\/2026\/03\/11\/influences-1\/","description":"\n\n<p>I&rsquo;ve used the notes on &ldquo;Estimadores del valor gen\u00e9tico aditivo en animales. I.\nUna fuente de informaci\u00f3n&rdquo; on and off for the last 34 years.<\/p>\n<p>Prof Ximena Garc\u00eda gave me a copy when I was doing her course in 1992,\nmy last year of undergraduate forestry.\nFunny thing is that this was a postgraduate course,\ntaught in the Department of Animal Production,\nwhich was part of Agronomy, not Forestry. I took the course for no credits,\njust for the fun of learning quantitative genetics.\nYes, it sounds weird when I put it that way.\nWe were only two students: a postgrad and myself, and we learnt a lot.<\/p>\n<p>There was a lot of doing his small things by hand,\nlike the regression of additive value on phenotype.\nTypically the slope of a regression of Y on X is Cov(X,Y)\/V(X), so<\/p>\n$$\n\\frac{Cov(P,A)}{V(P)} = \\frac{Cov(A+D+I,A)}{V(P)} = \\\\\n \\frac{Cov(A,A)+Cov(D,A)+Cov(I,A)}{V(P)} = \\\\\n \\frac{Cov(A,A)+0+0}{V(P)} = \\frac{V(A)}{V(P)} = h^2\n$$<p>which helped me understand the idea of heritability; cool, I think.<\/p>\n<p>The cover has lost good part of its colour, and the pages are typewritten,\nno fancy fonts for the huge number of equations.<\/p>\n<p>Thanks for the book, Ximena, which still is in my office bookshelf\nafter all these years.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/ximena.jpeg\" alt=\"Fading cover of the book\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Ubuntu update","link":"https:\/\/luis.apiolaza.net\/2026\/03\/02\/ubuntu-update\/","pubDate":"Mon, 02 Mar 2026 22:49:12 +1300","guid":"https:\/\/luis.apiolaza.net\/2026\/03\/02\/ubuntu-update\/","description":"<p>Today I installed <code>R<\/code>, <code>r2u<\/code>\n(using the <a href=\"https:\/\/github.com\/eddelbuettel\/r2u\/blob\/master\/inst\/scripts\/add_cranapt_noble.sh\" target=\"_blank\" rel=\"noreferrer\">script<\/a> for 24.04 LTS),\nand <code>RStudio<\/code>.\nI also installed <code>neovim<\/code> and <code>lazyvim<\/code>, trying to keep basic feature parity\nbetween my Ubuntu desktop and macbook.<\/p>\n<p>Talking about parity, dealing with <code>apt<\/code>\n(or <code>nala<\/code> when dealing with larger programs) works really well\nwith system-wide stuff. However, installing smaller, newer stuff\nfeels very hacky (download this, move it there,\nadjust whatever path, etc).<\/p>\n<p>I find using <code>brew<\/code> much easier in this situation,\nwith the advantage that I end up with the same versions\nin both desktop and laptop.<\/p>\n<p>Why <code>neovim<\/code>? It&rsquo;s part of my going back to the terminal\nand reducing contact with Microsoft (sorry, <code>VS Code<\/code>).\nLately I&rsquo;ve felt this constant nagging from some companies\nand living in a non-Microsoft environment feels peaceful\nfor a few hours a day.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/mega-blocks.jpg\" alt=\"Baby steps until I get comfortable\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"MKinfer: inferential statistics","link":"https:\/\/luis.apiolaza.net\/2026\/03\/01\/mkinfer-inferential-statistics\/","pubDate":"Sun, 01 Mar 2026 18:30:49 +1300","guid":"https:\/\/luis.apiolaza.net\/2026\/03\/01\/mkinfer-inferential-statistics\/","description":"<p>R package that includes the <code>MKinfer::perm.t.test()<\/code> function\nwhich performs one-sample and two-sample permutation t-tests,\nincluding support for paired tests and confidence intervals.<\/p>\n"},{"title":"Are you a cauliflower person","link":"https:\/\/luis.apiolaza.net\/2026\/03\/01\/are-you-a-cauliflower-person\/","pubDate":"Sun, 01 Mar 2026 14:05:19 +1300","guid":"https:\/\/luis.apiolaza.net\/2026\/03\/01\/are-you-a-cauliflower-person\/","description":"<p>I&rsquo;ll eat most <em>Brassica oleracea<\/em> derivatives but kale.\nYou say broccoli? Cockily. Brussels sprouts? In great bouts!\nCauliflower? I&rsquo;ll devour it.<\/p>\n<p>I enjoy reading good stories about breeding as much as, I don&rsquo;t know,\nmy next door neighbour, but they have to be fun.\n<a href=\"https:\/\/worksinprogress.co\/issue\/sculpting-cabbages\/\" target=\"_blank\" rel=\"noreferrer\">Meet your greens: How a single unappetizing shrub became dozens of different vegetables<\/a>\nkept me reading until the end, so I thought\nmore people who are into breeding things would appreciate it.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/broccoli.jpeg\" alt=\"Dinner including plenty of broccoli\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Fixing my pipeline","link":"https:\/\/luis.apiolaza.net\/2026\/02\/28\/fixing-my-pipeline\/","pubDate":"Sat, 28 Feb 2026 23:01:59 +1300","guid":"https:\/\/luis.apiolaza.net\/2026\/02\/28\/fixing-my-pipeline\/","description":"<p>I want to like Hugo\u2014or any static site generator + git system\nfor that matter\u2014but it doesn&rsquo;t quite flow;\nit doesn&rsquo;t feel like my own. So I checked what I was missing.<\/p>\n<p>My first obstacle was starting with the empty page,\nso I needed to use a proper archetype:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nn\">---<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">title<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;{{ strings.Replace (strings.Substr .Name 11) &#34;<\/span>-<span class=\"s2\">&#34; &#34;<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34; | strings.FirstUpper }}&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">date<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span>{{<span class=\"w\"> <\/span><span class=\"l\">.Date }}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">draft<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">author<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;Luis&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">tags<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">  <\/span>- <span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nn\">---<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\">!<span class=\"p\">[<\/span><span class=\"l\">Caption here](\/assets\/images\/image-here.jpeg)<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>But I also only wanted to type something like <code>newpost some-name<\/code>\nand still get the date at the beginning of the file name,\nas in <code>2026-02-28-some-name.md<\/code>. This needed to create a shell function\n(in my case in <code>zsh<\/code>), so I included the following in <code>~.zshrc<\/code>:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-zsh\" data-lang=\"zsh\"><span class=\"line\"><span class=\"cl\">newpost<span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  <span class=\"nv\">name<\/span><span class=\"o\">=<\/span>post\/<span class=\"k\">$(<\/span>date -I<span class=\"k\">)<\/span>-<span class=\"nv\">$1<\/span>.md\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  hugo new <span class=\"nv\">$name<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">  code content\/<span class=\"nv\">$name<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"o\">}<\/span>\n<\/span><\/span><\/code><\/pre><\/div><p>By the way, <code>code<\/code> calls Visual Studio Code from the terminal.\nI still need to fix other inconveniences,\nbut now it is a little less annoying to write posts.<\/p>\n"},{"title":"Keeping up with research","link":"https:\/\/luis.apiolaza.net\/2026\/02\/20\/keeping-up-with-research\/","pubDate":"Fri, 20 Feb 2026 18:00:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2026\/02\/20\/keeping-up-with-research\/","description":"<p>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.<\/p>\n<p>I convinced myself that it was much better to understand a small core of ideas\u2014mostly the breeder&rsquo;s equation, mixed linear models, context specific information about my crops\u2014and the rest was anchoring new stuff into the core. Say that I got NIR spectra relationships; that&rsquo;s new responses (y) in my model. Or genomic data, that&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.<\/p>\n<p>I believe one feels &rsquo;less panicky&rsquo; about new stuff if one can link it somewhere in the model, or graft it to one&rsquo;s knowledge model, to sound like dealing with trees. I don&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.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/arborists.jpeg\" alt=\"The opposite of building the tree model: arborists disassembling trees that had been damaged by too many storms. Time to plant new trees.\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Less willing","link":"https:\/\/luis.apiolaza.net\/2026\/02\/11\/less-willing\/","pubDate":"Wed, 11 Feb 2026 20:30:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2026\/02\/11\/less-willing\/","description":"<p>One effect of AI, at least on me, is that I am less willing to write public posts.<\/p>\n<p>I have always liked making up stories and writing &rsquo;explanations to myself&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.<\/p>\n<p>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, &hellip; content. Training material for placeholders to be sandwiched between ads.<\/p>\n<p>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.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/mac-mini.jpeg\" alt=\"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.\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Why the old is not yet new","link":"https:\/\/luis.apiolaza.net\/2025\/12\/15\/why-the-old-is-not-yet-new\/","pubDate":"Mon, 15 Dec 2025 19:30:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/12\/15\/why-the-old-is-not-yet-new\/","description":"<p>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\u2019ll find many breeding programmes that are not using some or all of these tools.<\/p>\n<p>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\u2019t integrate the complex models we need for MET and genomics when we have large numbers of genotyped individuals.<\/p>\n<p>Most crop breeding programmes don\u2019t have economic weights for their traits. Many are not yet using animal model BLUP. Even fewer have <em>operational<\/em> access to genomic data. There is a lot to be done. \ud83d\ude09<\/p>\n"},{"title":"Optimal","link":"https:\/\/luis.apiolaza.net\/2025\/09\/23\/optimal\/","pubDate":"Tue, 23 Sep 2025 18:30:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/09\/23\/optimal\/","description":"<p>I think of myself as a &ldquo;numbers wallah&rdquo;<sup>*<\/sup>,\na guy who deals with problems by turning them into maths of various kinds.\nDuring the last 35 years, my kind of maths has mostly been statistics\nmixed with quantitative genetics, which is a very useful combination.\nBut maths has been present in my life for longer, at least since high school.<\/p>\n<p>Thirty six years ago I was sitting an Optimization course,\nas part of my forestry degree (sporting longer and darker hair,\nequally nerdy, though). Linear programming, dynamic programming and simulation,\nthat kind of stuff.\nI was fascinated by the subject and was going to do\nmy undergraduate thesis in some forest transportation problem.\nBut then came tree breeding and changed the direction of my life\n(thanks, Roberto!).<\/p>\n<p>Last week, I was talking with a colleague visiting from Chile,\nand we were talking about a harvesting optimization problem\nwith spatial constraints. I mean, he was doing all the work,\nI was just throwing opinions about his objective function&hellip;\nAnd I remembered how much I liked this type of problems.\nTogether with working with forest mensuration students\nand linking all this work to financial evaluations,\nI have been rediscovering parts of forestry work\nthat I haven&rsquo;t touched in a long time and that made me feel excited.\nNow I am starting to read, a little bit, about optimization\nand thinking of how to connect it to the rest of my work.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/maths-zoo.png\" alt=\"Saturday Morning Breakfast Cereal cartoon.\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n<p><sup>*<\/sup>In the same way there are chaiwallahs or dabbawallahs.<\/p>\n"},{"title":"Rain or shine","link":"https:\/\/luis.apiolaza.net\/2025\/08\/20\/rain-or-shine\/","pubDate":"Wed, 20 Aug 2025 21:30:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/08\/20\/rain-or-shine\/","description":"<p>During the last week, we had 3 field activities\nwith forestry students of the University of Canterbury:\ntwo trips to Bottle Lake Forest with first years doing Forest Mensuration\nand a trip to Amberley with second years doing Introduction to Silviculture.<\/p>\n<p>The weather was spectacular for a winter day in Amberley,\nwhere Shaf van Ballekom, manager of Proseed,\nshowed us the seed orchard and their propagation work.\nIt&rsquo;s a great connection between Ng\u0101i Tahu Farming and the School of Forestry.<\/p>\n<p>In contrast, the weather was subdued during our first visit to Bottle Lake\nwhen learning to establish prism plots.\nLater, it was cold (near 0\u00b0C) with some rain and even hail\nduring our second visit to practice flexible timber cruising.\nWe had good conversations with students,\nsorting out why things were working well\nor not working when compared to the classroom.\nKudos to Matt Deering (School of Forestry) for helping me\nwith 48 students in the mensuration activity.<\/p>\n<p>Cute detail: a few students thought that the last activity\nwas going to be cancelled because it was cold and rainy.\nI pointed out the course outline and first lecture:\nactivities run &ldquo;rain or shine&rdquo; (unless it affects the safety of the activity).\nWarm clothes, rain gear and a thermos with a hot drink\ngo a long way towards enjoyable time in the field.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/proseed_2025.jpeg\" alt=\"Nice day with students in Amberley.\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n\n\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/bottle_lake_field_work_2025.jpeg\" alt=\"A not so nice day with students in Bottle Lake.\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Barely above sea level","link":"https:\/\/luis.apiolaza.net\/2025\/08\/11\/barely-above-sea-level\/","pubDate":"Mon, 11 Aug 2025 18:30:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/08\/11\/barely-above-sea-level\/","description":"<p>Last Friday I went to Bottle Lake Forest,\na multipurpose plantation just at the edge of Christchurch.\nBeing next to the city, recreation is a very important activity\nand there are plenty of walking and cycling trails.\nI was there checking a stand\nfor taking the forest mensuration class for an activity,\nlooking at some bearings (road and stand were very neatly orientated)\nand then I saw: 10 metres above sea level.<\/p>\n<p>Christchurch is a very flat city, next to the ocean,\nbut sometimes one loses the sense of how low we are.\nI live at around 30 masl and last week we went up to 100 masl (!)\nwhile driving 16 km. Low in productivity too;\nwe may need to adjust the age for running the growth models.<\/p>\n<p>It&rsquo;s very cool to have the chance to practice with a stand\nthat&rsquo;s pretty much in the city.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/pruned_radiata.jpeg\" alt=\"A 6.5 m pruned height radiata pine stand.\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"100 billion dollars","link":"https:\/\/luis.apiolaza.net\/2025\/08\/08\/100-billion-dollars\/","pubDate":"Fri, 08 Aug 2025 21:09:23 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/08\/08\/100-billion-dollars\/","description":"<p>That is $100 000 000 000. \nIf you have 1 million paying customers, each of them has to pay $100 thousand.\nIf you get 100 million paying customers,\neach of them has to pay one thousand dollars just to recoup capital costs,\nand without considering the time value of money.\nWithout upgrading components every few years.<\/p>\n<p>Now multiply all the values by 3.\nThat&rsquo;s the reported projected investment in data centers for AI in 2025 alone.\nThree hundred billion for bullshit machines.<\/p>\n<p>You may counter &ldquo;companies are spending their own money&rdquo;.\nBut if you have an investment fund or a retirement fund, and I do,\nmost likely you are part-owner of Alphabet, Amazon, Meta, Microsoft, etc.\nWe are part-funding this bubble.\nI am sure that everyone can think of better uses for these resources,\nfrom the betterment of humanity\nto the creation of thousands of new companies trying new things.\nInstead, we got bullshit and plagiarism machines\nbased on stealing intellectual property at a massive scale.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/monopoly_money.jpg\" alt=\"This time is not monopoly money\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Going backwards to go forwards","link":"https:\/\/luis.apiolaza.net\/2025\/07\/29\/going-backwards-to-go-forwards\/","pubDate":"Tue, 29 Jul 2025 22:37:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/07\/29\/going-backwards-to-go-forwards\/","description":"<p>An interesting aspect of changing roles is\nthat we have to recontextualize our work. Put another way,\nwhen we have been working for a long time in a topic,\nwe know where the bits and pieces of our knowledge and experience fit\nin the whole scheme of things. It feels like putting together\na jigsaw puzzle and we can see which pages have a flat side,\nso we understand that they are part of the edges.<\/p>\n<p>When one is starting in a new topic, role\nor teaching a new course we are missing the flat pieces.\nWe have to develop the feeling for those pieces, understand the boundaries,\nand see where our current knowledge can help and where it is a hindrance.<\/p>\n<p>Everything becomes slower for a while,\nwhile we reorientate the map and take steps backwards, sideways,\nthe long road or spend a whole day going deeper. Then, one day,\neverything clicks together again and we feel capable again.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/meccano.jpeg\" alt=\"Photo: I was looking for a photo of jigsaw pieces\n\u2014couldn&rsquo;t find it\u2014but came across this photo\nof an old Meccano exhibition.\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Like riding a wooden bicycle","link":"https:\/\/luis.apiolaza.net\/2025\/07\/23\/like-riding-a-wooden-bicycle\/","pubDate":"Wed, 23 Jul 2025 18:30:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/07\/23\/like-riding-a-wooden-bicycle\/","description":"<p>I have not been writing much here,\nas the semester started last week and am teaching a new course.\nIf you studied forestry at Canty,\nprobably you had Forest Growth and Measurements with Prof Bruce Manley*.\nThis year we did a bit of teaching reshuffle and I volunteered\n(or &ldquo;volunteered&rdquo;, not sure) to take over the course.\nIn a previous life I used to do quite a bit of mensuration-related work,\nbut haven&rsquo;t done any teaching on it for ages.<\/p>\n<p>I can confirm that getting back to teaching mensuration\n(at the undergraduate-level, at least) is like riding a bicycle.\nGiven that this is forestry, riding an engineered-wooden-frame bike.\nWe start with basic tools and calculations and, eventually,\nend up doing &ldquo;proper&rdquo; forestry work.\nI have forgotten how much fun is doing this stuff.<\/p>\n<p>Yesterday we took 49 students to establish circular plots\nin a plantation in McLeans Island.\nIt seems that everyone enjoyed the experience\nand we&rsquo;ll now be working with the data they collected.<\/p>\n<p>*Bruce is still alive and teaching other courses, no need to worry. \ud83e\udd23<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/gear_crates.jpeg\" alt=\"Photo: part of the boxes with gear in my office. On the plus side,\nthis mess hides my messy desk.\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Remember to visit before going with students","link":"https:\/\/luis.apiolaza.net\/2025\/07\/11\/remember-to-visit-before-going-with-students\/","pubDate":"Fri, 11 Jul 2025 18:30:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/07\/11\/remember-to-visit-before-going-with-students\/","description":"<p>I&rsquo;ll be the course coordinator for FORE141 Forest Mensuration this semester. There are several field activities and I decided to check that the trees are &lsquo;still out there&rsquo; before taking the class. They weren&rsquo;t in one of the cases, as the stand is being harvested at the moment. A bit annoying, but it will happen every few years anyway.<\/p>\n<p>I went jogging around Bottle Lake Forest, looking for an alternative stand for the activity and, much more problematic, I lost my car key \ud83d\ude31! Had to wait a couple of hours to get the spare. So if you are running around or walking your dog and happen to find a car key, please let me know!<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/missing_trees.jpeg\" alt=\"The trees weren&rsquo;t there anymore\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Hugo in Gitlab","link":"https:\/\/luis.apiolaza.net\/2025\/06\/30\/hugo-in-gitlab\/","pubDate":"Mon, 30 Jun 2025 20:09:23 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/06\/30\/hugo-in-gitlab\/","description":"<p>Yesterday I finished shifting this this from Jekyll\n(hosted in Github) to Hugo (hosted in Gitlab).\nSome of the work was kind of trivial,\nfor example using Hugo&rsquo;s Jekyll importer\nthat swallowed all the posts but not the pages.<\/p>\n<p>I dealt with the pages by copying them directly\nto the content directory and changing their front matter\nto include the desired URL. For example:<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">title<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">Publications<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">date<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s1\">&#39;2025-05-13T20:42:38+13:00&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">layout<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">page<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">url<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s1\">&#39;\/publications\/&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>After a few tries I settled on the <code>congo<\/code> theme\nand had the brilliant idea to install it as a module.\nI didn&rsquo;t manage to get it working in Gitlab,\ndespite of playing with the configuration file.\nInstalling the theme by cloning it under themes worked well.<\/p>\n<p>One of the biggest time wasters was getting the right information\nfor setting up my domain in namecheap to point to\nthe pages in Gitlab.\nThe keys generated by Gitlab to create a TXT field\nin my registrar for domain verification\nincluded the full name of the domain,\nas in <code>luis.apiolaza.net<\/code> at the end,\nbut Namecheap needed only <code>luis<\/code> (the subdomain) at the end\nof the first part of the key.\nAt the end, I needed to include the following pieces\nunder advanced DNS:<\/p>\n<pre tabindex=\"0\"><code>Type      Host          Value\nA         luis          Gitlab&#39;s IP address\nCNAME     luis          username.gitlab.io.\nTXT       longkey.luis  evenlongerkey\n<\/code><\/pre><p>After all that, the site was just working.\nSome material that was useful to get my head around:<\/p>\n<ol>\n<li><a href=\"https:\/\/docs.gitlab.com\/tutorials\/hugo\/\" target=\"_blank\" rel=\"noreferrer\">Gitlab&rsquo;s tutorial<\/a>\non how to setup pages using Hugo.<\/li>\n<li>One bit that tripped me is that once the pages were up\nthe design (CSS) was not working. This was fixed by\nupdating the site config file to update the <code>baseURL<\/code>\nto, first, the gitlab.io site and, later, to the custom domain.<\/li>\n<li><a href=\"https:\/\/docs.gitlab.com\/user\/project\/pages\/custom_domains_ssl_tls_certification\/#for-subdomains\" target=\"_blank\" rel=\"noreferrer\">GitLab Pages custom domains<\/a>\nwith the proviso that the way we setup the DNS information\nmight differ from that explanation (see above).<\/li>\n<li>Once everything is connected, every time there is an update\none can go to <code>Build\/Pipelines<\/code> to check that everything went well,\nfollowed by <code>Deploy\/Pages<\/code> to check where the site is live.<\/li>\n<\/ol>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/keyboard_closeup.jpg\" alt=\"The shift required some typing&hellip;\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Breeding Convergence","link":"https:\/\/luis.apiolaza.net\/2025\/06\/29\/breeding-convergence\/","pubDate":"Sun, 29 Jun 2025 21:06:51 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/06\/29\/breeding-convergence\/","description":"<p>Some 6 months ago I was contacted out of the blue by Wallace Cowling (*), who asked me if I could be an external examiner for a PhD thesis on pea breeding. I love eating pulses: chickpeas with smoked pork hocks (yum), lentils in all their forms, &hellip;, but that was my whole knowledge of pea production and breeding. But <a href=\"https:\/\/luis.apiolaza.net\/2023\/11\/25\/i-am-a-sucker-for-interesting-problems\/\">I am a sucker for interesting problems<\/a>, so I said yes.<\/p>\n<p>Some months later I received a copy of the thesis and two things happened: 1. the introduction chapters were very good and I got my head around the peculiarities of pea breeding programmes, and 2. for some years already there has been a convergence of breeding programmes, which makes jumping between species a relatively easy task.<\/p>\n<p>I studied forestry but when I became interested in breeding I went knocking the door at the Department of Animal Science in my campus. I took classes with Ximena Garcia, who was an expert in breeding small animals. In my first job in the Chilean tree breeding programme I started playing with animal (individual tree) models, for which I had to read papers about animals. Later I did my PhD in the Department of Animal Science at Massey University (and had to learn weird words like &lsquo;heifers&rsquo;), which I later applied to trees. Some years later, I was supervising a PhD in potato breeding, where Mark Paget was running Factor Analytic models and Bayesian analyses. In between I was collaborating with people studying the genetics of squid personality and exploring conservation options for threatened species using flies to quickly model generations. You guessed, we were using multivariate animal models.<\/p>\n<p>There are obvious biological differences between species, but all of the analyses will model the mean and account for non-genetic effects (with or without an experimental design), account for a pedigree (with or without using genetic markers) and, if things start getting too complicated, model covariance structures. There are deviations from this, of course, but it means that wherever you started your journey (forestry in my case) it is possible to get your head around a different production system. Well, IF you are willing to open your mind to the peculiarities of your &rsquo;new&rsquo; species and production system.<\/p>\n<p>(*) We academics tend to do this, as we are looking for people who were not involved in the project to act as external evaluators. Dr Felipe Castro Urrea passed his evaluation with flying colours, with an excellent thesis and defense.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/chickpeas.jpeg\" alt=\"Photo: eating chickpeas at home\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"Breeding Ain't Noise Pollution","link":"https:\/\/luis.apiolaza.net\/2025\/06\/23\/breeding-aint-noise-pollution\/","pubDate":"Mon, 23 Jun 2025 18:00:00 +1300","guid":"https:\/\/luis.apiolaza.net\/2025\/06\/23\/breeding-aint-noise-pollution\/","description":"<p>Haven&rsquo;t been writing much about breeding and quantitative genetics lately, which means that I&rsquo;ve been playing with my usual obsessions. Any book will tell you that genetic trials are at the core of any breeding programme: we use the phenotypes for predicting breeding values, estimating genetic parameters, training genomic models, etc.<\/p>\n<p>Trials are very valuable but also very expensive to establish and maintain. As a forester, I&rsquo;m envious of crop breeders with their flat terrains, tidy trials and (mostly) homogeneous sites. In contrast, we live in a wrinkled, bumpy world, with sometimes strong within-trial trends. This means that we have to remove lots of environmental noise (see! there was a connection with the title) to observe a clear genetic signal.<\/p>\n<p>When analysing trials, we typically have to account for experimental design components (replicates, incomplete blocks, plots, whatever) and mating design components (additive genetic effects, family effects, clonal replicates, etc). Then we have to deal with, technical term, all the other crap: autoregressive row and column effects &amp; spatial variance in large trials, for example. However, we can use even more information; for example we can fit a Digital Elevation Model to remove even more noise. This model can come from either a drone with Aerial Laser Scanning or, even easier, they are freely available at 1 m resolution <a href=\"https:\/\/data.linz.govt.nz\/layer\/121859-new-zealand-lidar-1m-dem\/\" target=\"_blank\" rel=\"noreferrer\">for most of New Zealand<\/a>.<\/p>\n<p>I&rsquo;ve seen (or read) several posts of people looking at enviromics to explain differences in genotype performance across locations. In my opinion, in our tree breeding programmes we have to sort two problems before getting a reasonable result for this approach:<\/p>\n<ol>\n<li>Filtering out the within-environment noise with good experimental designs (I believe you should consider software like CycDesigN) because simple RCB designs just leave too much money on the table. This also means using a very flexible software for running the analyses. It will be no surprise that I highly recommend asreml-R (or stand alone if you aren&rsquo;t an R person).<\/li>\n<li>Sorting out the connectedness between sites\/locations\/environments. Poor connectedness has the potential of really screwing up our understanding of GxE interactions and we could end up attributing noisy changes to the wrong environmental variables. At this point, we want to combine our complex within-environment analyses across multiple (perhaps many) environments. Surprise! asreml-R is one of the best options for doing this. (**)<\/li>\n<\/ol>\n<p>The better our trials and their analyses, the more gain we achieve for the same investment. It doesn&rsquo;t matter if we&rsquo;re hashtag#breeding trees, peas or melons.<\/p>\n<p>(*) The post title is a tribute to AC\/DC&rsquo;s <a href=\"https:\/\/www.youtube.com\/watch?v=X_IWlPHMziU\" target=\"_blank\" rel=\"noreferrer\">Rock And Roll Ain&rsquo;t Noise Pollution<\/a>\n(**) This is a genuine endorsement of VSN products, for which I receive no payment. VSN people: just in case, my t-shirt size is Medium.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/trial-in-tasmania.jpg\" alt=\"Old phot of a recently installed radiata pine progeny trial in Tasmania.\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"},{"title":"The hardest thing","link":"https:\/\/luis.apiolaza.net\/2025\/06\/16\/the-hardest-thing\/","pubDate":"Mon, 16 Jun 2025 19:43:00 +1200","guid":"https:\/\/luis.apiolaza.net\/2025\/06\/16\/the-hardest-thing\/","description":"<p>In my humble opinion, one of the hardest things about teaching is that explanations that make sense to me today would not have made much sense to me with what I knew 30 years ago.<\/p>\n<p>There is so much background information in our current understanding, that we tend to forget how it felt to learn our topic the same time.<\/p>\n<p>This reminded me of one of Brian Eno and Peter Schmidt&rsquo;s Oblique Strategies cards: &ldquo;the most important thing is the thing most easily forgotten&rdquo;.<\/p>\n<p>\n\n\n\n\n\n\n  \n  \n<figure><img src=\"https:\/\/luis.apiolaza.net\/assets\/images\/cat-food.jpeg\" alt=\"The most important thing according to our cats\" class=\"mx-auto my-0 rounded-md\" \/>\n<\/figure>\n<\/p>\n"}]}}