296 points | by thunderbong2 天前
If you are reasonably comfortable with computers / Unix.
- You need to first rely on a directory structures, filenames, plaintext, lists and maybe markdown. Stick with a "File over app", Unix approach.
- Try to sort things with universal concepts: locations, things, people, events, metrics, howtos. A bit like the 5Ws approach.
- Leverage good Unix tools: unix commands, make/justfiles, (rip)grep, git, fzf, etc.
- Do not try to solve the problem through the Web. Because you will end up trying to solve web problems instead of basic knowledge management and productivity issues.
- The smartphone/touchscreen is a major problem, but as with the Web do not try to solve it. Use your file manager or even fzf in termux can be adapted to be reasonably usable on a touchscreen.
Something I have been wondering about is the "backlink" feature. It would be cool to link items/notes together through references. What I would be looking for is a Unix tools that can scan my text files for references to other files in the hierarchy.
The project is just "good enough" for what I need, and aside from tiny bugs whenever I find a gap I can either work around it or live without. Constraints are a powerful motivator for both creativity and getting stuff done.
I’ve found tagging systems usually become a kind of dark swamp where things go never to be seen again. The lack of structure means I have little memory of what’s gone into the system, so I end up with too much duplication of ideas and inconsistency of style (mess). All this makes it uninviting and difficult to ‘explore’, so I don’t use it much except as a dumping ground, and the swampiness compounds over time.
Sometimes I want to look at all notes relating to c++, sometimes everything related to a personal project. Directories don’t support that without symlinking everything that mentions c++ into a folder for that.
We could do the same, either with symlinks or hardlinks
[0] https://en.wikipedia.org/wiki/Universal_Decimal_Classificati...
Non-sym links do exactly this. Starting with your file in foo;
ln foo/file bar/file
will have the file (really a reference-counted pointer) appear in both directories. It's the same location on disk and there's no overhead until you run out of inodes.- I believe BeOS tried,
- MS tried with WinFS but cancelled it in Windows Vista,
- I am sure some cloud storage service bet on it but can't cite any.
Actually tagging is probably mainly successful in cases where we can reliably automate the tagging such as email or photos.
I use my preferred editor (Emacs) to modify the files. I get to use all the functionality like key-bindings, search, version control. I push my notes to my self-hosted Forgejo instance (but it can be Github). Forgejo already has a web-interface the notes and links just work there.
On my laptop, I have mdbook configured to watch the directory and build the notes into static website. So if I just want to go through by notes or read something I can use that as well.
I tried finding solutions to take notes on my phone. But I realised that if its longer than a few lines than I prefer using my laptop anyways. I only ever read my notes on the phone. I've setup the same mdbook behind VPN so I can access it on my phone as well. If I ever want to modify notes on-the-go then I can use the Forgejo web interface as well.
It has worked great for me! That being said, sync and mobile usage is still a bit of a sore spot with it. It works beautifully with Termux, but I wish there was some way to slap a basic UI on top of a CLI application for mobile. Tk/Tcl is the closest but there's only options on Android (I'm mostly an iOS user) and even then it's not really ideal. For sync, I at least have a reasonable plan: IMAP4 or git-based sync. The roadmap and tasks for the project are tracked in-repo with itself, so it definitely works.
I have only relied on fzf so far but have played with the various components of the Termux:API [0] for basic UIs, and it works well.
There is also Termux:GUI [1] with Bash bindings which allows to build more advanced UIs.
You get 5 if you are willing to compromise. Since it's just all text files in directory trees, you can sync the tree to your mobile phone (e.g with syncthing) and just use any text editor.
[1] https://zim-wiki.org/index.html [2] git with an add-on.
----------------------------------
I had an idea for a deeply unix-y note taking software a while ago and I've continued to think it would actually work very well.
Notes could either be an sqlite database (nets you compression, performance, easy backups, etc.) or just text files on the filesystem (easy searching, less lock-in, whatever). The "editor" just creates a new temporary file and opens it in `$EDITOR`. You can optionally name it after, otherwise it's named the current date.
Want linking? Use a filesystem-aware editor. Want syntax highlighting? Use an editor with syntax highlighting. Want to sync your notes? Combine it with Syncthing. Want to search your notes? fzf.
Contributions welcome :)
Either way, what is the problem with it?
> Something I have been wondering about is the "backlink" feature. It would be cool to link items/notes together through references. What I would be looking for is a Unix tools that can scan my text files for references to other files in the hierarchy
The only thing you need is some kind of structure, like the wiki link format or org link format, and you could 'rgrep' the notes directory for a particular link (vim and emacs can put the result in a buffer).
I'm quite happy with Obsidian on Linux, especially due to great plugin ecosystem.
Granted that it would have been great if the clients were open-source; but Obsidian is one of those non-FOSS apps which are so consumer oriented that they get an exception from me.
I sync the files from Obsidian using syncthing to Android & use Markor for editing. But this wouldn't be possible on iOS.
I wrote my own version of it a few years ago, but have moved on, and currently use LogSeq instead: https://github.com/cdaven/noteexplorer
If you use it with reasonable conventions, you can compile and deploy a web version with ghost or zola or something automatically run in CI.
It's backed up, synced, and comes with desktop and mobile apps. It has vim key bindings and git plugins.
It's a pretty sweet system that works nicely with Unix, and it adapts to multiple navigational and organizational paradigms.
I've tried a lot of things, and nothing has ever come close to Obsidian.
sadly, it looks to have dropped off the 'net.
I trust this is why everyone tries to rely on network-like structure.
I can have multiple instances at once, and it's all managed via files and my filesystem.
Eventually I want to build a web frontend to index and reference my data, but for now the above approach is working well.
Unlike Obsidian, TexStudio is open-source, which I consider a plus.
It's an Obsidian knock-off. It's pretty janky and the documentation is lacking. It's open-source which is nice... But the company behind it is ??? I don't know. They are Chinese but I couldn't find much about them.
I use it because I can self-host it, it has most of the features Obsidian has, and I can use it in a web-browser from anywhere - which is the biggest feature for me that Obsidian lacks.
My first impression is that they really wanted to include everything (even RemNote-like spaced-repetition flashcards, Notion-like Databases and of course there has to be AI too) and it seems like they did a pretty decent job at that. I also appreciate that there are so many export options, even for Org-Mode (preserving internal links, images, code-blocks, etc.).
I like that it provides a solid, feature-rich alternative to all the cloud-first, closed-source apps in this space. But it may be too distracting/overwhelming for my use-cases with all the advanced layout capabilities and features though. Tana is a similar all-in-one solution that is really well done (and more innovative than this one), but I always seem to gravitate toward more focussed apps.
Works great!
Anyway, one of these days I'll fork it and make it work for me. I also have a perverted desire to change the serialization format from markdown to XML so I can manipulate the graph with other tools that talk xpath, xquery, basex.
- https://github.com/Vanessa219
The first profile has a README (zh-CN, easily translated) introducing themselves as a married couple as well as their career trajectory leading to their current company. Googling the company name leads me to https://www.tianyancha.com/company/3153162387 showing the company’s legal structure, the legal names of the couple, their address, etc. (again, zh-CN but easily translated). Looks like I can view their financial reports too if I have a subscription.
The profiles also link to their social media accounts (on their own dev-focused community).
What more is there to know? At least it’s more than the average ShowHN asking for your email and sometimes credit card. I don’t understand these “couldn’t find much about them” claims.
I'm not using any VPN. Normal internet from Germany
-----
U.S. restriction on Chinese use of open-source microchip tech would be hard to enforce - October 13, 2023
> U.S. lawmakers are pressuring the administration of President Joseph Biden to place restrictions on RISC-V to prevent China from benefiting from the technology as it attempts to develop its semiconductor industry.
https://thechinaproject.com/2023/10/13/u-s-bar-on-chinese-us...
-----
China’s Use of Foreign Open-Source Software, and How to Counter It - April 2, 2024
> Democratic governments also need to reassess which products should not be made open-source because they’re at risk of being weaponized by malign actors.
https://chinaobservers.eu/chinas-use-of-foreign-open-source-...
-----
Whatever the US did, Europe would do. Anybody in the US or Europe working on a FOSS project with Chinese contributors that they're friendly with? Has anything happened recently?
But I agree we should not categorize according to geolocation, but more transparency would be better irrespective of the location in any project.
It allows selling actually free software and can work well if you do this well.
Actually, if you have other examples of this happening in the wild, I'd be quite interested.
The other widespread example I have in mind (which seems to work well) is WordPress extensions with premium features, but I've not encountered this too often neither.
Edit: thanks all for your examples :-)
----
That said, I assumed it’s fairly well-trodden mostly because FSF for as long as I can remember approved/recommended something along the lines of selling builds but completely opening the source. I guess RHEL arguably falls into the camp as well, but they sell more than builds.
In addition, there are indeed two better-known, unofficial patches with paid restrictions removed, one is an experimental version by a third-party developer, which is submitted upstream after testing the functionality, at github.com/siyuan-community/siyuan, and the other is a patch that simply removes the paid functionality. It's at github.com/EightDoor/siyuan.
Also, there was actually a pr from a community developer to add digital certificates to ensure that unofficial packaged binaries wouldn't use the official cloud service, since the plugin bazaar uses the official cdn, which is actually not a small amount of traffic cost, but that pr was rejected.
Would it? If they don't want people to do it they could just use a proprietary license.
Self-hosted, great webapp, optional native clients and works offline.
My approach to knowledge management has been super simple. Everything is in git, in a big directory structure i've organically grown over time. I have so many notes.. 7 to 8 thousands of them.
Keeping it in git has allowed me flexibility to use it how i see fit. Sometimes i'm in emacs/nevom. Most the time i'm in sublime text because I have workspaces per project/concept.
Finally, for mobile, I push them all to my own gitea instance. I rarely need access to my notes on mobile but it's been something i've been thinking about more.
If anyone has any recommendations on how to read a directory of text files on android, i'm all ears.
For iOS, I now use Working Copy for git commit/push/pull, and Obsidian to edit text, and I like Obsidian's interface a lot for making quick Markdown edits.
I believe Obsidian has an Android version as well, but I have not used it. I'm not sure if there is an Android version for Working Copy but there may be similar GUI git apps.
I felt with the number of features it has, this program simply knocks out Obsidian in comparison. I would say it is more of a Notion equivalent. I am currently working on a small self-hosted companion for Siyuan that lets users share notes publicly.
I would like, for example, to create a superdb with basic task properties (title, deadline) and then create subdatabases that add more project-specific properties.
This, I'll be able to create a single view with all my tasks for the day in a single place, but also add all the info I need for individual tasks.
Unfortunately, for some reason, nobody (that I know of) built something like this into their apps.
I agree that it would be great across the board, though!
Most complex tools have task types, some are customizable, some not - e.g. Jira would do what you describe?
- you can fork and adapt to your needs
- should the original authors stop developing it or take a direction you don't like but your started depending on it, someone can take over the development of a fork
- you can study how it works
- you can reuse some of the code to build an alternative product
- you can contribute patches if the project accepts them
- if you have to migrate, even if the format is specific, you can at least check how it works
That thing being open source is a big plus, and Obsidian using a standard format is a big plus.
Also the UI for search and navigation is much better than just a collection of Markdown files. I rolled my own note system using Markdown before this. Obsidian is way better.
That's why they're plugins.
I do use the Excalidraw plugin, but nothing much else, and that is why I have an easy time making my Obsidian notes web-accessible (currently, via SilverBullet, but any tool that makes markdown web-editable will work — as long as you don't go nuts with plugins, that is).
Having said that, I think the reason Obsidian "failed" — to the extent that Notion and some others have massively more adoption amongst organizations larger than me and my gray beard – is that they failed to combine their (super awesome) files-and-folders approach with a web editable solution.
They thought - obviously wrongly, in hindsight — that web accessible would be enough.
It's not. It's the 10%, Notion etc cover the 90% (but with fairly bad tradeoffs, they have export and it works, but you can't easily interop with your data where it lives).
But I've had such an easy time making my Obsidian web-editable that I suspect in a few minutes (or months) Obsidian will be like heyyyyy... edit yo vault via web yo — and for free! and then we will all be like woo Obsidian boo Notion!!
But we'll see
I don't think I would even bother to update a local patch on every releases. I'll just use another foss app without silly "pro" features.
If SiYuan stops being developed, are the files still readable/parse-able?
Obsidian has built-in support for markdown, images, PDFs, canvas (via JSON Canvas which they developed and open sourced https://obsidian.md/canvas), and others.
For databases, you can add fields/properties both in the markdown frontmatter or in the text and query it via very popular plugins:
https://github.com/blacksmithgu/obsidian-dataview
There are tons of community plugins that support all kind of stuff: tasks, kanban, LLM/Copilot, graph analysis of links, charts.
It can also be extended in JS, both writing your own plugins or via a few plugins that allow limited JS support.
---
Obsidian is actually quite good as a NoCode prototyping platform for personal apps :-)
E.g. CRUD:
- Use templates, via Templater: to define the content of your data
- Use links and tags to define relations and connections
- Use dataview or graphs for views
- There are even plugins to define buttons and the actions they perform, if you need commands
I am currently using Syncthing but unfortunately it's client app has been removed from Google Play [1]. I am managing with Syncthing-Fork.
[1] https://github.com/syncthing/syncthing-android/issues/2064
In my notes.org file, I collect all kind of snippets, knowledge, ideas, how-tos, and such stuff.
Outlines make it possible to hide parts of the text in the buffer.
A headline starts with one or more stars. A heading has one star, a sub-heading two, etc.
Use the linking feature in ordmode to link items/notes together through references.
Stick with a "File over app", Unix approach. You need to first rely on a directory structures, filenames, plaintext, lists and orgmode.
Leverage Unix tools: unix commands, (rip)grep, git, fzf, etc.
Does not solve the fundamental problem of a file system that you also could file this under m->management->books
I use recoll to index and find things. https://www.recoll.org/ And yes, I have a 20 TB HDD. Quite a bit of data and media. If someone knows how to make an encrypte mirror of my drive with https://www.opendrive.com/ I would be interested. No incremental backups, if possible I would like to access it like a drive.
For my notes I just use light speed fast nvpy with simplenote.com to synchronized with several computes. https://github.com/cpbotha/nvpy
My notes don't follow the a-z approach but have regular headlines. I use nvpy as a mixture between a to do list and a knowledge database. For to do I have recently thought of using paper cards for kanban, but I am not sure. Suggestions welcome.
You can use symbolic links to connect directories and file to multiple parents.
John Doe has Birthday on December 12th would have at least 5 already.
I eventually started to use obsidian, but also nextcloud notes, quillpad and webdav to get access to my notes. I am happy, but it took a long time to get to something that worked.
this tool looks 'complicated'... as it needs an infrastructure to operate.
I made the switch to org-roam because i wanted to use elisp to develop instead of JS obsidian plugins.
It took me a while to get over the learning curve but I’m very happy with it
* Any particular resources you followed to learn Elisp.
* What sort of time investment did it require for you to build your own system based out of Emacs?
* How are you syncing your files?
Is it only the hassle of self hosting that stops potential customers from having the paid features for free?
Am I missing something here or couldn’t people just fork this and pull off a vaultwarden?
Let's say I'm researching how to get into IRL streaming right now. So I'd make a topic, "IRL Streaming". In there I'd like to put links to videos, links to documents/documentation/tutorials/guides/howtos. I'd also like to take notes.
And in the end I would've learned this topic. Maybe I'd create a sub-topic in there, to research "SRT and SLS vs RTMP".
People claim it's like a Obsidian clone. Looking at the Obisidan website it says it's a tool that helps you write a book.
This however calls itself PKM (short). I guess they're related, from looking at the screenshots, but not really what I'm looking for, I think.
I don't want to do what the top comment suggests, folders with files. No I want a web app that I can access from anywhere and where I can dump links and notes to and about resources categorized by topic. Reading the readme of siyuan-note it does seem to be able to do this.
Only 1 question, does it support multiple users? So I can host it for my town's community.
add choice of encryption, vcs, backup. solved for many decades