<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Mayo Jordanov</title>
    <subtitle>Mayo Jordanov; software developer, photographer, climber, runner, hiker, adventurer, explorer</subtitle>
    <link rel="self" type="application/atom+xml" href="https://oyam.ca/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://oyam.ca"/>
    <updated>2024-12-28T00:13:00-08:00</updated>
    <rights>Copyright © 2025, Mayo Jordanov</rights>
    <id>tag:oyam.ca,2010:/</id>
    <entry xml:lang="en">
        <title type="html">Interfacing With EMU-2 Energy Monitor</title>
        <published>2024-12-28T00:13:00-08:00</published>
        <updated>2024-12-28T00:13:00-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2024/12/emu2-energy-monitor/"/>
        <id>tag:oyam.ca,2010:/blog/2024/12/emu2-energy-monitor/</id><content type="html" xml:base="https://oyam.ca/blog/2024/12/emu2-energy-monitor/">&lt;p&gt;The power utility here uses smart meters, and only a few approved devices can interface with them. Most require cloud access, which I wanted to avoid, so I had only one option: the &lt;a href=&quot;https:&#x2F;&#x2F;www.rainforestautomation.com&#x2F;rfa-z105-2-emu-2-2&#x2F;&quot;&gt;EMU-2&lt;&#x2F;a&gt; by Rainforest Automation.&lt;&#x2F;p&gt;
&lt;p&gt;The EMU-2 is a simple device with a display listing a set of pre-set data view options. It has a micro USB port for power and communication, and a battery for backup. Fortunately, the USB also acts as a serial device, and is able to stream the electric meter data. In addition to the &lt;a href=&quot;https:&#x2F;&#x2F;www.rainforestautomation.com&#x2F;rfa-z105-2-emu-2-2&#x2F;&quot;&gt;product page&lt;&#x2F;a&gt;, Rainforest Automation has a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rainforestautomation&#x2F;Emu-Serial-API&quot;&gt;GitHub&lt;&#x2F;a&gt; repository with the device’s data sheets, sample code, and a basic API.&lt;&#x2F;p&gt;
&lt;p&gt;I was looking for a minimal solution and didn’t want to use a mini computer for interfacing with the monitor. I tried using an ESP8266 with a Trinket M0, but that solution wasn’t fast enough to handle running USB host and serial USB communication. In the end, I chose an ESP32-S3, a dual-core board with two USB ports and support for USB host.&lt;&#x2F;p&gt;
&lt;p&gt;To handle the data from the meter, I initially tried using an XML parser, but I soon realized that the XML data over the serial interface wasn’t valid XML and could start or stop abruptly. So, I ended up writing a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;mayo&#x2F;emu2-data-parser&quot;&gt;simple tag parser&lt;&#x2F;a&gt;, which parses the stream of data and exposes structured data.&lt;&#x2F;p&gt;
&lt;p&gt;Next, I needed to configure the ESP32-S3 to act as a USB host, interface with the meter, and feed the data to my parser. Getting the USB CDC-ACM host driver running was relatively straightforward, with great examples available on the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;espressif&#x2F;esp-idf&#x2F;tree&#x2F;master&#x2F;examples&#x2F;peripherals&#x2F;usb&#x2F;host&#x2F;cdc&#x2F;cdc_acm_host&quot;&gt;Espressif GitHub repository&lt;&#x2F;a&gt;. However, the challenge was that the EMU-2 monitor wasn’t being recognized as a serial device correctly. Oh, the joys of USB serial devices! A &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;espressif&#x2F;idf-extra-components&#x2F;commit&#x2F;5e8b554904298e9d3a7060cab7a15513a08bebaf&quot;&gt;quick patch&lt;&#x2F;a&gt; was required to add support for the USB serial device signature used by the EMU-2 monitor, and everything worked smoothly.&lt;&#x2F;p&gt;
&lt;p&gt;Finally, I chose ESPHome to run on the microcontroller. I was already familiar with it, it’s simple to set up,  and easy to add custom components. I created a &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;mayo&#x2F;esphome_emu2_meter&quot;&gt;custom component&lt;&#x2F;a&gt; that interfaces the &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;mayo&#x2F;emu2-data-parser&quot;&gt;EMU-2 data parser&lt;&#x2F;a&gt; and exposes metrics as sensors. And voilà, electric meter data is freed. An example ESPHome configuration is included in its repository.&lt;&#x2F;p&gt;
&lt;p&gt;I encountered a slight issue with the EMU-2 monitor reliability when running simultaneously on USB power and battery. To avoid dealing with batteries, I opted to power the ESP32-S3 via the first&#x2F;programming USB port from a small UPS. In turn, the EMU-2 monitor is powered from the ESP-S3.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Yet Another Static Site Generator</title>
        <published>2024-10-02T23:22:07-08:00</published>
        <updated>2024-10-02T23:22:07-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2024/06/redesign-zola/"/>
        <id>tag:oyam.ca,2010:/blog/2024/06/redesign-zola/</id><content type="html" xml:base="https://oyam.ca/blog/2024/06/redesign-zola/">&lt;p&gt;I haven&#x27;t updated this site in a while, and as is my custom every few years, I tinkered more with redesign and the site generators than with actual content. The site is now generated with &lt;a href=&quot;https:&#x2F;&#x2F;www.getzola.org&quot;&gt;Zola&lt;&#x2F;a&gt;. I enjoyed working on Hana, but maintaining a custom built site generator and number of plugins just for a handful of sites was getting too time consuming. Plus, there is always the chore of dealing with Python dependencies. Zola is a small, quick, and self-contained generator written in Rust, and has a nice community around it.&lt;&#x2F;p&gt;
&lt;p&gt;With Hana, I feel like it was too easy for me to jump in and write a custom plugin for just about anything, rather than focusing on the design and intention behind what I want to publish. Switching to Zola, I reviewed all the odd plugins I&#x27;ve created over time and reflected on the intention behind them. Some were handling special cases for old content ported from previous site generators, others were serving as a catch all for pure lazyness (adding tags, etc based on sections) -- nothing that really needed plugins, just some elbow grease and will to fix the content (Zola has stricter metadata checks than Hana did). Handful were actually useful and adapted to work within the bounds of Zola (for eg. categorization&#x2F;taxonomies). The last few, I could do without and just abandoned.&lt;&#x2F;p&gt;
&lt;p&gt;The templates needed slight adjustment as well, as some of the content variables are exposed differently or with different names. One thing led to another and I spruced up the old design. The overall look is very similar, but I worked on unifying and reusing design components. Typefaces were updated (from old outdated 3rd party system) to directly loading files from a CDN. The new typeface is &lt;a href=&quot;https:&#x2F;&#x2F;www.ibm.com&#x2F;plex&#x2F;&quot;&gt;IBM Plex&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The last part that needed addressing was the publishing side. With Hana, I wrote plugins that took care of the publishing as part of the site building. With Zola, the act of publishing is a separate task (as it should be). I wrote some light standalone tools to take care of the publishing (the tools sync to S3 only updated files, while not relying on filesystem timestamps to figure out what has changed), and everything is set.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Why time management is ruining our lives</title>
        <published>2021-02-25T23:25:55-08:00</published>
        <updated>2021-02-25T23:25:55-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2021/02/time-management/"/>
        <id>tag:oyam.ca,2010:/blog/2021/02/time-management/</id><content type="html" xml:base="https://oyam.ca/blog/2021/02/time-management/">&lt;blockquote&gt;
&lt;p&gt;DeMarco points out that any increase in efficiency, in an organisation or an individual life, necessitates a trade-off: you get rid of unused expanses of time, but you also get rid of the benefits of that extra time.&lt;&#x2F;p&gt;
&lt;p&gt;In the accident and emergency department, by contrast, remaining &quot;inefficient&quot; in this sense is a matter of life and death. If there is an exclusive focus on using the staff’s time as efficiently as possible, the result will be a department too busy to accommodate unpredictable arrivals, which are the whole reason it exists.&lt;&#x2F;p&gt;
&lt;p&gt;A similar problem afflicts any corporate cost-cutting exercise that focuses on maximising employees’ efficiency: the more of their hours that are put to productive use, the less available they will be to respond, on the spur of the moment, to critical new demands. For that kind of responsiveness, idle time must be built into the system.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;— Oliver Burkeman&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Do It Justice</title>
        <published>2021-02-16T11:59:55-08:00</published>
        <updated>2021-02-16T11:59:55-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2021/02/do-it-justice/"/>
        <id>tag:oyam.ca,2010:/blog/2021/02/do-it-justice/</id><content type="html" xml:base="https://oyam.ca/blog/2021/02/do-it-justice/">&lt;blockquote&gt;
&lt;p&gt;Use this not to capture and log every moment of every day;
but as a window, through which to frame a handful of moments, forever.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;— Nate Townsend&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Hugo, I want to like you</title>
        <published>2021-01-15T00:30:38-08:00</published>
        <updated>2021-01-15T00:30:38-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2021/01/hugo/"/>
        <id>tag:oyam.ca,2010:/blog/2021/01/hugo/</id><content type="html" xml:base="https://oyam.ca/blog/2021/01/hugo/">&lt;p&gt;I really really want to like &lt;a href=&quot;https:&#x2F;&#x2F;gohugo.io&#x2F;&quot;&gt;Hugo&lt;&#x2F;a&gt;. I like the elegance of having a single binary, not having to worry about Python versions and dependencies, and most importantly not being responsible for maintaining the codebase. I&#x27;ve tried migrating my site to Hugo over the last couple of years, but I always run into some issues or major annoyances.&lt;&#x2F;p&gt;
&lt;p&gt;On my last attempt, I was &lt;em&gt;almost&lt;&#x2F;em&gt; there, and then realized I was creating specialized templates for half of the pages, because there is no way to extend or override part of the templates. I can&#x27;t have a block in partial within another block? Why? Shortcodes seem just like bandaids, especially when used for templating. The templating in Hugo is abbysmal for anything other than the simplest sites. It really goes to show how well thought out &lt;a href=&quot;https:&#x2F;&#x2F;jinja2docs.readthedocs.io&#x2F;en&#x2F;stable&#x2F;&quot;&gt;Jinja2&lt;&#x2F;a&gt; templating is.&lt;&#x2F;p&gt;
&lt;p&gt;And don&#x27;t even get me started on &lt;code&gt;index&lt;&#x2F;code&gt; and &lt;code&gt;_index&lt;&#x2F;code&gt; files. The use of &lt;code&gt;_index&lt;&#x2F;code&gt; is overloaded from multiple concepts, which can clash and it&#x27;s hard to work around, to a point when Hugo&#x27;s own renderer will produce different results on subsequent runs.&lt;&#x2F;p&gt;
&lt;p&gt;This turned out to be more of a rant than intended, so I&#x27;ll leave it here. Don&#x27;t get me wrong, Hugo is great and has nice features, but for me falls very short at the job a &lt;em&gt;site&lt;&#x2F;em&gt; generator shouldn&#x27;t, the actual site templating and generation.&lt;&#x2F;p&gt;
&lt;p&gt;Future me beware: don&#x27;t try Hugo again until some of the major pain points are addressed. This is also to say, back to writing my own generator &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;mayo&#x2F;hana&quot;&gt;Hana&lt;&#x2F;a&gt; and simplifying some of the concepts that got out of hand. And, first and foremost, push the latest code out, rather than hoarding it privately.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">The Lab-Leak Hypothesis</title>
        <published>2021-01-06T10:54:15-08:00</published>
        <updated>2021-01-06T10:54:15-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2021/01/covid/"/>
        <id>tag:oyam.ca,2010:/blog/2021/01/covid/</id><content type="html" xml:base="https://oyam.ca/blog/2021/01/covid/">&lt;blockquote&gt;
&lt;p&gt;What happened was fairly simple, I’ve come to believe. It was an accident. A virus spent some time in a laboratory, and eventually it got out. SARS-CoV-2, the virus that causes COVID-19, began its existence inside a bat, then it learned how to infect people in a claustrophobic mine shaft, and then it was made more infectious in one or more laboratories, perhaps as part of a scientist’s well-intentioned but risky effort to create a broad-spectrum vaccine. SARS-2 was not designed as a biological weapon. But it was, I think, designed.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">The intelligence coup of the century</title>
        <published>2020-02-19T14:30:15-07:00</published>
        <updated>2020-02-19T14:30:15-07:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2020/02/crypto/"/>
        <id>tag:oyam.ca,2010:/blog/2020/02/crypto/</id><content type="html" xml:base="https://oyam.ca/blog/2020/02/crypto/">&lt;blockquote&gt;
&lt;p&gt;For more than half a century, governments all over the world trusted a single company to keep the communications of their spies, soldiers and diplomats secret.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Network conditioning in macOS</title>
        <published>2019-03-18T21:38:47-08:00</published>
        <updated>2019-03-18T21:38:47-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2019/03/macos-network-conditioning/"/>
        <id>tag:oyam.ca,2010:/blog/2019/03/macos-network-conditioning/</id><content type="html" xml:base="https://oyam.ca/blog/2019/03/macos-network-conditioning/">&lt;p&gt;I&#x27;ve had the need to do some light network emulation and conditioning on macOS Mojave, but it seems most of the information out there is outdated, relies on unnecessary external software, or is just plain wrong.&lt;&#x2F;p&gt;
&lt;p&gt;There is the handy Network Link Conditioner Tool that comes with Xcode, but that affects the whole machine, rather than a limited setup or specific network interfaces. It turns out this is just a simple interface on top of generic tools that comes with the OS out of the box.&lt;&#x2F;p&gt;
&lt;p&gt;Most recent macOS versions ship with OpenBSD&#x27;s &lt;code&gt;pf&lt;&#x2F;code&gt; firewall out of the box, however, quick check with &lt;code&gt;pfctl&lt;&#x2F;code&gt; will show that ALTQ (alternate queueing) is not supported. Instead of ALTQ support, macOS version of pf ships with &lt;a href=&quot;https:&#x2F;&#x2F;www.freebsd.org&#x2F;cgi&#x2F;man.cgi?query=dummynet&amp;amp;sektion=4&amp;amp;manpath=freebsd-release-ports&quot;&gt;dummynet&lt;&#x2F;a&gt; support, controlled by &lt;code&gt;dnctl&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Supermoon Eclipse</title>
        <published>2019-02-16T21:13:11-08:00</published>
        <updated>2019-02-16T21:13:11-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2019/02/supermoon-eclipse/"/>
        <id>tag:oyam.ca,2010:/blog/2019/02/supermoon-eclipse/</id><content type="html" xml:base="https://oyam.ca/blog/2019/02/supermoon-eclipse/">&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;02&#x2F;supermoon-eclipse.jpg&quot; title=&quot;Belated photo of the supermoon eclipse from January 20, 2019.&quot;&#x2F;&gt;
  &lt;figcaption&gt;Belated photo of the supermoon eclipse from January 20, 2019.&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">RIP Opportunity</title>
        <published>2019-02-13T12:27:15-08:00</published>
        <updated>2019-02-13T12:27:15-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2019/02/rip-opportunity/"/>
        <id>tag:oyam.ca,2010:/blog/2019/02/rip-opportunity/</id><content type="html" xml:base="https://oyam.ca/blog/2019/02/rip-opportunity/">&lt;blockquote&gt;
&lt;p&gt;The Opportunity rover stopped communicating with Earth when a severe Mars-wide dust storm blanketed its location in June 2018. After more than a thousand commands to restore contact, engineers in the Space Flight Operations Facility at NASA&#x27;s Jet Propulsion Laboratory (JPL) made their last attempt to revive Opportunity Tuesday, to no avail. The solar-powered rover&#x27;s final communication was received June 10.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Fifteen years and more than 45 kilometers... That&#x27;s pretty good for a rover that was designed to operate for about 90 days and travel one kilometer. A very fitting &lt;a href=&quot;https:&#x2F;&#x2F;xkcd.com&#x2F;2111&#x2F;&quot;&gt;XKCD comic&lt;&#x2F;a&gt; to say goodbye.&lt;&#x2F;p&gt;
&lt;figure&gt;
  &lt;img src=&quot;https:&#x2F;&#x2F;imgs.xkcd.com&#x2F;comics&#x2F;opportunity_rover.png&quot; title=&quot;Thanks for bringing us along&quot;&#x2F;&gt;
  &lt;figcaption&gt;Thanks for bringing us along&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Thanks for bringing us along, indeed!&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Is Sunscreen the New Margarine?</title>
        <published>2019-01-15T12:00:28-08:00</published>
        <updated>2019-01-15T12:00:28-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2019/01/sunscreen/"/>
        <id>tag:oyam.ca,2010:/blog/2019/01/sunscreen/</id><content type="html" xml:base="https://oyam.ca/blog/2019/01/sunscreen/">&lt;blockquote&gt;
&lt;p&gt;How did we get through the Neolithic Era without sunscreen? Actually, perfectly well. What’s counterintuitive is that dermatologists run around saying, &quot;Don’t go outside, you might die.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html"></title>
        <published>2019-01-11T10:35:10-08:00</published>
        <updated>2019-01-11T10:35:10-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2019/01/technology-is-imposed/"/>
        <id>tag:oyam.ca,2010:/blog/2019/01/technology-is-imposed/</id><content type="html" xml:base="https://oyam.ca/blog/2019/01/technology-is-imposed/">&lt;blockquote&gt;
&lt;p&gt;Technology is imposed on the land, but technique means conforming to the landscape. They work in opposite ways, one forcing a passage while the other discovers it. The goal of developing technique is to conform to the most improbable landscape by means of the greatest degree of skill and boldness supported by the least equipment.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">2018 Photo Picks</title>
        <published>2019-01-07T21:44:38-08:00</published>
        <updated>2019-01-07T21:44:38-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2019/01/2018-picks/"/>
        <id>tag:oyam.ca,2010:/blog/2019/01/2018-picks/</id><content type="html" xml:base="https://oyam.ca/blog/2019/01/2018-picks/">&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;blog&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;overview.jpg&quot; title=&quot;2018 Photo Picks&quot;&#x2F;&gt;
  &lt;figcaption&gt;2018 Photo Picks&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;At the beginning of this year, I ran across &lt;a href=&quot;&#x2F;blog&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;ab&quot;&gt;Alex Burke&#x27;s&lt;&#x2F;a&gt; blog, while researching about film scanning. Among loads of other useful posts, I noticed Alex&#x27; &quot;The Bets Of ...&quot; posts, where he picks of 9(ish) of his best shots of the year.&lt;&#x2F;p&gt;
&lt;p&gt;I really like this idea. It&#x27;s a great opportunity to go through all the photos I&#x27;ve taken over the year, remember and re-live some of the memories, as well as take a more critical look at the photos and make purposeful choices.&lt;&#x2F;p&gt;
&lt;p&gt;I like the format of nine shots. It&#x27;s enough to capture the year, make a concise presentation, yet it&#x27;s small enough to force some contention and force critical look for the picks. Albeit, I took a slightly different angle and my picks aren&#x27;t necessarily the best picks, but they are the ones that mean most to me, be it because they are some of the best, or because they recall the best memories.&lt;&#x2F;p&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;IMG_1185.jpg&quot; title=&quot;Alpaca in a field&quot;&#x2F;&gt;
  &lt;figcaption&gt;Alpaca in a field&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;We took our dog for a walk while visiting relatives, and found this lone alpaca in the field. The alpaca was sensing our dog, so I didn&#x27;t have much time to grab a shot. It&#x27;s a little oddly framed, but that&#x27;s partially why I like it.&lt;&#x2F;p&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;IMG_1673.jpg&quot; title=&quot;Sunset at Rathtrevor Beach&quot;&#x2F;&gt;
  &lt;figcaption&gt;Sunset at Rathtrevor Beach&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;It poured for two days straight, but eventually we were rewarded by a beautiful sunset.&lt;&#x2F;p&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;raw0010.jpg&quot; title=&quot;The British Columbia Sugar Refining Company, Ltd&quot;&#x2F;&gt;
  &lt;figcaption&gt;The British Columbia Sugar Refining Company, Ltd&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Experimenting with my &lt;a href=&quot;&#x2F;blog&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;kiev80&quot;&gt;Kiev 80&lt;&#x2F;a&gt; camera and scanning film.&lt;&#x2F;p&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;IMG_1904.jpg&quot; title=&quot;Collection of ropes. Cannery museum near Prince Rupert, BC.&quot;&#x2F;&gt;
  &lt;figcaption&gt;Collection of ropes. Cannery museum near Prince Rupert, BC.&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;IMG_1952.jpg&quot; title=&quot;Onward and upward&quot;&#x2F;&gt;
  &lt;figcaption&gt;Onward and upward&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;Hiking steep trails on Haida Gwaii, BC.&lt;&#x2F;p&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;IMG_1598.jpg&quot; title=&quot;Views around Smithers, BC&quot;&#x2F;&gt;
  &lt;figcaption&gt;Views around Smithers, BC&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;IMG_2347.jpg&quot; title=&quot;A fall hike at Mt. Shuksan, Wa&quot;&#x2F;&gt;
  &lt;figcaption&gt;A fall hike at Mt. Shuksan, Wa&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;IMG_1708.jpg&quot; title=&quot;Fall in Vancouver&quot;&#x2F;&gt;
  &lt;figcaption&gt;Fall in Vancouver&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;media&#x2F;images&#x2F;photos&#x2F;2019&#x2F;01&#x2F;2018-picks&#x2F;raw0001.jpg&quot; title=&quot;Goat on a roof. Coombs, BC&quot;&#x2F;&gt;
  &lt;figcaption&gt;Goat on a roof. Coombs, BC&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;These goats are so much fun. I love their fuzzy beards and behinds. Shot on Fuji Pro 400H with Kiev 80.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">The Real Story Behind The Havana Embassy Mystery</title>
        <published>2019-01-07T21:25:15-08:00</published>
        <updated>2019-01-07T21:25:15-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2019/01/cuba-mass-hysteria/"/>
        <id>tag:oyam.ca,2010:/blog/2019/01/cuba-mass-hysteria/</id><content type="html" xml:base="https://oyam.ca/blog/2019/01/cuba-mass-hysteria/">&lt;blockquote&gt;
&lt;p&gt;If you view what happened to the diplomats in Havana as an “attack,” you must look for something capable of producing such an assault. It would have to emit a sound that varied widely from listener to listener. It would have to strike only people who worked at the embassy. It would have to assail them wherever they happened to be, whether in their homes or staying at a hotel. It would have to produce a wide range of symptoms that seemed to bear no relation to one another. And it would have to start off small, with one or two victims, before spreading rapidly to everyone in the group.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;As it happens, there is and always has been one mechanism that produces precisely this effect in humans. Today it’s referred to in the medical literature as conversion disorder—that is, the conversion of stress and fear into actual physical illness. But most people know it by an older, creakier term: mass hysteria. [...]&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html"></title>
        <published>2019-01-01T19:38:38-08:00</published>
        <updated>2019-01-01T19:38:38-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2019/01/new-years-fortunecookie/"/>
        <id>tag:oyam.ca,2010:/blog/2019/01/new-years-fortunecookie/</id><content type="html" xml:base="https://oyam.ca/blog/2019/01/new-years-fortunecookie/">&lt;blockquote&gt;
&lt;p&gt;Your genuine talent will find its way to success.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;Thanks, fortune cookie! I&#x27;m ready to see what 2019 will bring.&lt;&#x2F;p&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Growing the future</title>
        <published>2018-12-28T10:42:42-08:00</published>
        <updated>2018-12-28T10:42:42-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2018/12/growing-the-future/"/>
        <id>tag:oyam.ca,2010:/blog/2018/12/growing-the-future/</id><content type="html" xml:base="https://oyam.ca/blog/2018/12/growing-the-future/">&lt;blockquote&gt;
&lt;p&gt;In agricultural applications, LED lights are used in ways that seem to border on alchemy, changing how plants grow, when they flower, how they taste and even their levels of vitamins and antioxidants. The lights can also prolong their shelf life.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Don’t discard. Keep all your pieces in play.</title>
        <published>2018-12-28T08:06:42-08:00</published>
        <updated>2018-12-28T08:06:42-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2018/12/dont-discard/"/>
        <id>tag:oyam.ca,2010:/blog/2018/12/dont-discard/</id><content type="html" xml:base="https://oyam.ca/blog/2018/12/dont-discard/">&lt;blockquote&gt;
&lt;p&gt;You’re telling me that there are three things you love and you want me to tell you which two to cut off…so you can limp along on the other one? This is not how things work. The advice I have for you is: don’t discard. Find a way to keep all three of these things in the mix.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html"></title>
        <published>2018-12-26T22:21:10-07:00</published>
        <updated>2018-12-26T22:21:10-07:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2018/12/communication-dream-feeling/"/>
        <id>tag:oyam.ca,2010:/blog/2018/12/communication-dream-feeling/</id><content type="html" xml:base="https://oyam.ca/blog/2018/12/communication-dream-feeling/">&lt;blockquote&gt;
&lt;p&gt;It seems to me, that if we love, we grieve. That’s the deal. That’s the pact. Grief and love are forever intertwined. Grief is the terrible reminder of the depths of our love and, like love, grief is non-negotiable. There is a vastness to grief that overwhelms our minuscule selves. We are tiny, trembling clusters of atoms subsumed within grief’s awesome presence. It occupies the core of our being and extends through our fingers to the limits of the universe. Within that whirling gyre all manner of madnesses exist; ghosts and spirits and dream visitations, and everything else that we, in our anguish, will into existence. These are precious gifts that are as valid and as real as we need them to be. They are the spirit guides that lead us out of the darkness.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I feel the presence of my son, all around, but he may not be there. I hear him talk to me, parent me, guide me, though he may not be there. He visits Susie in her sleep regularly, speaks to her, comforts her, but he may not be there. Dread grief trails bright phantoms in its wake. These spirits are ideas, essentially. They are our stunned imaginations reawakening after the calamity. Like ideas, these spirits speak of possibility. Follow your ideas, because on the other side of the idea is change and growth and redemption. Create your spirits. Call to them. Will them alive. Speak to them. It is their impossible and ghostly hands that draw us back to the world from which we were jettisoned; better now and unimaginably changed.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Subtract</title>
        <published>2018-12-26T21:06:42-08:00</published>
        <updated>2018-12-26T21:06:42-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2018/12/subtract/"/>
        <id>tag:oyam.ca,2010:/blog/2018/12/subtract/</id><content type="html" xml:base="https://oyam.ca/blog/2018/12/subtract/">&lt;blockquote&gt;
&lt;p&gt;Imagine a horizontal line, with 0 on the left and 20 on the right. I want to be in the middle, at 10. But I’m at 17.&lt;&#x2F;p&gt;
&lt;p&gt;No amount of adding will get me where I want to be.&lt;&#x2F;p&gt;
&lt;p&gt;The adding mindset is deeply ingrained. It’s easy to think I need something else. It’s hard to look instead at what to remove.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry><entry xml:lang="en">
        <title type="html">Unlearning</title>
        <published>2018-12-26T21:01:42-08:00</published>
        <updated>2018-12-26T21:01:42-08:00</updated>
        
        <author>
          <name>
            
              Mayo Jordanov
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://oyam.ca/blog/2018/12/unlearning/"/>
        <id>tag:oyam.ca,2010:/blog/2018/12/unlearning/</id><content type="html" xml:base="https://oyam.ca/blog/2018/12/unlearning/">&lt;blockquote&gt;
&lt;p&gt;Where I had expertise before, I don’t necessarily now. People ask my advice on things I knew well years ago. It’s tempting to think I still know the answer, but instead I have to admit, &quot;Sorry. I don’t know.&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
</content>
        </entry>
</feed>
