{
    "version": "https://jsonfeed.org/version/1",
    "title": "Millards Corner",
    "description": "",
    "home_page_url": "https://www.millardscorner.com",
    "feed_url": "https://www.millardscorner.com/feed.json",
    "user_comment": "",
    "icon": "https://www.millardscorner.com/media/website/cropped_circle_image.png",
    "author": {
        "name": "John Millard"
    },
    "items": [
        {
            "id": "https://www.millardscorner.com/blog/defining-ai-literacies-project/",
            "url": "https://www.millardscorner.com/blog/defining-ai-literacies-project/",
            "title": "Defining AI Literacies Project",
            "summary": "For the past year, I've been participating in a research project sponsored by Ithaka S+R with collegues here at Miami. We've been part of a larger cohort of over 30 colleges and universities to The Miami Team decided to focus on an institutional strength, high&hellip;",
            "content_html": "<p>For the past year, I've been participating in a research project sponsored by <a href=\"https://sr.ithaka.org/\" target=\"_blank\" rel=\"noopener noreferrer\">Ithaka S+R</a> with collegues here at Miami.  We've been part of a larger cohort of over 30 colleges and universities to</p>\n<blockquote>...consider how existing information literacy frameworks can be adapted or revised to reflect AI-driven transformations in the information economy. Each participating institution will conduct qualitative research to understand the changing information practices and needs of students and instructors, using instruments developed in consultation with methodological experts at Ithaka S+R. Working in collaboration with Ithaka S+R and in conversation with other cohort members, participating institutions will identify how libraries and other university units can weave AI literacy into their existing operations, leveraging programs or initiatives that center on information, digital, or metaliteracy.</blockquote>\n<p>The Miami Team decided to focus on an institutional strength, high achieving undergraduates and their faculty in the University Honors College.  With the help of the Dean of the Honors College, we solicited a cohort of undergraduate honors students and faculty teaching honors sections.  Our interview transcripts have been incorporated into the larger cohort's work with Ithaka S+R but our initial findings were interesting as well.  Those initial observations can be found here. <a>https://docs.google.com/presentation/d/1QAHR-bCJ8nPL01qAGQxu-XBK1U5uWkbbfbZZo7l5hCk/edit?usp=sharing</a></p>\n<p>What we learned from our faculty and students has been instrumental as we plan services to support AI literacy initiatives on campus.</p>",
            "author": {
                "name": "John Millard"
            },
            "tags": [
                   "research",
                   "literacy",
                   "ithaka",
                   "AI"
            ],
            "date_published": "2026-08-31T11:44:15-04:00",
            "date_modified": "2026-09-09T08:42:05-04:00"
        },
        {
            "id": "https://www.millardscorner.com/blog/ssh-tunnel-for-vnc-that-autocloses-when-idle/",
            "url": "https://www.millardscorner.com/blog/ssh-tunnel-for-vnc-that-autocloses-when-idle/",
            "title": "SSH Tunnel for VNC that autocloses when idle",
            "summary": "In the category of \"Things I pieced together with help from users on the Internet...\" Task: run vnc remote display through a ssh tunnel to encrypt traffic from a localhost to a remote VNC (in this case, from my work laptop to my home Mac&hellip;",
            "content_html": "<p><!-- obsidian --></p>\n<p>In the category of \"Things I pieced together with help from users on the Internet...\"</p>\n<p>Task: run vnc remote display through a ssh tunnel to encrypt traffic from a localhost to a remote VNC (in this case, from my work laptop to my home Mac mini).  I'll leave how to configure your home Internet service to allow incoming external connections to vncserver as an exercise for the reader.</p>\n<p>-- From: <a href=\"https://unix.stackexchange.com/questions/83806/how-to-kill-ssh-session-that-was-started-with-the-f-option-run-in-background\" class=\"external-link\" target=\"_blank\" rel=\"noopener nofollow\">https://unix.stackexchange.com/questions/83806/how-to-kill-ssh-session-that-was-started-with-the-f-option-run-in-background</a></p>\n<p>Using this advice, create a one line command to create the ssh tunnel, launch the VNC client, and destroy the tunnel after disconnecting the VNC client</p>\n<p>Before setting this up, setup ssh key-based logins from the localhost to the remote host so there are no login details to exchange.</p>\n<blockquote>\n<p>Localhost: ssh-keygen<br>localhost: sftp remote host : transfer public key<br>Remotehost: cat .pub &gt;&gt; ~/.ssh/authorized_keys</p>\n</blockquote>\n<p>The following one line command creates the SSH tunnel on localhost port 5901 to remote host 5900 which is the default port for VNC.  Screenshare on the Mac, at it's core, is Apple's implementation of VNC.</p>\n<blockquote>\n<p>ssh -f -L 5901:localhost:5900 me@remotehost.example.org sleep 10; open vnc://localhost:5901</p>\n</blockquote>\n<p>This creates the tunnel, and executes the \"sleep 10\" command on the remote host, suspends the SSH session and then executes the localhost application, in this case the native vnc app on the Mac. As long as the vnc app connects before the 10 seconds that sleep is waiting, it should connect. See the StackExcahnge post linked above for the technique, relevant comment pasted below:</p>\n<p>--</p>\n<blockquote>\n<p>As it has been mentioned previously, instead of using the -f -N switch combination, we can just use -f alone, but also execute a command on the remote machine. But, which command should be executed, since we only need to initialize a tunnel?</p>\n<p>This is when sleep can be the most useful command of all! In this particular situation, sleep has two advantages:</p>\n<ul>\n<li>it does nothing, so no resources are consumed</li>\n<li>the user can specify for how long it will be executed</li>\n</ul>\n<p>How these help in auto-closing the ssh tunnel is explained below.</p>\n<p>We start the ssh session in the background, while executing the sleep command for 10 seconds on the remote machine. The number of seconds is not crucial. At the same time, we execute vncviewer exactly as before:</p>\n</blockquote>\n<pre><code>[me@local]$ ssh -f -L 25901:127.0.0.1:5901 me@remote.example.org sleep 10; \\\n          vncviewer 127.0.0.1:25901:1\n</code></pre>\n<p>In this case, the ssh client is instructed to fork the ssh session to the background (-f), create the tunnel (-L 25901:127.0.0.1:5901) and execute the sleep command on the remote server for 10 seconds (sleep 10).</p>\n<p>The difference between this method and the previous one (-N switch), basically, is that in this case the ssh client’s primary goal is not to create the tunnel, but rather to execute the sleep command for 10 seconds. The creation of the tunnel is some kind of side-effect, a secondary goal. If vncviewer was not used, the ssh client would exit after the 10 sec period, as it would have no more jobs to do, destroying the tunnel at the same time.</p>\n<p>During the execution of the sleep command, if another process, vncviewer in this case, starts using that tunnel and keeps it occupied beyond the 10 sec period, then, even if the ssh client finishes its remote job (execution of sleep), it cannot exit because another process occupies the tunnel. In other words, the ssh client cannot destroy the tunnel because it would have to kill vncviewer as well. When vncviewer stops using the tunnel, then the ssh client exits too, as it has already accomplished its goal.</p>\n<p>This way, no ssh processes are left running in the background.</p>",
            "author": {
                "name": "John Millard"
            },
            "tags": [
                   "ssh",
                   "network",
                   "howto",
                   "hacks"
            ],
            "date_published": "2026-08-28T09:13:00-04:00",
            "date_modified": "2026-09-09T08:42:49-04:00"
        },
        {
            "id": "https://www.millardscorner.com/blog/apple-watch-to-garmin/",
            "url": "https://www.millardscorner.com/blog/apple-watch-to-garmin/",
            "title": "Apple Watch to Garmin",
            "summary": "I absolutely love my Apple Watch Ultra. And I absolutely love my Garmin Edge 540 Cycling GPS. I just wish the two ecosystems would cohabitate better together. The biggest headache? Using the Apple Watch as a Heart Rate strap for the Garmin. So what's the&hellip;",
            "content_html": "<p><!-- obsidian --></p>\n<p>I absolutely love my Apple Watch Ultra. And I absolutely love my Garmin Edge 540 Cycling GPS. I just wish the two ecosystems would cohabitate better together. The biggest headache? Using the Apple Watch as a Heart Rate strap for the Garmin.</p>\n<p><strong>So what's the problem?</strong><br>As health data, the heart rate sensor on the apple watch is only accessible from on-device apps or from apps on the connected iPhone. So, that's a no-go for the Edge 540 which wants to connect to either an ANT+ or Bluetooth HR strap. The obvious solution is to just ditch the Apple Watch and get a cheap chest or optical heart rate monitor, but I wanted to only wear one device on my arm so off I went to find a way to use my Apple Watch!</p>\n<p><strong>Some solutions to try:</strong></p>\n<ul>\n<li><strong>Apple Watch/iPhone Apps as bridge:</strong> There are a handful of apps on the App store that will read the Apple Heart Rate data and rebroadcast that over bluetooth to other devices, like the Garmin. Some apps I tried included <a href=\"https://apps.apple.com/us/app/echo-watch-heart-rate-monitor/id1494679144\" class=\"external-link\" target=\"_blank\" rel=\"noopener nofollow\" aria-label=\"https://apps.apple.com/us/app/echo-watch-heart-rate-monitor/id1494679144\" data-tooltip-position=\"top\">ECHO</a> and <a href=\"https://apps.apple.com/us/app/heartcast-heart-rate-monitor/id1499771124\" class=\"external-link\" target=\"_blank\" rel=\"noopener nofollow\" aria-label=\"https://apps.apple.com/us/app/heartcast-heart-rate-monitor/id1499771124\" data-tooltip-position=\"top\">HeartCast</a> I tested HeartCast on a Wahoo Element Bolt and it would connect as long as the iphone was not paired with the device through the Wahoo app. Users reported that it wouldn't work with Garmin at all so I didn't bother testing it. The ECHO app was just plain flaky. Sometimes it would connect, others it wouldn't. Ironically, ECHO is made by the same developer that provides the solution I actually got to work the best, and which I'm using daily. See below:</li>\n<li><strong>Using a WatchLink Pod hardware device:</strong> This wasn't free, but not having to fiddle with a flaky app was worth the relatively small cost: the <a href=\"https://www.watchlink.app/shop\" class=\"external-link\" target=\"_blank\" rel=\"noopener nofollow\" aria-label=\"https://www.watchlink.app/shop\" data-tooltip-position=\"top\">Watchlink Pod</a> is a small hardware device that you pair with your apple watch through an included app. Once connected to the watch, you use the app itself to control the pod and set it to broadcast over ANT+. Once you start the broadcast, your Pod appears as a device in your Garmin ready to connect. Once you pair the Pod the first time, all you need to do is start the Watchlink App on your watch, click the big red \"Start\" button and a few seconds later your Garmin starts picking up the ANT+ signal.</li>\n</ul>\n<p>The WatchLINK pod is small, about the size of the sensor pod on a chest strap style monitor. I've got it permanently stashed in the tool compartment in my Trek Domane frame. It's powered by a CR2032 battery that they claim will last 3-6 months. It's been working for me flawlessly with only one brief hiccup. After a software update it started dropping signal every 10 minutes or so. Deleting and then reinstalling and re-pairing the pod fixed it and it's been rock solid ever since. I fixed that in the middle of a ride without removing the physical pod from it's hiding place.</p>\n<p>At time of writing (Summer 2025) the Watchlink Pod is going for $59.99 direct from the manufacturer. If you are a Wahoo user, I first tested it on the Bolt V2 and it worked flawlessly on that platform as well.</p>",
            "author": {
                "name": "John Millard"
            },
            "tags": [
                   "wahoo",
                   "howto",
                   "garmin",
                   "cycling",
                   "apple watch"
            ],
            "date_published": "2025-08-08T09:12:00-04:00",
            "date_modified": "2026-09-09T08:43:31-04:00"
        }
    ]
}
