{"@attributes":{"version":"2.0"},"channel":{"title":"John Lian","link":"https:\/\/johnlian.net\/","description":"Recent content on John Lian","generator":"Hugo","language":"en-us","lastBuildDate":"Thu, 18 Dec 2025 09:00:00 -0800","item":[{"title":"Stop missing focus with this one-button trick for Sony \u03b16700","link":"https:\/\/johnlian.net\/posts\/tracking-expand-spot-bird-button\/","pubDate":"Thu, 18 Dec 2025 09:00:00 -0800","guid":"https:\/\/johnlian.net\/posts\/tracking-expand-spot-bird-button\/","description":"<p>The Sony \u03b16700&rsquo;s subject recognition feels magical until the bird is small in frame or the background is busy. Then &ldquo;Wide + Bird&rdquo; starts looking like a coin flip. If you&rsquo;ve been frustrated by this, you&rsquo;re not alone<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup>.<\/p>\n<p>The fix: stop asking the camera to <em>find<\/em> the subject and start <em>telling<\/em> it where to begin.<\/p>\n<h2 id=\"the-problem-wide-af-with-subject-recognition-can-get-confused\">The problem: Wide AF with Subject Recognition can get confused<\/h2>\n<p>My default Focus Area is <strong>Wide<\/strong> (<a href=\"#why-use-wide-as-default\">why?<\/a>). With <strong>Subject Recog in AF<\/strong> enabled and set to Bird, Sony <a href=\"https:\/\/helpguide.sony.net\/ilc\/2320\/v1\/en\/contents\/211h_subject_recognition_af.html\">prioritizes recognized subjects<\/a> inside or around that area.<\/p>"},{"title":"When \u201cdowngrading\u201d to ARC fixes everything","link":"https:\/\/johnlian.net\/posts\/arc-downgrade\/","pubDate":"Tue, 18 Nov 2025 09:00:00 -0800","guid":"https:\/\/johnlian.net\/posts\/arc-downgrade\/","description":"<p>In the <a href=\"https:\/\/johnlian.net\/posts\/hdmi-cec\/\">Raspberry Pi CEC automation<\/a> I mentioned that my Samsung TV is on <strong>ARC (not eARC)<\/strong>. This is the backstory: eARC wouldn\u2019t stay put, so dropping back to ARC was the only reliable option.<\/p>\n<h2 id=\"setup\">Setup<\/h2>\n<p>Samsung <strong>S95B<\/strong> hangs on the wall, its eARC port feeds a <strong>Denon AVR-X1700H<\/strong>, and every source runs through the receiver with CEC enabled.<\/p>\n<p>With <strong>HDMI eARC Mode = Auto<\/strong>, the S95B would sometimes boot to TV Speakers instead of \u201cReceiver (HDMI-eARC),\u201d silently fall back to TV Speakers after source changes, and after the 1651 firmware update it would wake up that way every single time even with an ARC\/eARC device attached (<a href=\"https:\/\/eu.community.samsung.com\/t5\/tv\/s95b-update-1651-defaults-the-output-to-tv-speakers-at-startup\/td-p\/11349869?utm_source=chatgpt.com\" title=\"S95B Update 1651 defaults the output to TV Speakers at startup\">Samsung Community<\/a>).<\/p>"},{"title":"Fix HDMI-CEC weirdness with a Raspberry Pi and a $7 cable","link":"https:\/\/johnlian.net\/posts\/hdmi-cec\/","pubDate":"Sat, 15 Nov 2025 10:00:00 -0700","guid":"https:\/\/johnlian.net\/posts\/hdmi-cec\/","description":"<p>For years I treated <a href=\"https:\/\/en.wikipedia.org\/wiki\/Consumer_Electronics_Control\">HDMI-CEC<\/a> like a house spirit: sometimes helpful, mostly temperamental, never fully understood. My living-room stack is straightforward: Samsung TV on <a href=\"https:\/\/en.wikipedia.org\/wiki\/HDMI#ARC_and_eARC\">ARC<\/a> (NOT eARC - story for another day), Denon AVR-X1700H hidden in a closet, Apple TV plus a bunch of consoles connected to the receiver, and a <a href=\"https:\/\/www.raspberrypi.com\/products\/raspberry-pi-4-model-b\/\">Raspberry Pi 4<\/a> already doing <a href=\"https:\/\/homebridge.io\/\">Homebridge<\/a> duty. When it comes to CEC, the Apple TV handles it like a dream, but every console behaves like it missed the last week of CEC school. They wake the TV, switch the input, then leave the Denon asleep so I\u2019m back to toggling audio outputs manually.<\/p>"},{"title":"To get 4K60 for Hades 2 on Switch 2, disable \u201c120 Hz Output\u201d in system settings","link":"https:\/\/johnlian.net\/posts\/hades2-4k60\/","pubDate":"Fri, 26 Sep 2025 00:49:40 +0000","guid":"https:\/\/johnlian.net\/posts\/hades2-4k60\/","description":"<p>Did a quick search and didn\u2019t see anyone else post this. To get 4K 60 FPS output while docked for Hades 2 on the Switch 2, disabling \u201c120 Hz Output\u201d in Switch 2 System Settings &gt; Display is <em>required<\/em>. <a href=\"https:\/\/www.theverge.com\/news\/785360\/hades-ii-players-on-switch-2-in-tv-mode-can-have-upscaled-4k-or-120fps-but-not-both\">Just choosing 4K TV resolution<\/a> is not enough.<\/p>\n<p>IMO, since the 4K seems to be upscaled, it\u2019s not really enough of an image quality improvement to be worth it. But you could test for yourself.<\/p>"},{"title":"\"Vision Pro's passthrough isn't depth-correct\"...?","link":"https:\/\/johnlian.net\/posts\/vision-pro-passthrough\/","pubDate":"Fri, 15 Mar 2024 23:25:14 +0000","guid":"https:\/\/johnlian.net\/posts\/vision-pro-passthrough\/","description":"<p>This is a long post. <strong>TL;DR: what did Apple do to make Vision Pro&rsquo;s passthrough not feel like crap despite not being depth-correct?<\/strong><\/p>\n<h2 id=\"depth-correct-passthrough-whats-the-big-deal\">Depth-correct passthrough: what&rsquo;s the big deal?<\/h2>\n<p>It&rsquo;s well documented that it&rsquo;s critical for video passthrough mixed reality to be &ldquo;depth-correct&rdquo; (AKA perspective correct) or you&rsquo;ll have issues:<\/p>\n<ul>\n<li><a href=\"https:\/\/spectrum.ieee.org\/steve-mann-my-augmediated-life#:~:text=The%20camera%20was,to%20normal%20vision.\">Unpleasantness that persists even after removing the headset<\/a><\/li>\n<li><a href=\"https:\/\/youtu.be\/bkhA-YqstMM?t=1059\">Can&rsquo;t catch a tossed bottle<\/a><\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/virtualreality\/comments\/18qv6tr\/is_it_worst_to_have_non_perspective_correct\/\">Can&rsquo;t grab things or estimate distances, feels like flailing, looks totally weird, and feels unusably bad<\/a><\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/OculusQuest\/comments\/zeu68a\/why_are_people_confused_about_the_passthrough\/\">Pico 4 passthrough unusable, disorienting<\/a><\/li>\n<li><a href=\"https:\/\/news.ycombinator.com\/item?id=34241128\">&ldquo;The importance of depth-correct passthrough reprojection&hellip; absolutely cannot be understated and is a make or break for general adoption of any MR device&rdquo;<\/a><\/li>\n<\/ul>\n<p>But perhaps the best analysis is <a href=\"https:\/\/kguttag.com\/2023\/09\/26\/apple-vision-pro-part-6-passthrough-mixed-reality-ptmr-problems\/\">this one<\/a> by \/u\/kguttag. The conclusion is clear: if the passthrough is not corrected via <em>reprojection<\/em> to account for the difference between the locations of your eyeballs vs cameras looking outside (<a href=\"https:\/\/youtu.be\/VDwcLDSimXs?t=628\">good quick explanation<\/a>), you&rsquo;re going to have an experience that feels weird at best and at worst unusable, disorienting, or even <a href=\"https:\/\/kguttag.com\/2023\/01\/03\/meta-quest-pro-part-1-unbelievably-bad-ar-passthrough\/#It%20Can%20Be%20Hazardous%20%E2%80%94%20%E2%80%9CVR%20to%20the%20ER%E2%80%9D:~:text=Can%20Be%20Hazardous%20%E2%80%94%20%E2%80%9C-,VR%20to%20the%20ER,-%E2%80%9D\">dangerous<\/a>. You&rsquo;ll have bigger problems than not being able to catch a ball.<\/p>"},{"title":"NFS on k3d inside GitHub Codespaces","link":"https:\/\/johnlian.net\/posts\/k3d-nfs\/","pubDate":"Tue, 26 Sep 2023 08:30:00 -0800","guid":"https:\/\/johnlian.net\/posts\/k3d-nfs\/","description":"<p>I need to use NFS with Kubernetes in GitHub codespaces for reasons. k3d<sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup> already handled my throwaway clusters nicely, so the obvious move was to add an NFS-backed<sup id=\"fnref:2\"><a href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\">2<\/a><\/sup> <code>ReadWriteMany<\/code> volume via <a href=\"https:\/\/github.com\/kubernetes-sigs\/nfs-subdir-external-provisioner\"><code>nfs-subdir-external-provisioner<\/code><\/a>. I expected it to \u201cjust work.\u201d<\/p>\n<p>It did not. Pods sat in <code>ContainerCreating<\/code> until they timed out with <code>mount.nfs: Operation not permitted<\/code>, the same failure called out in <a href=\"https:\/\/github.com\/k3d-io\/k3d\/issues\/1109\">k3d issue #1109<\/a>. The root cause is boring but important: the stock k3s image ships from <code>scratch<\/code><sup id=\"fnref:3\"><a href=\"#fn:3\" class=\"footnote-ref\" role=\"doc-noteref\">3<\/a><\/sup>, so it contains none of the NFS client tools (<code>nfs-utils<\/code>, <code>rpcbind<\/code><sup id=\"fnref:4\"><a href=\"#fn:4\" class=\"footnote-ref\" role=\"doc-noteref\">4<\/a><\/sup>, or even the OpenRC<sup id=\"fnref:5\"><a href=\"#fn:5\" class=\"footnote-ref\" role=\"doc-noteref\">5<\/a><\/sup> metadata needed to start services). GitHub Codespaces run on cgroup v2<sup id=\"fnref:6\"><a href=\"#fn:6\" class=\"footnote-ref\" role=\"doc-noteref\">6<\/a><\/sup>, and k3d tries to be helpful in that environment by swapping in its own entrypoint script, which meant every hand-rolled fix I wrote was silently discarded.<\/p>"},{"title":"Seattle is the #16 most expensive city in the world for dining, #5 in the US","link":"https:\/\/johnlian.net\/posts\/seattle-dining-costs\/","pubDate":"Mon, 29 May 2023 04:08:27 +0000","guid":"https:\/\/johnlian.net\/posts\/seattle-dining-costs\/","description":"<p><em>(Among cities with population of 100,000 or more)<\/em><\/p>\n<p>A few weeks ago I was in Rome, where <a href=\"https:\/\/www.tripadvisor.com\/Restaurant_Review-g187791-d1380808-Reviews-Ristorante_Crispi_19-Rome_Lazio.html\">$$$$ on TripAdvisor<\/a> equates to Ballard prices, I started to wonder <em>how expensive is Seattle for dining<\/em>? <em>Is it top 10?<\/em> I thought it must be but had no data to back it up. Results on Google weren&rsquo;t too helpful. I wanted to understand the cost in absolute terms (not adjusted to local cost of living or purchasing power), like a traveller&rsquo;s perspective.<\/p>"},{"title":"Mystery? Everclear 190 not actually illegal in Washington state?","link":"https:\/\/johnlian.net\/posts\/everclear-190-washington\/","pubDate":"Wed, 29 Mar 2023 20:13:36 +0000","guid":"https:\/\/johnlian.net\/posts\/everclear-190-washington\/","description":"<p>A <a href=\"https:\/\/www.google.com\/search?q=is+everclear+190+legal+in+washington+state\">quick google<\/a> shows that <a href=\"https:\/\/vinepair.com\/articles\/ntk-everclear-guide\/\">the<\/a> <a href=\"https:\/\/worldpopulationreview.com\/state-rankings\/everclear-legal-states\">entire<\/a> <a href=\"https:\/\/luxe.digital\/brand\/everclear\/\">internet<\/a> says that Everclear 190 is illegal (or \u201cbanned\u201d) in Washington state. There\u2019s even <a href=\"https:\/\/www.reddit.com\/r\/Seattle\/comments\/xd070\/places_to_buy_everclear\/\">an \/r\/seattle post from 2015<\/a> that says the same thing.<\/p>\n<p>Open and shut case, right? Not really. You can <a href=\"https:\/\/www.totalwine.com\/spirits\/white-whiskeymoonshine\/everclear-grain-alcohol-190\/p\/5959750?s=1411&amp;igrules=true\">order it for pickup straight from Total Wine\u2019s website<\/a>. Right now it says it\u2019s in stock.<\/p>\n<p>Curious about this discrepancy, I go to Interbay Total Wine to verify. It\u2019s right there, next to a bunch of other high-proof liquors, at &ldquo;Aisle 04, Left, Bay 26&rdquo; just like the website says.<\/p>"},{"title":"Cleaned up the network\/media closet","link":"https:\/\/johnlian.net\/posts\/media-closet\/","pubDate":"Tue, 27 Dec 2022 08:00:00 -0700","guid":"https:\/\/johnlian.net\/posts\/media-closet\/","description":"<p>One closet to house all our networking and media equipment. Most of the hard work was done by the previous owner with the CAT6, HDMI, and speaker wires all in wall.<\/p>\n<p><picture>\n <source srcset=\"https:\/\/johnlian.net\/posts\/media-closet\/01-closet-overview_hu_a12e103e00c4b747.webp\" type=\"image\/webp\">\n <img src=\"https:\/\/johnlian.net\/posts\/media-closet\/01-closet-overview_hu_7b3df0ff13e42bc8.jpg\" alt=\"One closet to house all our networking and media equipment. Most of the hard work was done by the previous owner with the CAT6, HDMI, and speaker wires all in wall.\" loading=\"lazy\">\n<\/picture><\/p>\n<p>Here\u2019s the network panel close up. I&rsquo;m not super stoked about putting my eero gateway in here to act as the router but currently not sure what to upgrade to. Suggestions welcome.<\/p>"},{"title":"I had to patch the Linux kernel to wake my PC using a browser","link":"https:\/\/johnlian.net\/posts\/tinypilot-usb-wake\/","pubDate":"Tue, 16 Aug 2022 08:30:00 -0700","guid":"https:\/\/johnlian.net\/posts\/tinypilot-usb-wake\/","description":"<p>I rely on <a href=\"https:\/\/tinypilotkvm.com\/\">TinyPilot<\/a> to manage a Windows PC that lives in a closet. TinyPilot is a Raspberry Pi-based KVM: it streams HDMI video from the PC and pretends to be a USB keyboard and mouse so I can type over the network. My PC also sleeps aggressively to save power. A real keyboard wakes it. TinyPilot did not, so every remote session began with a trip to the closet. Wake-on-LAN was unreliable on that motherboard, so I decided to make TinyPilot behave like a normal USB keyboard during suspend.<\/p>"},{"title":"PS5 works great with homebridge now","link":"https:\/\/johnlian.net\/posts\/ps5-homebridge\/","pubDate":"Tue, 14 Dec 2021 00:59:04 +0000","guid":"https:\/\/johnlian.net\/posts\/ps5-homebridge\/","description":"<h2 id=\"steps-i-took\">Steps I took<\/h2>\n<ol>\n<li>\n<p>Go to the homebridge terminal, you can SSH or I just used the homebridge UI.<\/p>\n<\/li>\n<li>\n<p>Install <a href=\"https:\/\/github.com\/dhleong\/playactor\">Playactor<\/a> <code>sudo npm install -g playactor<\/code>.<\/p>\n<\/li>\n<li>\n<p>Run <code>playactor browse<\/code> and find your PS5, remember its name like &ldquo;PS5-XXX&rdquo;, you&rsquo;ll need it later.<\/p>\n<\/li>\n<li>\n<p>Run <code>playactor login --host-name PS5-XXX --no-open-urls<\/code> to register your device as a remote play controller. The <code>--no-open-urls<\/code> is important here because by default it tries to open a browser which isn&rsquo;t gonna work if you&rsquo;re using SSH or homebridge UI.<\/p>"},{"title":"State of my home automation in 2018","link":"https:\/\/johnlian.net\/posts\/home-automation-2018\/","pubDate":"Wed, 21 Nov 2018 20:07:29 -0800","guid":"https:\/\/johnlian.net\/posts\/home-automation-2018\/","description":"<p>Since moving to Seattle I have been gradually automating an ordinary apartment. The goal is not to build a trade-show demo; it is to make the lights, TV, door, and vacuum respond consistently. Online discussions often highlight the worst connected gadgets, but with some patience (and a few hubs) the living room can anticipate daily routines instead of fighting them.<\/p>\n<h2 id=\"where-we-are-and-how-we-got-here\">Where we are and how we got here<\/h2>\n<p>The automation itch started in the laziest way possible: I was already under the blanket and wished the lamp would turn off by itself. That nudge toward <a href=\"https:\/\/www.philips-hue.com\">Philips Hue<\/a> led to <a href=\"https:\/\/www.apple.com\/ios\/home\/\">HomeKit<\/a>, which led to buying a <a href=\"https:\/\/www.raspberrypi.org\">Raspberry Pi<\/a> at 1 a.m. because I could not believe there was no native way to control the TV. Once one subsystem cooperated, every other annoyance turned into a candidate for automation. The snapshot below shows the apartment as it stands today.<\/p>"},{"title":"Call Tesla if you move countries after making your Model 3 reservation","link":"https:\/\/johnlian.net\/posts\/tesla-move-countries\/","pubDate":"Fri, 20 Apr 2018 23:13:43 +0000","guid":"https:\/\/johnlian.net\/posts\/tesla-move-countries\/","description":"<p>I made my reservation on presentation day on March 31, 2016 when I used to live in Canada. I moved to the US later that year, so I went to Tesla&rsquo;s website to update my account info with my new US address.<\/p>\n<p>I got the invite to configure my Model 3 last weekend and noticed that everything was in CAD$. I called sales who told me that I need to cancel my old reservation and make a new one with US in the settings, and that they would honor my place in line. It&rsquo;s nice that Tesla would do this but they also noted that this process can take up to 20 business days - an entire month.<\/p>"},{"title":"Get reliable connection with your HomeKit devices","link":"https:\/\/johnlian.net\/posts\/reliable-homekit\/","pubDate":"Mon, 19 Feb 2018 19:33:06 -0500","guid":"https:\/\/johnlian.net\/posts\/reliable-homekit\/","description":"<p><em>Update June 2021: people felt the methods in this post are <a href=\"https:\/\/www.reddit.com\/r\/HomeKit\/comments\/b72vii\/how_i_completely_fixed_not_responding\/\">too extreme<\/a>. Fortunately, ASUS has since published <a href=\"https:\/\/www.asus.com\/support\/FAQ\/1042475\/\">a new support article on this topic<\/a>, and I&rsquo;ve heard that it works better. I haven&rsquo;t tried it myself since I changed to eero (which works perfect with HomeKit) more than a year ago. Original post below.<\/em><\/p>\n<p>I&rsquo;ve had pretty good experiences with HomeKit with Philips Hue and Lutron Caseta. However, I noticed that standalone devices (ones that don&rsquo;t have hubs) would often show &ldquo;No Response&rdquo; in HomeKit. This post shows some things that I learned trying to get all my devices to be reliable.<\/p>"},{"title":"Deal with Homebridge crashing","link":"https:\/\/johnlian.net\/posts\/homebridge-setup\/","pubDate":"Fri, 16 Feb 2018 19:30:35 -0500","guid":"https:\/\/johnlian.net\/posts\/homebridge-setup\/","description":"<p><a href=\"https:\/\/github.com\/nfarina\/homebridge\">Homebridge<\/a> is a key part to my home automation setup. I run it on a Raspberry Pi (gen 1, pictured in header) and it allows me to integrate my TV, Apple TV, and robot vacuum into HomeKit. However, it does crash quite a bit. Here are some things I did to make Homebridge easier to deal with.<\/p>"},{"title":"Last day at robotics","link":"https:\/\/johnlian.net\/posts\/appreciated\/","pubDate":"Sun, 24 May 2015 20:07:29 -0800","guid":"https:\/\/johnlian.net\/posts\/appreciated\/","description":"<p>In our last meeting for the 2014-2015 FRC season, I received this gift from the team.<\/p>\n<p><picture>\n <source srcset=\"https:\/\/johnlian.net\/posts\/appreciated\/award_hu_ba138beef94f795a.webp\" type=\"image\/webp\">\n <img src=\"https:\/\/johnlian.net\/posts\/appreciated\/award_hu_8170ff66cb955cb9.jpg\" alt=\"Team appreciation award\" loading=\"lazy\">\n<\/picture><\/p>\n<p>I was pretty speechless. Thanks team.<\/p>"},{"title":"Efficient animation with MATLAB","link":"https:\/\/johnlian.net\/posts\/matlab-animation\/","pubDate":"Wed, 20 May 2015 20:07:29 -0800","guid":"https:\/\/johnlian.net\/posts\/matlab-animation\/","description":"<p>I used animation to help me visualize some of the work I did for my <a href=\"https:\/\/johnlian.net\/projects\/thesis.pdf\">honours thesis<\/a> (PDF warning). Prior to <a href=\"http:\/\/www.mathworks.com\/help\/matlab\/graphics-changes-in-r2014b.html\">MATLAB R2014b&rsquo;s major graphics changes<\/a>, it wasn&rsquo;t exactly easy to create efficient animations with MATLAB, so I spent some time figuring out the best way to do it.<\/p>"},{"title":"Team 4955's website is up!","link":"https:\/\/johnlian.net\/posts\/team-4955-website\/","pubDate":"Tue, 20 Jan 2015 20:07:29 -0800","guid":"https:\/\/johnlian.net\/posts\/team-4955-website\/","description":"<p>Thanks to the business team, the website can now be found at <a href=\"http:\/\/www.frc4955.com\">http:\/\/www.frc4955.com<\/a><\/p>"}]}}