Note taking is ∞. Personally I'm the Student/Librarian archetype of a note taker.

I've amassed ≈10k text only notes. On macOS I'm using #nvAlt https://brettterpstra.com/projects/nvalt/ which improved upon #NotationalVelocity https://notational.net all syncing via #Simplenote on iOS.

I'm hoping for #nvUltra https://nvultra.com/ by @ttscoff to become publicly available at some point. The betas I was lucky enough to try are phenomenal.

So far, nothing else comes close, for me.

nvALT - BrettTerpstra.com

A new app is coming to replace nvALT: nvUltra. Sign up here for updates here.

BrettTerpstra.com
@MacLemon I'm curious how #NVAlt works with so many notes, and how you separate different types of information? I have really resonated with #Obsidian because different types of notes can be in separate vaults so they don't mix. My work notes are separate from my blog posts or my life management-type docs. How do you keep those separate in NVAlt or #NVUltra? Even having spaces based off different directories would help keep things orderly. @ttscoff
@tedcurran @MacLemon nvUltra allows any folder to be a notebook, and also allows sorting using subdirectories (groups). Everything within a notebook (top-level folder) is still searchable as a flat database. It's much better than nvALT for large note sets.

@ttscoff I like having a choice of multiple folders as sources for my notes. Everything *for me* is .{txt,md} anyway. (.{toml,yml}, etc.) Why not allow any textfile?

- my, completely abandoned, blog sources
- Project documentation in a folder synched with Nextcloud Collectives
- checklists in a git repo

I still would like to access all of that from a single window in a unified view. Let me search across everything in a single view. Don‘t require, but *allow* for multiple windows.

@MacLemon you’re describing an app that operates on a database and tracks indexed locations, which is well beyond scope. You want DEVONthink or the like.

@ttscoff Not necessarily.

Assume I have enough knowledge about Cocoa to be dangerous. I also don’t know about the actual implementation of nvALT.

This is the mental model I have (non first time launch, no error condition)
- nvALT gets launched
- load config from preferences plist to know configured storage format and location (assuming RTF and `.txt` storage backend work the same just with a different for format parser)
- get list of fitting files in Notational Data folder

- read ALL the files
- parse contents into memory structure (use for searching)
- Display window with restored state
… - optionally sync with Simperium, yaddayadda

There may be an `.sqlite` database involved for storing the index to speed things up during launch. (Implementation detail that doesn’t really invalidate my mental model. Even if search is not in memory but on the db file.)

For *nvALT*, it‘s a reasonable assumption that the Notational Data contents do not get changed by a third party *during runtime*.
Filesystem changes between launches are covered by the initial folder parsing at launch and should pick up added or changed files, even if changed by another process while nvALT was running. Assuming no changes to the same file, which likely ends in last-change-wins.

Please correct me if my mental model of how this works is mentionably different from the working concept.

Thanks for bearing with my mind for building up lengthy context.

——— Context switch to nvUltrs (beta)
I can choose one or more arbitrary folder locations.

It is NOT reasonable to assume that the comments do not change by an outside process during application runtime anymore.

eg: User picks a folder which contents are synched by $service like Nextcloud, $corp-drive.

This raises the question: How to deal with:
- additions → easy, pick them up as we learn about them
- deletions → destructive actions are always hard, technically we could just remove themfrom our index. (UI/UX, notification and preferences challenge)
- changes to existing files → need more complex strategy: does the edit conflict with a current effort by the user? NO: pick it up, YES: Prompt user for help. (Handle by simple strategy or diff view and merge.)

Ask this bees filesystem change

notifications, which can be subscribed to in macOS.

Rinse and repeat for multiple folders.

———

If we completely ignore the possibility for outside changes and only update on launch that makes things a lot easier. Totally reasonable. I’d I know about that as a user, I can likely deal with it, even if somewhat incoherent. (Relaunch application, wait for re-index. Happy user.)

Combining the two models:
I can search in both. From a user perspective they behave mostly the same with a single folder/library/notebook.

What I‘d love would be the minimalistic view of nvALT in nvUltra with the capability to search across all the indices in a single go.

Given that the file system push for each file is unique anyway, it could possibly be treated similarly like when operating on a single folder.
Provided we completely ignore outside changes at runtime.

Feel free to ignore this way too long train of thought. There’s sooooo much I still have to learn.

I understand that there is absolutely no obligation for answers or dialog. Also no expectation for either!

@ttscoff Not sure I understand? nvUltra could be made to search multiple folders, no? And then just trawl one after the other when asked. And then be told "don’t return results from this folder right now”.

Or if you use some sort of SQLite database or in-memory NSDictionary or whatever as a cache for faster access, you could tag files with the name of the folder they’re in, and then allow ignoring results with that tag, no?

That's what I understood @MacLemon to be asking. Just a filter.

@uliwitness @MacLemon I think I get frustrated with such requests because I don't actually have control over such things, Fletcher controls the core search functionality of the app and things like this have to be run through him. I'm used to just being able to implement new ideas, not have to rely on others to approve them and code them. Sorry if I seem at all snippy about it, it's borne of a lack of power.

@ttscoff I’m sorry, that was absolutely not my intention! Even though I could not have known that background. (I thought you were equal partners. TIL!)
My thought experiment was not meant as a feature request.

I have to expect nvALT breaking terminally in the near future due to Apples framework changes, or deprecation of Rosetta2.

nvUltra stuck in *perceived* perpetual beta, beyond your realm of influence.

Thanks for nvALT! It was an excellent companion for my brain!
@uliwitness

@MacLemon @uliwitness yeah, I have access to the interface and things like the URL handler and shortcut keys, general UI. But the folder indexing, search, and editing engine are all Fletcher's and he doesn't share the codebase as it's used in his other applications. I just get an opaque library. Overall it's fine, but quite limiting in some regards.

We're *so* close to a release. But we're putting out 1 beta a month right now and it's getting really frustrating to not have time to focus on getting it over the top.

@uliwitness @ttscoff @MacLemon Without thinking that through I’m not convinced that would boil down to a filter. I have hopes that my brain would have come up with “suggesting a filter” if it were “just” that. :-)
@tedcurran @ttscoff It‘s slower to start than a few years ago since it needs to parse all the files at statt I guess. Takes about 3s on an M1 MAX, which is ok. It crashed a little more often by now. Not sure why, but also not really terribly bad. Just slightly annoying when it happens midst typing.
I‘m aware that nvALT is still Intel only running in Rosetta2 on ARM and will not get any updates anymore. That’s why I *need* to move on before it implodes.
@tedcurran @ttscoff Back then I chose RTF as file format and in hindsight that was the wrong choice. May be part of the slight instability I‘m observing. I could easily convert everything to plaintext. I write markdown anyway.
I just don’t want to deal with it without having a good reason to invest the work, aka knowing where to go to.
It works for the moment, and I want this file conversion to be a one time atomic task. (Tested, takes a few minutes. Works.)

As for your organizational questions:
I consider nvALT content to be notes, not like Obsidian as personal knowledge system. nv doesn’t really know about edges between nodes.

I don’t distinguish between work or private or anything that matter. It‘s all MY LIFE. I don’t see a point in separating me from myself by arbitrary criteria. If I need something from my system, it is irrelevant for what I need it. If it’s in there I want to be able to find it.

I don’t use the proper tagging functions at

all, I use some more or less structured keywords and rely on the full-text search capabilities of nvALT.
I could formalize an inline text-tag structure. Sometimes I probably even did but more by effect, than on planned purpose.

What I still love about nvALT:
- it it blazingly fast, NOTHING I tried comes close
- by that I explicitly mean latency
- it behaves like a macOS application should (keyboard shortcuts, text navigation and selection, focus behavior)

That dated, #Obsidian looks interesting, but the sync situation is problematic in my POV. It’s also annoyingly slow in comparison. Takes up a lot of screen real estate and requires me to click things.
Gazillions of plugins make toying around with data appealing, but cause even more latency. (Aka procrastination by playing around with the system itself for the sake of the system.)

nvALT just never gets in the way of my thought and I never have to wait for it to react.