A Unix-style personal search engine and web crawler for your digital footprint
github.com
github.com
This is the fault of web browser vendors who have yet to give a damn about book marks.
> Apollo is a search engine and web crawler to digest your digital footprint. What this means is that you choose what to put in it. When you come across something that looks interesting, be it an article, blog post, website, whatever, you manually add it (with built in systems to make doing so easy).
So it's a searchable database for bookmarks then.
> The first thing you might notice is that the design is reminiscent of the old digital computer age, back in the Unix days. This is intentional for many reasons. In addition to paying homage to the greats of the past, this design makes me feel like I'm searching through something that is authentically my own. When I search for stuff, I genuinely feel like I'm travelling through the past.
This does not make any sense. It's Unix-like because it feels old? It seems like the author thoroughly misses the point of unix philosophy.
It appears to be that, but it appears also to pull out the content of the web page and index that too, so you can (presumably) find stuff that isn't in the "pure" bookmark, which I think of as a link with maybe a title.
Actually, I've been trying to find Firefox extensions that give a better interface to bookmarks and there doesn't seem to be one. It's like, people don't use bookmarks anymore and accept that it might as well not exist, and use something else.
It's telling that Firefox has two bookmark systems built-in (pocket and regular bookmarks) and they aren't integrated with each other; I suppose that people that use pocket never think about regular bookmarks.
edit: but my pet peeve is that it isn't easy to search history for something I saw 10 days ago but I don't remember the exact keywords to search.
This has applied since ever to regular bookmarks as well. Basically you can just throw everything in unsorted and use tags only.
This, outside a browser, could be implemented as a server/client self-hosted solution with a back-end taking care of downloading/searching and an extension acting as client. Maybe it could even be made entirely as extension?
At the very least, it would need to be able to get the content pushed to it by the client, the way the client has it at moment of bookmarking, making the download/scraping kindof superflous.
Indexing and doing search, however, is hard, but solved. Hard in the sense that it is not something a firefox addon could do very well. I presume a (self)hosted meilisearch would suffice, though.
Edit: here's the description from their repo
"ArchiveBox is a powerful, self-hosted internet archiving solution to collect, save, and view sites you want to preserve offline.
You can set it up as a command-line tool, web app, and desktop app (alpha), on Linux, macOS, and Windows.
You can feed it URLs one at a time, or schedule regular imports from browser bookmarks or history, feeds like RSS, bookmark services like Pocket/Pinboard, and more. See input formats for a full list.
It saves snapshots of the URLs you feed it in several formats: HTML, PDF, PNG screenshots, WARC, and more out-of-the-box, with a wide variety of content extracted and preserved automatically (article text, audio/video, git repos, etc.). See output formats for a full list."
I mean, Firefox's bookmarking isn't perfect by any definition, but they're the only browser (I'm aware of) that has put any effort into helping you use the web in the future. Other browsers seem to say, "if you're trying to use our browser to do something other than use the web at the present moment, we don't care about that. Enjoy taking 8 clicks to do anything other than stare at the viewport."
Have you tried Zotero?
I guess it's just easier to not install an extension and right-click, save page as.. and move on with life.
I can't remember if zotero was that simple - it may have been. I enjoyed using it back when. I can't recall if there was a good backup/export system with it back then.
currently it's easy for me to have docs/webpagesaved auto backed up to an external drive, which gets me through.
I may revisit zotero as I liked the idea behind it and the extra category / sorting stuff that was available / optional.
I think I went through a phase where ffx really bogged down with lots of open tabs (20 versions ago maybe?) then I tried disabling extensions, auto-sleeping-tabs-extension, stuff like that .. and soured on some extensions no longer working with newer ffx, and some concern about spyware and such, and never went back to all the addons / personalizations once enjoyed back in the day..
The academic uses of Zotero lean heavily on the metadata schema is uses, which is tailored for research and publishing. Things like DOI, ISSN, metadata about the publication, etc, might not be terribly useful for anyone outside academia.
Opera v9.5 (released 2008) up to v12 does this.
Its website seems to still be up to this day! http://www.xuldev.org/scrapbook/
This extension didn't survive the days of breaking API compatibility that Firefox went through (sigh). However, seems like some replicas exist that aim to provide the same or similar functionality, such as ScrapBee https://addons.mozilla.org/en-US/firefox/addon/scrapbee/
Provides a Firefox plugin, saving pages is just a click away
All notes (and consequently bookmarks and their contents) are stored as plain-text markdown files - so there's no dependency on a proprietary format, and all the content becomes searchable.
If you're a vim-user, you can also get the notational-fzf-vim plugin (https://github.com/alok/notational-fzf-vim) and point it to the notes/bookmarks folder, and have full fuzzy search over all the content.
The SOCKS proxy would not just fetch the content of the page(s) requested, but would also dump them to ~/Archive/$year/$month/$day/$domain/$id.html.
Of course I'd only want to archive text/plain and text/html, but it seems like it should be a simple thing to write and might be useful. Searching would be a simple matter of grep..
Rather when you need that same content, you will find yourself going to google, searching that and the page is instantly there unless removed.
There's a reason why bookmarks aren't as popular as it had been. People now use google + keywords instead of bookmarks.
Yea, I couldn't figure out what makes it Unix-like, either. I mean, which UNIX in particular? Solaris? AIX? HP-UX? Do you use UNIX commands to navigate it? Is there a shell or something? Kind of odd way to describe it.
Which is why I was mislead in this case :)
Almost as if "unix philosophy" might mean different things to different people.
"The first thing you might notice ..."
First thing I notice is this project is 100% tied to Google, what with Chrome and Go (even for SNOBOL pattern matching, sheesh).
"... this design makes me feel like I'm searching through something that is authentically my own."
Except it isn't. It shuns the use of freely available, open-source UNIX-like projects in favor of software belonging to a company that Hoovers up personal data and sells online ad services. Enjoy the illusion. :)
Life can be very comfortable inside the gilded cage.1 The Talosians will take good care of you.2
Firefox actually has a very powerful and capable bookmark system, see https://support.mozilla.org/en-US/kb/address-bar-autocomplet...
On top of that I built a search engine called Dogsheep Beta which builds a full-text search index across all of the different sources and lets you search in one place: https://github.com/dogsheep/dogsheep-beta
You can see a live demonstration of that search engine on the Datasette website: https://datasette.io/-/beta?q=dogsheep
The key difference I see with Apollo is that Dogsheep separates fetching of data from search and indexing, and uses SQLite as the storage format. I'm using a YAML configuration to define how the search index should work: https://github.com/simonw/datasette.io/blob/main/templates/d... - it defines SQL queries that can be used to build the index from other tables, plus HTML fragments for how those results should be displayed.
I've been contemplating building an add-on for Dogsheep that can do this for any given URL (from Pocket or other sources) by shelling out to an archive script such as https://github.com/postlight/mercury-parser - I collected some suggestions for libraries to use here: https://twitter.com/simonw/status/1401656327869394945
That way you could save a URL using Pocket or browser bookmarks or Pinboard or anything else that I can extract saved URLs from an a separate script could then archive the full contents for you.
https://chrome.google.com/webstore/detail/singlefile/mpiodij...
https://chrome.google.com/webstore/detail/singlefilez/offkdf...
I see substantial overlap in the vision.
Either ways, cool project! :-)
But this is a great idea! Having a search engine for vaguely _anything_ you touch very much does look like it’d increase the signal:noise ratio. It’d be interesting to be able to add whole sites (using, say, DuckDuckGo as an external crawler) to be able to fetch general ideas, such as, say, “Stack Exchange posts marked with these tags”.
I had the exact same thought when I saw that in the title. That would also be a cool idea to be able to search within your own online accounts.
So this is what the project's description of what "digital footprint" means:
> Apollo is a search engine and web crawler to digest your digital footprint. What this means is that you choose what to put in it. When you come across something that looks interesting, be it an article, blog post, website, whatever, you manually add it (with built in systems to make doing so easy). If you always want to pull in data from a certain data source, like your notes or something else, you can do that too. This tackles one of the biggest problems of recall in search engines returning a lot of irrelevant information because with Apollo, the signal to noise ratio is very high. You've chosen exactly what to put in it.
If I'm interpreting this correctly, this seems like an alternative way of bookmarking with advanced searching because it scrapes the data from the source. Cool idea, means I have to worry less about organizing my bookmarks.
A good search engine for "my stuff" and "stuff I've seen before" is not available for most people in my experience. Pinboard and similar sites fill some of that role, but only for things that you bookmark (and I'm not sure they do full-text search of the documents).
---
Two things I'd mention are:
1. Digital footprint usually means your info on other sites, not just things I've accessed. If I read a blog that is not part of my footprint, but if I leave a comment on that blog that comment is part of it. The term is also mostly used in a tracking and negative context (although there are exceptions), so you might want to change that: https://en.wikipedia.org/wiki/Digital_footprint
2. I don't really get what makes it UNIX-style (or what exactly you mean by that? There seems to be many definitions), and the readme does not seem to clarify much besides expecting me to notice it by myself.
I think what they meant was that it's an entirely text based program. Perhaps they are conflating UNIX with CLI.
[0]: https://github.com/lengstrom/falcon
[1]: https://chrome.google.com/webstore/detail/falcon/mmifbbohghe...
https://github.com/lengstrom/falcon/issues/73#issuecomment-6...
Demo: https://monocle.surge.sh/
Blog post explaining motivation https://thesephist.com/posts/monocle/
It runs locally on your laptop/desktop, so you don’t need a server to host anything.
Also, it can index everything you do, not just web content.
It works really well for me!
Her landmark system (and associated seminal SIGIR'03 paper) "Stuff I've Seen" tackled re-finding material: http://susandumais.com/UMAP2009-DumaisKeynote_Share.pdf
1. Rely on JavaScript for the interface. Being built in Go, why not just paginate the results and utilize Bleve or Xapian for search?
2. Store data in a format that is not easily readable by itself. The only exception to this is nb.
3. Suck at CLI tools. I'm looking to rclone, Hugo, kubectl, etc for the right way to build a CLI.
You can set it ot save a link, a screenshot, or content of the page. You can add tags if you want, and it is also easy to annotate it so you can remember the context better. You can also add links to other post inside Evernote.
Pocket is also a great tool I used for many years. Quite similar and different.
Both have browser extensions, so it is easy to clip.
With Evernote I even have shortcuts defined so I dont have to click for the webpage to be clipped.
"Apollo's client side is written in Poseidon."
I had to look that up: Poseidon is not a language, it's just a javascript framework for event-driven dom updates.