Hacker News new | past | comments | ask | show | jobs | submit login

I have a personal "knowledge base" that is publicly available at https://maxmasnick.com/kb/.

This is partially inspired by Chris Albon's excellent data science technical notes: http://chrisalbon.com.

I find it very helpful to have this kind of information on a public website. It's easy to search myself, quick to edit[^1], and helpful for sharing with others when someone asks me a question.

For notes I don't want to make public, I use OneNote. It's available on every platform, has a documented file format, and the sync works well. Of course, I have some more detailed notes on why I prefer this to other options: https://maxmasnick.com/kb/note-apps/.

[^1]: My whole website is built with https://gohugo.io. I use the GitHub Actions beta to automatically update the public site every time I commit to master. This means I can edit on a computer with a standard text editor, and also on iOS using https://workingcopyapp.com.

I got excited then for OneNote on Linux (Kubuntu) but a quick search suggests it's only available with a few hacky kludges and WINE?

I use OneNote on KDE Neon in a Windows 10 virtualbox. Yes, it's not the most efficient but I have found this approach much faster than using the sluggish web UI for OneNote. I also use my Windows 10 virtualbox for the rest of the MS Office suite through a university subscription, so I feel it justifies the 30GB of disk space it takes.

There is OneNote online, it's a little slimmed down from the desktop app though.

I use the online versions of OneNote and also the other Office 365 apps (Word, etc.) on Linux laptops. Great to have.

How do you backup OneNote?

The link to where you explain it is broken: http://protips.maxmasnick.com/backing-up-onenote-notebooks

You mentioned it as being a critical feature but from what I've been reading, it's pretty complex and tricky due to it's weird syncing rules and relationship with OneDrive. The only decent solution requires a Windows version. See: https://answers.microsoft.com/en-us/msoffice/forum/all/good-...

I usually use this way of exporting Notebooks for personal accounts.


Dropbox. Basically, you can create a new notebook and all pages under that notebook are organized in a directory hierarchy. I've done this for just under a decade without issue.

Sorry about the bum link (it's fixed now).

The simple answer is you can download zips of the entire OneNote notebook from the OneDrive web interface.

You are able to print entire notebooks as a pdf. Its not the best, as text can be cut across pages if you don't originally fit into nice-paper sized areas, but it does export everything quit easily.

I am impressed. Whenever I try to build a tree of thoughts, I run into the problem that I want things to fall under multiple categories. I might start by classifying them according to subject area (as you have done), but then I might want a collection of those notes to also fall under "could help with project X" or "would be of interest to person Y" or "can be learned from reference Z" or any number of things.

This is a use of AI I've not seen yet, to sift through soups of knowledge, categorise it and make judgements on what else is related and relevant

Isn't this essentially what search engines do? Ie. Google's Page Rank.

It doesn't really seem very AI-ish except maybe for some NLP. Otherwise it's very straightforward indexes and catelogues.

I used to work at a company that used Elasticsearch to catelog and group articles and small snippets. I'm currently working at a company that's using Algolia to do something similar.

Not really what I had in mind, to be honest. I mean, yes, you can search by keyword, but I was thinking of it being more like a research assistant.

Isn't that what tags are for? Search by tag?

I don't know. Can you point at an implementation you like?

[pinboard.in][1] has an implementation that I like. What I especially like about pinboard is that you can chain tags together (logically AND'd, not OR'd) to narrow/filter topics to highly specific criteria. This all works well provided you usefully tag your entries.


This is what links were originally invented for.

Links are fragile and one-sided. You might move the destination. You might edit the title of the destination and want that to show up in the link text. You might want the content, not just the title, to be visible (preferably foldable) from where the link is. You might want to be able to see from the destination what links to it.

In Hugo its actually pretty easy to color code whether a page/destination exists. Optionally you could do up a Wiki using the Media Wiki stuff. Then links are color coded automatically.

really like your knowledge base and your build process.

i've been experimenting with personal knowledge bases for much of the last decade and have settled on a homegrown solution that involves ten thousand markdown files. notes are organized as trees with a top level domain (eg. aws, programming, finance, etc) and finding a particular note is a tree traversal down the tree. the main goal is speed and structure - want to access anything within my knowledge base in seconds and have a coherent way of modeling knowledge even as it scales past ten thousand notes

recently quit my job to build this into a service. would love to get feedback from people with similar challenges: http://demo.alphacortex.io

“ I use the GitHub Actions beta to automatically update the public site every time I commit to master.”

How do you set that up?

It's somewhat convoluted and custom to my specific hosting setup (I use https://www.nearlyfreespeech.net because I want an Apache server so I can use complex redirects). Essentially, the GitHub Action builds the site and then copies it over to NFSN. This is all done in a Docker container.

The only potentially interesting part about this setup is I take advantage of this git feature I didn't know about until I set this up: https://git-scm.com/docs/git-worktree. This lets you essentially check out a branch into a folder in a repo. Hugo can then build the site in to the special folder, and the built site is committed just to that branch. I then push this branch to NFSN, rather than using rsync or scp, which takes a lot longer for small changes compared with sending a git delta over the wire.

I plan to write up a more extensive description of this when GitHub Actions come out of beta. If you want to hear about it when it comes out, you can subscribe to my blog's newsletter: https://masnick.blog/subscribe/

If it's not too much to ask, I would add on here that I'd like to see your Hugo setup. I've been learning it recently but the examples I find are all rather simple. Just seeing what you've done gives me some ideas of how you did it, and I'll work on figuring it out - but information on how you organize things before hugo generates the site would be greatly appreciated.

Unfortunately I don't have a good way to reveal the source of my site as there are some things in that git repo that can't be made public.

I too have struggled to find examples of doing more complex things in Hugo. It's such a versatile tool that it's probably pretty hard to document everything in an approachable way.

I may write up how I set up the Hugo portion of the knowledge base as it has worked quite well. If I do, you can subscribe here to make sure you see it: https://masnick.blog/subscribe/

I understand. I'll subscribe - and just looking over the parts of the site and going back to the documentation has helped me to wrap my head around a few things that were eluding me.

Thanks for the response, I appreciate it and I'm really glad you took the time to post your original answer. It's a real help to me in ways I didn't expect when I clicked into this thread.

You can refer to GitHub Actions for Hugo https://github.com/peaceiris/actions-hugo

You could instead use Gitlab with their CI/CD tool: https://gitlab.com/pages/hugo

I haven't tried GitHub Actions yet, but Netlify makes this very easy to do.

Yes, unless you have my weird requirement to use an Apache server, I think something like Netlify or GitHub Pages makes way more sense.

Very interested in this as well. How do you do automatic deployments?

I described this briefly in a reply to the parent: https://news.ycombinator.com/item?id=21316442

Yes! I tried multiple things in last 15 years, everything but OneNote failed me in one way or another.

I agree with this. However, the only annoying thing is it copies and pastes text as a photo. I’ve stared using outlook email drafts as a place to put rough notes. They are searchable, they sync with the cloud and copy/paste works as expected. Give that a shot if you want.

Good to see a UMB alum here. Who uses Tachyons no less! Thanks for the tips.

Hi, thanks!

Out of curiosity how much traffic does the personal kb get?

Essentially zero. It's not well-advertised, and I only started it in earnest earlier this year.

My Technical Notes blog (https://tech-notes.maxmasnick.com), which is a similar idea but much more random in content, does get a fair bit of traffic on specific pages, presumably via organic search traffic. (This is the most popular Tech Notes page, which has had 30k views over the last 4 years: https://tech-notes.maxmasnick.com/ipython-notebooks-automati...)

Thanks for answering. Been toying with doing something similar - documenting stuff as I figure it out (webhosting, raspberry pis etc) & see if that attracts any traffic.

No mention of KeePass under password managers?!

I'm only interested in password managers with good desktop, web, and mobile support.


It uses a KeePass database and is a self-hosted app in the browser that works perfectly fine on mobile. I have the page up at all times in Chrome on my Android for quick and easy access. The desktop app I have on my home PC. Everything is synced through Dropbox which is the actual storage location for the encrypted database. I have the desktop app set to make backups just in case on my local PC as well. But Dropbox is what they all connect to. I personally love this web app implementation of KeePass much more than anything else like lastpass or other paid services. Been using it for several years now and I've never had an issue. You'll need to grant the web app special access in Dropbox to get it working properly, but it's easy to set up.

EDIT - by "self-hosted" I really mean cached in the browser so nothing is going through the site, it's all local to you after you load the app. Also, this means you can still use it offline if you need to because the Dropbox database is also cached until it can update accordingly when connection is resumed.

Just curious, what do you find lacking about Keepass in those areas?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact