Obsidian, day three

Well, I’m now on day three of my vacation week, and day three of my Obsidian setup. (See here for day one and day two.) I’m going to write up some notes below on various things I’ve been working on.

Obsidian Sync

I signed up for Obsidian Sync, at the $8/month Plus level. For now, I’m paying month-to-month, so it’s actually a $10/month plan. I wasn’t sure if I needed Plus or Standard. My vault is around 700 MB, so it’s under the 1 GB limit. But I initially had some attachments that were over 5 MB, so that might have been an issue. I think I’ve removed or resized all of those now, so I could probably make do with the Standard level. The Plus plan also gets you a full year of revision history, which is nice, so I might stick with that either way. I’m not sure yet.

I’d previously experimented with simply putting my vault in OneDrive and iCloud. OneDrive worked fine for PC/Mac sync, but wouldn’t have worked on iOS. I thought iCloud might work OK on iOS, but it’s a little iffy. So, for now, I’m paying for Obsidian Sync.

Obsidian Sync does seem to work fine on iOS and iPadOS, but there’s one thing I’ve noticed that I didn’t initially think about: Obsidian, even on iOS, is local-first, so your whole vault gets synced to your iPad and iPhone. That’s not a huge problem, but it’s interesting to see that the Obsidian app on my phone is using 800 MB of storage, while Evernote is only using 500 MB. I think Evernote caches a certain amount of information locally, but the design is online-first, so (I think) it’s always going to try to get info from the cloud.

Tasks

My big project today has been converting all of my Evernote reminders to tasks. I’m still a little nervous about this. I’m losing the email reminders and iOS notifications that Evernote provides. So I’m going to have to be good about looking at my main task note in Obsidian. This is how I track important life stuff, like paying bills, so if it falls apart, I’m in trouble.

I’ve now done the migration, and I have 70 tasks in my vault. I did the migration manually, rather than trying to create a script to do it. I wanted to be able to review all of the notes associated with the reminders, and think about them, and maybe revise them a bit.

One thing I did to make this all easier: I assigned a shortcut key to the “create or edit task” command. I used Alt-T for that (Opt-T on the Mac). The pop-up dialog for this is reasonably easy to use. I do have one big problem with it though: there’s no date picker. When I’m setting due dates on tasks, if they don’t need to be done on a specific day, I like to set them to the closest Saturday, which is my usual day for taking care of random to-do items. I guess I’ll have to live without that for now.

To actually view the tasks, I have a “task note” with a number of task queries on it. For now, it looks like this:

task note

(I tried to insert the code here, but WordPress got confused, so I’m just putting a screenshot here.)

So not too fancy. I’d really like to find a way to format this a bit better. Maybe in a table? If there’s a way to show task info in a “base”, I haven’t figured it out yet. I did use a base to show all of my Evernote reminders, and that worked well. I might as well stick that in here too:

views:
  - type: table
    name: Table
    filters:
      and:
        - '!note["EN-Reminder"].isEmpty()'
        - note["EN-Reminder-Done"].isEmpty()
    order:
      - file.name
      - EN-Reminder
      - EN-Reminder-Done
    sort:
      - property: EN-Reminder
        direction: ASC

This is basically showing all notes that had an Evernote reminder, but did not have a “reminder done” date.

In working through my reminders/tasks, I’ve noticed that a lot of them are just reminders to review a given annual subscription before it renews. I think I might look at seeing if there’s a way to categorize these specific tasks and separate them out. Maybe a “#subs” tag or a property. And once I started thinking about properties, I started thinking that I could have a specific type of note with a number of specific properties that I could use to organized my subscriptions. Maybe properties for renewal date, cost, URL, and so on. Well, that’s a project for later maybe.

Images

I may have gone a little overboard with image cleanup today. I installed this plugin, which is a simple little script that renames all images on the current note to match the note title. So, for instance, ‘IMG_1234.jpg’ becomes ‘drivers license 2014.jpg’. It only does this for one note at a time. So I went through my main archive folder and ran it on, probably, around 400 notes. And did some general note cleanup along the way.

I think I need to stop myself from going overboard with miscellaneous note cleanup. It’s easy for me to go down a rabbit hole of doing low-value file maintenance tasks and losing sight of the big picture. This has been a problem for me, in general, really. Obsidian really gives me an opportunity to waste a lot of time fiddling with unimportant stuff, and I need to watch out for that.

(Update: I had some sync issues after all of those image file renames, so I think I’m going to delete the plugin linked above. I don’t know if the sync problems were due to the plugin, or something else, but… better safe than sorry. And I’m hoping that the kind of sync issues I just had aren’t common with Obsidian sync. If they are, then I’m going to need to go back to Evernote!)

Evernote to Obsidian, work in progress

As per my previous post, I went ahead and migrated myself from Evernote to Obsidian yesterday. I’m now almost at the point of no return. (Or at least at the point where I’d have wasted a lot of effort if I were to throw it away now and go back to Evernote.)

I used Yarle for the migration. I’d done several experimental, partial, migrations first. For the final migration, I did all of my Evernote notebooks all at once. (I had a thought in my head that Yarle might resolve cross-notebook links if I did that.) The migration went pretty smoothly, but Yarle seemed to lock up at one point. I checked the count on the output files, and it seemed like it had created all of them, so I did an “end task” on it and proceeded from there.

In the end, I’ve wound up with a lot of broken links. I’m starting to wonder if killing the Yarle process was a mistake. Maybe it had created all of the .md files, but was still reconciling the links? I don’t really know enough about how Yarle works.

Either way, I’m now cleaning up hundreds of broken links. With the broken links plugin, I’m able to at least identify them easily. There are actually two different kinds of broken links in my vault now: there are many ‘regular’ broken Markdown links; I can ID those with the plugin. Then, there are links that point out to share.evernote.com, which didn’t fully get converted to Markdown links. Those are technically ‘valid’ links, but of course they open up my original Evernote notes in a web browser, so I’ll need to clean those up too.

I started doing the link cleanup manually, but at some point, I saw how big the job was getting, and decided to write a couple of helper scripts. With the help of Kagi Assistant, I wrote two PowerShell scripts. The first cleaned up links where Yarle had left them in a format like this:
[[guid/guid|name of link]]
In that case, I wanted to change them to:
[[name of link]]

Here’s the script I used:

 Get-ChildItem -Recurse -Filter *.md | ForEach-Object {
    $content = $_ | Get-Content -Raw
    $new = [regex]::Replace($content,
        '[[[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|([^]]+)]]',
        {param($m) "[[{0}]]" -f $m.Groups[1].Value},
        'IgnoreCase'
    )
    if ($new -ne $content) {
        $_.FullName                    # show changed file
        Set-Content -NoNewline -Path $_.FullName -Value $new
    }
 }

And for the second case, I wanted to clean up the external Evernote links, like this:
[name of link](https://share.evernote.com/note/guid)
To again change them to this:
[[name of link]]

So here’s that script:

Get-ChildItem -Recurse -Filter *.md | ForEach-Object {
    $content = $_ | Get-Content -Raw
    $new = [regex]::Replace($content,
        '[([^]]+)](https?://share.evernote.com/[^)]+)',
        {param($m) "[[{0}]]" -f $m.Groups[1].Value},
        'IgnoreCase'
    )
    if ($new -ne $content) {
        $_.FullName                    # print the altered file
        Set-Content -NoNewline -Path $_.FullName -Value $new
    }
}

I didn’t even really test these scripts, I just backed up my vault, then ran them. And, surprisingly, they seemed to work right on the first attempt.

So that got me through most of the link cleanup. I then did a bunch of manual fixes, and just kept going until the “broken links” list was empty.

(I may have mixed up my tenses in this post. I started writing it as I was working on the migration, and finished it after I got all the link cleanup done. Sorry.)

My next task will likely be attachment cleanup. I guess that’ll go in yet another blog post!

from Evernote to Obsidian, take two

I got an email from Evernote last week letting me know that my subscription price would be increasing to $250/year, effective January 7, when my annual subscription renews. It had gone up to $130/year in 2023. Prior to that, it was $70/year.

I’m not really unhappy with Evernote as a product, or with Bending Spoons as a company, but the price on it is getting a bit ridiculous. Here are some links to articles/videos of other folks talking about the price increase:

I had previously experimented with moving to Obsidian, in 2023, but didn’t go through with it. But now, it’s looking like I really need to do something. Maybe I could afford $250/year for Evernote if I thought they were going to stick with that price for the foreseeable future, and continue making the app better. But I’m just not convinced that they’re on a good trajectory, in terms of my own personal use-case for the product.

Cory Doctorow coined the term en****tification a while back, and it’s a useful term, though I wish he had come up with something that didn’t incorporate one of George Carlin’s seven dirty words you can’t say on TV. Still, it’s a good term. Here’s a Metafilter discussion on the (let’s call it) enpoopification of note-taking software, from 2023. I’m not sure if Evernote really falls into this category, but you could make a good case for it.

So, anyway, I’m back to experimenting with Obsidian. Luckily, I’m taking this coming week off from work, to use up my vacation days for the year, so I’ve got the time for it.

I’ll probably post more about this when I get farther along, but I thought it would be useful to write up some initial notes, informed by my previous efforts, and by watching a whole bunch of YouTube videos.

I’ll start with the process of importing from Evernote. For that, I’m using Yarle. Obsidian now has an official importer for Evernote, but I think Yarle is probably still better. Looking at the commit history on Yarle in Github, I see that the author has continued to work on it. Having tried it out again, I’m not sure if it’s working better than it was in 2023, but it’s definitely working well enough, I think.

I’ve been tweaking my template for Yarle. Here’s what I’ve got at this moment:

---
{title-block}EN-Title: "{title}"{end-title-block}
{created-at-block}EN-Created: {created-at}{end-created-at-block}
{updated-at-block}EN-LastUpdated: {updated-at}{end-updated-at-block}
{source-url-block}EN-SourceURL: {source-url}{end-source-url-block}
{reminder-time-block}EN-Reminder: {reminder-time}{end-reminder-time-block}
{reminder-done-time-block}EN-Reminder-Done: {reminder-done-time}{end-reminder-done-time-block}
{tags-yaml-list-block}Tags: {tags-yaml-list}{end-tags-yaml-list-block}
---
{content-block}{content}{end-content-block}

So I’m putting a bunch of stuff in the “frontmatter” of the note. This stuff is mostly just there for reference; I won’t actually need it going forward. I plan on converting Evernote’s reminders into Obsidian tasks, either manually or via a script or something. And the tags block seems like the cleanest way to get the tags over from EN.

The only setting in Yarle that I’ve changed from the default is to set “store attachments in notebook level” to yes. I’m still not sure about the way I’m dealing with attachments, but I think this is good enough.

As for my Obsidian setup, I think I’ve settled on a batch of plugins that’ll give me most of the functionality I need (with some compromises and caveats). Here’s the list:

  • Notebook Navigator – This is a great one that allows you to get your Obsidian screen to look a lot more like what I’m used to with Evernote. Getting this installed got me past a lot of my hesitation with Obsidian.
  • Omnisearch and Text Extractor – These two should bring some decent search functionality to Obsidian.
  • Tasks – I’m going to try to replace the Evernote reminders functionality using Tasks. I know I won’t be able to do a lot of the stuff that Evernote can do (email reminders for instance), but I think I can get a workable system cobbled together.
  • Broken Links – I’m using this to identify broken links in my imported notes. I’m seeing a lot of problems there, actually. I won’t get into the details here, but I’m going to have a lot of fix-up to do, I think.

Whew. So maybe that’s enough for this blog post. I intend to spend a bunch more time working on this tomorrow.

One thing I want to do this time is to make a relatively quick decision to either switch over or not, and to go all-in on Obsidian if I do. I don’t want to dither on it, and wind up having to renew my Evernote subscription, then spending a lot of time flipping back and forth between the two systems. (I’m kind of doing that with Raindrop.io and Pinboard right now, and it’s not optimal.) Sink or swim!

GitHub Copilot GH-300 exam

I took and passed the GitHub Copilot GH-300 exam last week. That’s the third Microsoft exam I’ve passed this year! (The others were AZ-900 and AZ-204.) This exam was pretty easy. I did these two learning paths from Microsoft:

…and that was it, really. I worked through some of the example projects. And I made a point of trying to use GitHub Copilot for some stuff at work over the last couple of months.

Overall, I’m not that impressed with GitHub Copilot. It’s cool when it works, but when it gets confused, or gives me bad info, then I feel like I’ve wasted my time. Generally, for most stuff, I’ve found that searching Stack Overflow gets me better results than asking Copilot.

I haven’t found a single case yet where trying to get agent mode to do something even mildly complicated produces good results. I have, of course, already hit the issue where agent mode insists that it’s doing something, when in fact it is not doing anything. That’s frustrating. And once it’s gone down that path, you really can’t convince it that it’s lying/hallucinating/whatever.

Maybe I just haven’t learned all the ins and outs of prompting it yet. I’ll keep trying. I’m still not quite “drinking the Kool-Aid” on all of this AI stuff. There’s a lot of overblown hype out there. I do think there’s some usefulness to it, but it’s not as powerful as some people think it is.

Fun With Windows Sandbox

I managed to solve a problem using Windows Sandbox a while back, and I thought I should blog about it.

The basic problem was this: I needed to run a PowerShell script that relied on a specific combination of old modules. It had to be run in the old Windows PowerShell, not PowerShell 7. I had originally hoped that I could find some way to set up a PowerShell sandbox of sorts, but there didn’t seem to be an obvious way to do that. So then I started looking into Windows Sandbox.

We start with a .wsb file that defines the sandbox. Mine looks like this:

<Configuration>
  <Networking>Enable</Networking>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>\\my-pc\c$\dev\Projects\myproject</HostFolder>
      <SandboxFolder>C:\myproject</SandboxFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>c:\myproject\myfolder\sb-start.cmd</Command>
  </LogonCommand>
</Configuration>

This maps \\my-pc\c$\dev\Projects\myproject from my dev VM to C:\myproject in the sandbox.
And it runs c:\myproject\myfolder\sb-start.cmd once the sandbox starts.
I had a little trouble getting all of this right. I really wanted to have the logon command set up the PowerShell environment fully, and maybe even run my script, but that didn’t work.
So the startup command file just has this:

cd C:\myproject\myfolder
explorer.exe .
powershell.exe -executionpolicy unrestricted -command "start powershell {-noexit}"

So it starts Explorer and PowerShell, pointing at my work folder. Good enough.
Then, I manually run a script I call sandbox-setup.ps1, which looks a bit like this:

Write-Warning "This script installs the modules needed for the weird old script." -WarningAction Inquire
Set-ExecutionPolicy RemoteSigned -Force
Install-PackageProvider -Name NuGet -Force
Set-PSRepository PSGallery -InstallationPolicy Trusted
Install-Module -Name WeirdModule -AllowClobber -Scope CurrentUser
Install-Module -Name Az.Accounts -RequiredVersion 2.9.1
Install-Module -Name Az.KeyVault -RequiredVersion 4.6.1

And then I can run the actual script. It produces a .CSV file, which is written to the mapped drive, so I can shut down the sandbox after running the script.

On the one hand, this feels like a kludgey way of doing this. On the other hand, it’s the simplest way I could think of. For more info on running PowerShell scripts in Windows Sandbox, see here.

Thanksgiving weekend check-in

Today is the last day of the four-day Thanksgiving weekend. I had a bunch of stuff on my “maybe to-do” list for this weekend, and one of those items was “write a blog post,” so I’m going to go ahead and do that now. I have a bunch of stuff on my mind, so this is likely to turn into one of those rambling multi-topic posts.

Thanksgiving day itself was uneventful. I don’t really have anybody to hang out with on major holidays anymore, and I’m honestly not even that interested in doing so. I get tired easily, and I get sick easily, so sometimes it’s better to just stay at home and rest.

I wasn’t really sick this weekend, but I did have a kind of low-level thing on Friday that kept me from getting too ambitious about anything.

On Saturday, I had a pretty eventful day. My brother and his wife were driving back to Georgia from Massachusetts, and stopped by here for brunch. So I got to spend around 90 minutes with them, eating a waffle and drinking a bunch of coffee. It turns out that my brother’s wife has some friends in the area who were getting together in Somerville, so that may have been their main reason for stopping here, but either way, I’m glad they could stop by and spend some time. (And I’m now realizing that, for me, a 90 minute brunch counts as “an eventful day”. I didn’t really do much else that day!)

Back on the subject of my “maybe to-do” list: I had a mental list of stuff, of varying levels of actual usefulness, that I could do this weekend. And I did a few of those things. And I did a lot of reading and TV watching. So I’m going to throw some notes about all of that in here.

Book Stuff

I did a good bit of book-related stuff this weekend.

  • I bought a few random “Black Friday deal” ebooks, from Kobo. I’ve been going back and forth between Amazon/Kindle and Kobo recently, when buying ebooks. Sometimes, I find something on sale at Amazon, then I check to see if it’s the same price at Kobo, and if it is, I buy it there. I’m not boycotting Amazon, but I’m not super happy about them lately, and I think it makes sense to try not to rely on them for everything.
  • I also bought a Humble Bundle of Georges Simenon’s Inspector Maigret books this weekend. I’ve been curious about them for quite some time, and the recent Maigret TV series brought them to mind again.
  • And buying that bundle, and a few Kobo books, got me thinking about adding some more of the random non-Amazon ebooks in my library to Goodreads. So I spend a bit of time doing that. I added all of the Discworld books that were part of the bundle I bought last year. And the books from the Ursula Le Guin bundle I bought last Thanksgiving weekend.
  • I also spent some time updating my Calibre setup, including plug-ins, and pulled some more stuff into my Calibre library.
  • And, in terms of actual, y’know, reading: I finished the first book in John Jackson Miller’s Star Trek: Prey trilogy, and started the second. It’s a fun series. I bought the Kindle books back in 2018. (I have so many unread ebooks!)

TV and Movies

I haven’t watched any movies this weekend, but I may finally watch the Fantastic Four movie on Disney+ before the weekend is over.

I started watching Stranger Things season five. There are four episodes up, and I’ve watched one episode per day, on Thursday, Friday, and Saturday, so I’ve got one more to go. It’s pretty good. I’ve enjoyed Stranger Things since the beginning. (It is, of course, explicitly designed for people in my demographic, so it’s not surprising that I’d love it. But I don’t resent that, and I do, in fact, enjoy it very much.) I hadn’t really kept up with the press around it, so I didn’t realize that the four episodes that went up this weekend aren’t the final four episodes. Per this article: “Stranger Things 5 will debut in three volumes this fall: four episodes are now streaming, three episodes
 on Christmas, and the finale episode 
on New Year’s Eve.” So I guess that gives me something fun to do on Christmas and New Year’s too!

Hardware

I did a bit of shopping this weekend for three Apple devices that I’m overdue to replace: my iPhone, iPad, and Watch. My iPhone 14 is three years old, and isn’t holding a charge as well as it used to. Other than that, it’s fine for me, but it wouldn’t be a bad idea to replace it soon. My iPad was purchased in 2019, so that’s the oldest of the three devices, and maybe in most need of replacement. The battery isn’t great, and it’s only got 64 GB of storage, which isn’t quite enough for all of the comics I’d like to keep on it. The Watch is a Series 6 from 2020, and that too is having battery issues. As with the iPhone, it’s really fine aside from the battery issues, but I should probably replace it.

I found deals on both an iPad and Watch at Costco that looked pretty good, but I didn’t order them yet. I’m still not sure if I will or not, but there’s no reason not to.

The iPhone is a little more complicated, since I moved to Consumer Cellular. I can order an iPhone from CC, but they’re out of stock on the iPhone 17, and have been for a while. They have the iPhone 17 Pro, though, so I could get the Pro model this time around. But I don’t need it, so maybe not. Of course, I can buy an iPhone 17 direct from Apple, but CC isn’t one of their supported carriers, so I I would have to get an unlocked one and set it up myself. Which shouldn’t be difficult, but it’s another little barrier that makes me stop and pause. And the trade-in value is a factor too. Apple will give me $220 for my old phone, while CC will only give me around $180.

So I haven’t made a decision on any of my iDevices yet. I did make a snap decision on a device from Amazon yesterday, though, and got it today. I decided to replace my Echo Dot with an Echo Spot. I got the Echo Dot in 2020, to replace my old iHome alarm clock. It’s been a nice little unobtrusive clock, sitting on my nightstand, since then. I don’t really use the Alexa features. It’s just a relatively cheap puck that sits there and shows me what time it is. Once in a while, I say something that sounds like “Alexa” and it starts talking back to me, so that’s frustrating, but it doesn’t happen often.

I’m not sure if I’ll like the Spot more or less than the Dot. The screen is fancier, but I don’t know if it’s going to more readable or less readable, if I wake up at 4 AM and want to know what time it is. I should probably give up on these “smart” things and just get this Braun alarm clock from MOMA.

Final Thoughts

So I guess that’s all of my random ruminating for this weekend. For today, I’ll probably watch some football, read a bit more of the Star Trek novel, and watch the next Stranger Things episode. I already went for a 25-minute walk, so that’s a good start to the day.

The farmers market here in Somerville finished up last weekend, so I don’t have that to look forward to today. I guess I need to get into winter mode now. I started using my humidifier this weekend, so that’s a start.

I’d really glad I got a good four-day weekend of doing “not very much.” I’ve been wearing myself out with work recently, and really needed a break.

old anime

I finally finished watching the Devil Lady anime series yesterday. I mentioned it in a blog post from July 2024; that’s when I started watching it. I started out watching it on DVD (from a box set I bought in 2005), then switched to watching it on Amazon, when I hit a snag with one of the DVDs. Then, it disappeared from Amazon, and I thought I’d watch the final DVD in the set, but there was a problem with that DVD too, so I found that it was streaming on Pluto, and finished watching it there. Overall, I don’t know if it was worth all the effort. But hey, that’s one more anime DVD set I can cross off my bucket list!

The next item on my list is Excel Saga. I started watching that one not long after I started Devil Lady, but only got through disc one. (Both of those shows are the kind of thing I need to be in a fairly specific mood to watch, so I’m not exactly binging either one. I’ll get in the right mood, watch a few episodes, then give up on it for a few months.)

I’ve been having trouble with DVDs a lot lately, and I’m finding that discs that don’t work on my Xbox work fine on my computer’s DVD drive. So I’ve done some DVD ripping recently (well, Dec 2024, so kinda recently), and I seem to have a workflow figured out for that. I’m using HandBrake to rip, and VLC to watch stuff on my Apple TV.

I’m ripping the Excel Saga DVDs right now. (Seemed like a reasonable thing to do on a Sunday.) Of course, I’ve also realized that all of this stuff is on Crunchyroll, which is only $8/month, so I’m not sure why I don’t just give up on the DVDs and stream this stuff.

I was just listening to an episode of Judge John Hodgman where a married couple were arguing about what to do with the husband’s DVD collection after he dies. I think maybe I should be leaning towards getting rid of my collection, but… I don’t want to.

juggling computers

I had some trouble with the VPN client on my work laptop this week, and (long story short), it turns out that I can’t RDP into my work laptop from my home PC and connect to VPN anymore. That’s the way I’ve been doing WFH since 2020 (and probably earlier): I boot up both my home desktop PC and my laptop, then remote into the laptop from the PC, so I can use my full-size keyboard, mouse, and monitor.

But that doesn’t work anymore, and apparently is also a violation of our AUP. (Oops.) Luckily, I have a 2-port KVM here, which I bought when I got my new Windows 11 PC a few months ago. I’ve been using it recently to switch back and forth between the Win 11 PC and the old Win 10 PC, which is now an Ubuntu PC.

So, for now, I’ve got the Win 11 PC on port 1 and my work laptop on port 2. That’s only slightly less convenient than my old method of connecting, but now I need to think about upgrading to a 4-port KVM, so I can have all three machines hooked up at once.

I can’t say I’m thrilled about that idea, since I only just recently bought the 2-port KVM. And I’m not thrilled about all the extra cords I’ll have dangling all over the place. Maybe I should go back to thinking about discarding the old Win 10 (now Ubuntu) PC. I don’t really have a good use case for it; it was just something to do with the old box, for fun. Maybe I should be looking to simplify things, instead of making them even more complicated.

Kagi search and some AI thoughts

I’ve been experimenting with Kagi since March, and subscribed to it, and set it as my default search engine, in May. I thought I’d written up a blog post about that, but I can’t find one. I’ve mentioned Kagi in passing, but I don’t seem to have written a post specifically about Kagi.

I’m on their $5/month “starter” plan, which gives me 300 searches per month. Since Kagi is blocked at work and I can only use it at home, I thought that would likely be enough. Today, I got a notice that I’ve hit my 300 searches and would have to either upgrade or renew my monthly plan early if I wanted more. I like the idea of renewing early; it gives you an out, if you don’t think you’re ready to upgrade but want to reset your allocation and keep searching.

I checked to see where I was in my billing cycle, and my subscription should renew today anyway, so I’m just going to wait and let that happen. It might not renew until end of day, so I guess I’ll just use Bing or DuckDuckGo today. Overall, I’m finding Kagi to be a really good search engine, and going back to any other search engine is now kind of an annoyance.

Kagi also has AI features, though they’re not pushed on you the way they are with Google or Bing. I had some fun this week asking various AI assistants about the existence of a seahorse emoji, after reading this blog post. Kagi’s was the only one that gave a succinct and correct answer:

There is no seahorse emoji in the Unicode Standard. The belief that one exists is a common misconception, often attributed to the Mandela effect.

Most of the others got confused, to various levels. ChatGPT got the most confused and really went wild. Here’s a link to the chat session for that. If I ask it the same question today, it seems to get just a little confused, then gives me the right answer. I assume the seahorse thing went viral enough that the various LLM chat companies have tweaked things now to prevent freakouts.

For work use, I’m mostly limited to Copilot for AI usage. At home, I’ve experimented with a few, including ChatGPT, Claude, and Poe. And I recently got curious about Perplexity and created an account there. There’s an offer now from PayPal where any PayPal or Venmo user can get a free year of Perplexity Pro. I haven’t decided to sign up for that yet, but I thought I should see if Perplexity was any better/different from the other options.

Overall, Perplexity is interesting, but I’m not sure if it’s worth pursuing. They do seem to emphasize integrating search results over having the LLM generate an answer in a vacuum. So I like that. I’m not sure if it’s better than Copilot or Kagi really, though.

I think I’ve decided to focus most of my home AI use, at this point, to Copilot and Kagi Assistant. I’m paying for both, in a sense. My Microsoft 365 subscription gets me higher usage limits for Copilot than if I was a free user. And my paid Kagi subscription includes a certain amount of AI usage. So I want to see if I can focus on using those two tools effectively, vs switching around between the four or five tools I’ve been playing with recently.

Ubuntu and old hardware

I decided to install Ubuntu on my old Windows 10 PC yesterday. My new HP Mini PC has been working fine for a while, and I don’t think I need to keep the old one around “just in case” anymore.

I have a long history of messing around with various Linux distros, but never really sticking with Linux as my main OS, or ever really doing any meaningful work on it. (My Linux tag on this blog has entries back to 2002, and I’ve been using Linux since the 90s, when I first installed Manchester Linux from two floppy disks.)

I’m honestly not sure if I’m going to keep the old machine. It used to be that I could find someone to give my old PCs away to pretty easily, but that’s really not the case anymore. Part of that is maybe not having as many friends and family as I used to, and part of that is PCs being (relatively) cheap and ubiquitous these days. This PC is still “good”, from my perspective, and there’s plenty that could be done with it. But it’s a big tower PC and getting rid of it would allow me to simplify things on my desk a bit, and clean up some of my tangled cables.

Maybe when I’m retired, I’ll become a “tech fairy” like this guy. For now, I guess I’ll just keep the old PC where it is, and boot it up once in a while to play with Linux.

I might as well talk a little bit about the current setup process for Ubuntu and how it compares to my previous experience with Linux distros. First, I should say that it wasn’t hard at all, and I really didn’t hit a single snag. In the past, there’d usually be some issue or another with video drivers or something, but it was all very smooth. I guess that’s the result of years of work smoothing things out with these installers, and maybe also because there’s been some natural convergence over the years, where there are fewer outliers and weird edge cases.

The specific version I installed was Ubuntu 24.04.3 LTS. I’m definitely not at a point where I need the “latest and greatest.” I’m better off with the stable version.

The process was pretty smooth. I first downloaded a 6 GB ISO file, which took some time. Then I used Etcher, their recommended tool, to create a bootable USB stick. Then I booted from the stick and followed the prompts. The actual install process took less than 30 minutes.

Today’s Ubuntu desktop doesn’t look terribly different from how I remember it looking the last time I used Ubuntu on a desktop, which was probably 2015. (How time flies!) In terms of the tools that you get out of the box, with the relatively minimal install that I did, it’s mostly just Firefox and a few other random things. Firefox was enough for me to bootstrap the basic stuff that I really need.

I found that the 1Password Firefox extension works in Linux, so that was good. There seems to even be a 1Password desktop app for Linux, but I didn’t get around to trying that.

There’s no Evernote client for Linux. (Or at least not an official one.) There are a couple of unofficial clients, but I didn’t try those. The web client for Evernote works reasonably well in Firefox, so that’s good enough.

The next thing I tried was Visual Studio Code. That was downloadable from the Ubuntu “App Center.” The install was simple and easy. I didn’t really get very far with VS Code though; I just checked it out to make sure it worked.

If I was serious about doing anything meaningful with Ubuntu, I’d have to do a lot more work figuring things out, but it’s nice to know that I’ve made a start with it, and I could go further if I wanted to.