Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Storing your bookmarks under revision control (github.com/skx)
181 points by stevekemp on Nov 27, 2016 | hide | past | favorite | 39 comments



I'm using a similar solution, namely a file I edit in org-mode. Here are the advantages I've found so far:

- org-mode or text files in general make it easy to add contextual information, additional notes etc. Bookmarks can finally tell a story.

- in org-mode (or Markdown), the bookmark file is well-readable as is in the editor

- bookmarks can be rearranged and regrouped quickly if need be

- (org-mode at least makes) links to different sections of bookmarks within the same file possible. For this reason, I personally don't use tags but follow a hierarchical structure with intra-document references if need be (e.g. if a group of bookmarks can be considered to be part of two different higher-level groups)

- searching is only one grep or one Ctrl+F away. In case of imprecise search terms, the additional hierarchical structure helps.

- Easy and privacy-preserving synchronization among devices using git

And here are the disadvantages:

- No browser integration; bookmarks always have to be added and looked up manually which is particularly cumbersome on a phone.


Use a bookmarklet and org-protocol to trigger an org-capture template:

https://stackoverflow.com/questions/7464951/how-to-make-org-...

You can make the bookmarklet pass along extra info on certain pages, eg. gmail and have a capture template match it - handy for TODOs with deadlines that link back to emails.


> No browser integration

Depending on the conventions you use in the file, you might be able to fix that with a browser extension that can parse it. Alternatively, if one of the places you're replicating it to happens to be a web-accessible machine, you could throw together a basic web interface (behind a login) for it - that'd get you pseudo-browser-integration on any device.


I made something similar [0] for Pentadactyl [1], a vim-like extension for Firefox.

By pressing Cmd-D the user is prompted to enter a tag, and after that a .webloc (essentialy a link) file is created in a subfolder determined by the tag name.

The location to store the files in can be configured (i.e. some Dropbox folder, so that bookmarks are automatically shared).

This has the advantage that it's:

* instantly searchable using the same search interface like everything else (Spotlight)

* forwards compatible - no need to import/export bookmarks when switching browsers

* distributed - bookmarks are instantly and automatically distributed (Dropbox)

* automatically backed up forever (Dropbox)

I'm not using Firefox right now, so the extension might be out of date. Maybe time to port it to Chrome/Safari :)

[0] https://github.com/pkamenarsky/fbookmark

[1] https://addons.mozilla.org/en-US/firefox/addon/pentadactyl


Very interesting! Keen to try it out, very sick of bookmark syncing and exporting etc... thanks


I run a personal wiki (that gets me version control) that I've written a bookmarklet for. It asks for the page to place the entry on (default is Bookmark), location on the page (top is default for Bookmark, bottom is default for others) and the entry (default is the title of the page I'm on). It then makes an entry on the page as a bullet entry so I can tell that it's a bookmark.

This allows me to quickly bookmark items and have some level of order to them as I'm saving them away.


I must look into bookmarklets. They can write to disk then?

I also use a wiki synced in dropbox. I wrote a hacky Android app that links into all the sharing dialogs so I can share a link into my wiki super easily. But I like the idea of both the shell command talked about in a different comment, and your bookmarklet.

One wiki to rule them all, and in the darkness find them ;)


The bookmarklet does a post to the wiki in the same way that a user would edit the page. The new info is either at the beginning (top) or at the end (bottom) of the page text.

    javascript:%20void(ppage=prompt("Page%20?","Bookmark"));%20void(t=prompt("comment%20?",document.title));if%20(ppage=="Bookmark"){pp="top"}%20else%20{pp="bottom"};%20void(w=prompt("top,bottom?",pp));%20void(x="http://mywkiki.com/updater?page="+ppage+"&text="+escape("*%20["%20+%20t%20+%20"|"%20+%20location.href%20+%20"]")%20+"&action="+w);%20void(window.open(x,"Bookmark","height=400,width=640,scrollbars,resizable"));


A bookmarklet is just javascript running under the website instance (pretty sure they can't write to disk). They are useful for manipulating websites. kinda like tampermonkey, but they only run when you click them.

Add a bookmark with javascript:alert('hello');

Though it's usually best to keep an expanded version elsewhere and copy it over when you update it (else it'll be stored as a one liner).


Right, that's what I thought.. I'd just misunderstood that the bookmarklet was writing somewhere. I might just write a bookmarklet that does a POST to somewhere that'll write to a Dropbox backed wiki page... I'd just like to have everything in one place..


Really cool! What software do you use for this?


He uses git to keep a static web site of his bookmarks. He just uses his web browser to view the index.html file.


Seems like you could just put the files that already exist under version control? Chrome just uses a JSON file it seems, as an example.

On mac: ~/Library/Application\ Support/Google/Chrome/Default/Bookmarks.bak

Separate, re-writeable interface for search is cool though :)


The Firefox files are SQLite files, and I believe but haven't checked recently that the Chrome files have no newlines (0x0A) in the files. The whole JSON string is on one line, so Git will rewrite the whole file on each change.


Looked to be pretty printed on my computer.


Git always rewrites the whole file


Sure, technically - but if a file's sensibly broken up into lines on semantic boundaries, "git diff" will at least let you think of it like it only rewrites the bits that actually changed. If you're versioning a file with no linebreaks, the diffs would be meaningless ("minus everything, plus everything"), which is an unfortunate loss of functionality.


I guess you could just smudge/clean it through a JSON linter. You probably don't even need smudge, since Chrome likely has no problems parsing indented JSON.


Am I the only one who has started to use the Hacker News "favourite" feature as a make shift bookmarking service?

I've found that I now actually submit links I want to save...


Many of the things I bookmark wouldn't be interesting to this audience, so it'd feel a bit abusive to try.


I recently created two shell scripts.

1) site

It just adds sites to a list and has basic parameters like "list", "edit", etc. I really like the fact that I can do it from the shell and vim. I often get requests for online information, so cb (clipboard) saves another mouse movement. For me, the quicker I can respond, the higher the chance I'm not out of my flow.

2) note

And yes, I'm getting difficulties with flow at times. For example, I'm working on something and need to reorganize a certain datastructure. Something like note "make logmvnpdf.m row-friendly" serves as a todo list, but most importantly does help me continue my flow on starting next day again.

Everything I can move from the browser (time sink) to my shell (productivity) I get really happy about!


I would be interested in hearing if something like https://www.ghostnoteapp.com could work for you. Its also made to maximize flow by keeping the notes contextual.


# Shell

I applaud any effort for maximizing flow. However, in my particular case I run Linux and I'm not spending any time in a file explorer application for example. Issues like a screen "popping up" as described in the FAQ of https://www.ghostnoteapp.com/ are just not there because I prefer to run things from the shell.

# Syncing

I'm the kind of person who happily pays for services like https://www.insynchq.com/ (not affiliated) to be able to get something like Dropbox or Google Drive to my shell without loosing collaboration options.

# Text-level access to collaborative documents

If there would be cloud service that combines (1) online editing and collaboration with others, and (2) offline editing in a text-editor for myself, for spreadsheets, presentations, documents, etc. I would buy it in a heartbeat. An example is https://www.sharelatex.com/ (not affiliated) where people can edit online, but behind the screens there is Dropbox/Github integration.

# Window manager

Another way I organize my "dashboard" for a particular purpose is by using tmuxp.

# Browser

In the browser I use vimium (https://vimium.github.io/) and I've several profiles depending on the task at hand.

Probably you can summarize a lot of it as "not needing a mouse". If it requires a mouse it's difficult to let my muscle memory do the work for me.


Thanks for your answer. That was very informative. I am working on a collaborative version of this, but it's quite complex.

One point I want to make though is that the app works well with a shell.

Not sure if you saw the entire video but in the end it shows how you can use it in context with terminal (and I have users who use it with iTerm2 (http://disq.us/p/vao7ti)

Anyway this was very valuable as I am always looking for ways to optimize flow for my user.


Similar: https://github.com/hmason/gitmarks

A web bookmark manager built on git and designed for github. It's searchable and social.


Very interesting. Bookmarks solve a particular problem of finding information that was already visited. A more general problem is a designing a personal knowledge base. There are lot of hints in this page about PKB and some of them can be applied to bookmarking as well

http://www.acuriousmix.com/2014/09/03/designing-a-personal-k...

I created a personal curation system - Hyperbook, http://getbook.co . It arose out of the need to store reference materials while writing my thesis. There seems to be lot of people working on similar ideas, which shows the market need and lack of existing products which address them. I sense there is a great startup/product coming in this space soon.


Anyone else think that current browsers using NETSCAPE-Bookmark-file-1 for exporting bookmarks is really archaic https://msdn.microsoft.com/en-us/library/aa753582(v=vs.85).a...


The fun stops if you start to review the bookmark changes via gerrit.


The better part of 20 years ago, Kaylon sold their shareware / try-it-and-buy-it bookmark manager Powermarks.

I've yet to come across anything as useful as it was. Cross-browser, automated keyword extraction and indexing that could be supplemented by the user, lightning fast search against spaced plain text and fragment entries.

Other features, as well, to aid in link management and maintenance.

By contrast, browsers' built-in bookmark management still sucks.


Oh no, I am so interested in this but the demo is not loading.

Why not host it using GitHub pages instead of your own server to handle more traffic?


I'd be interesting in seeing how it is failing for you? Timeout, or something else?

As far as I can see the server is up and running on both IPv4 & IPv6. Load is low, and I see no failures logged.

Edit added to github pages:

* http://skx.github.io/bookmarks.public/


    $ ping www.steve.org.uk
    PING www.steve.org.uk (80.68.84.111): 56 data bytes
    Request timeout for icmp_seq 0
    Request timeout for icmp_seq 1
    Request timeout for icmp_seq 2

    $ nslookup www.steve.org.uk
    Server:		8.8.8.8
    Address:	8.8.8.8#53
    Non-authoritative answer:
    Name:	www.steve.org.uk
    Address: 80.68.84.111

    $ traceroute www.steve.org.uk
    traceroute to www.steve.org.uk (80.68.84.111), 64 hops max, 52 byte packets
    1  192.168.0.254 (192.168.0.254)  1.155 ms  14.610 ms  2.999 ms
    2  * * *
    3  * * *
    4  * * *
Looks like something wrong with my network but other sites working fine.


It is broken when external jQuery blocked by uMatrix


* Xmarks | Bookmark Sync and Search || https://www.xmarks.com/

Little dated, but still works great across browsers and devices.


I've never heard it referred to as revision control - I always hear "version control" or even "source control". Any difference? Is that a common phrase?


It's common, or at least understandable, just a little dated.

Mostly the people who use say/write it do so because they were exposed to RCS ("Revision Control System"), before they moved on to CVS.


Looks very interesting. Just IMHO, a little bit of CSS setting a max page width and a sans-serif font would be worth it.


I'd like to store the content of the webpages as well, in case they are taken offline.


It reminded me TiddlyWiki with exception that external data file being used.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: