How do you organize your notes, files, screenshots, bookmarks [productivity tools]

Hi,

first post here from a new and happy and grateful FCC camper.

May I ask which tools and methods you use to organize your notes, files, screenshots, code snippets, bookmarks and such? What’s your best practice for learning and in your daily routines?

Any comments and exp sharing appreciated. It’s a crucial challenge for me at this stage and something I’ve struggled to lifehack for years.

As I was writing this post some reflections and basic tool spec notes took form. Added below for anyone interested. If not, just skip the rest :slight_smile:


My productivity and flow is sensitively linked to the quality and design of core tools. Others may have a more pragmatic approach and I understand why you may find mine a bit obsessive.

Michael Rybintsev wrote this about his study diary method on Medium

I want to pick up that method, both for time management (what did I do today/this week/etc.) and for better note and file keeping. He also links to Vaidehi Joshi’s Medium blog where she writes up her journey through the ‘basics of computer science’. Super inspiring, better do that as well!

PROBLEM:

My OneNote docs turn into stacks upon stacks which doesn’t reflect a timeline of steps, edits, revisions. Same story, more or less, for file, media and bookmark folders spread over different disks and cloud accounts.

It’s all searchable but not efficient for tech notes, whether quick references or lengthier resources. So I’m wasting time searching and browsing and mental focus being deviated while knowing that it could be set up much better.

It also reflects a workflow where challenging topics I’ve worked on for hours are so poorly documented that it’s more or less back to square one the next time (which happened recently with OS install, backup, disk partitioning - the notes were basically relevant but useless).

I could of course make some custom layouts and doc types in OneNote but has switched to Solus Linux and would rather learn about and use something more configurable.

GOALs:
A tool set that enables better learning, workflow and reduces any noise and lack of focus
For any topic of interest, pro or personal
Improve note taking technique
Journaling code camp exp and steps
A new storage structure for all digital assets

KILLER KOMBO specs:

  • as nicely formatted, responsive, editable and searchable as a discourse or nodebb post page
  • as readable as a well-indexed and lay-outed documentation site
  • as conveniently browser integrated as google keep, evernote, onenote etc. (highlight or clip text/image/page > tag > save)
  • open source and off corporate user mining servers (google, MS, etc.)

EXTRA specs:

  • a self-hosted web service preferred over a desktop app
  • which ties into collaboration tools with projects, tasks, timelines, comments and so on.
  • with OAuth and API’d to publish to and from common 3rd parties (for easy collab with anyone, regardless of their setup)

TESTED to be you must:

Taiga’s agile project manager is great but built for team and task workflow. It could possibly be setup as a documentation diary as well.

Tuleap • Open Source Agile Development tools, designed to adapt by teams

Phabricator - Every application your project needs, all in one tool.

Jupyter notebooks, text editors, terminals, and custom components in JupyterLab. Probably overkill for web, better for learning Linux and python.

Issue trackers and wiki pages on github or gitlab (private projects)

2 Likes

I just use a notebook to write stuff down. It helps me to remember better if I actually write it versus type or of course copy and paste. For things I want to keep like images or screenshots I use Notes on MacOS. I tried Evernote but it just didn’t seem to be worth it. All the effort to keep things organized seemed like time wasted toome.
I use a thing called Dash by Kapeli and whatever documentation I need is there. I don’t really collect things so much or try to remember everything as much as I Google. I am trying to refine how I search more than anything.

That all being said what about a writing program like https://ulysses.app ? It has search and a great way to organize. You can use Markdown and add snippets. All that good stuff. I used that for a while. Good Luck!

1 Like

thanks! I’m on Linux but there are similar apps available. Had a brief look on some (joplin, tagspaces).
Can’t figure out why anyone would use markdown in a single-person, local PC note app but anyway…

Markdown is if you push your stuff to a service like Github. Makes it easy to Markup even if you don’t. Hope you find something!

1 Like

For bookmarks:

1 Like

Github and gists. notes and versions all taken care easily.

1 Like

Hi @korbendallaskoop,

I use Emacs[1] and org mode to write a literate programming document[2]:

Notes (example)

Here are my notes about web audio:

  • I can open the Mozilla.org link with a browser (mouse click) or inside Emacs using eww

  • I can fold/unfold the document headers

  • I can execute code inside the document

  • The text diagram was generated with the code above it (black background)

Version control:

I use magit (git):

  • Magit Introduction and Demonstration (Howard Abrams):

An Electronic Lab Notebook

I also use an eln, I wrote an article about it:

  • Example:

  • The table is a template (I don’t have to write it manually)

  • I can see how many hours I expend on each task

  • I can open the link to the file inside Emacs

  • I use git to keep track of what I did (the code is executed inside Emacs)

  • At the bottom left, a pomodoro is running (w06:15)

Project (work in progress)

This is the repo of the project (from the example above):

https://github.com/diegoperezm/roguelike

The README has 1392 lines:

  • The original file is an .org: Emacs exported it to markdown

  • I also can export it to multiple formats (like HTML)

  • The index (links inside the README) is generated by Emacs

  • The diagrams are generated using Emacs

Cheers and happy coding :slightly_smiling_face:



Footnotes:

[1]:

From GNU Emacs web page:

"An extensible, customizable, free/libre test-editor - and more.
At its core is an interpreter for Emacs Lisp,
a dialect of the Lisp programming language with extensions to support text editing. "

[2]:

“Literate programming is a programming paradigm introduced by Donald Knuth
in which a program is given as an explanation of the program logic in a natural language,
such as English, interspersed with snippets of macros and traditional source code,
from which a compilable source code can be generated.
The literate programming paradigm, as conceived by Knuth, represents a move away from
writing programs in the manner and order imposed by the computer, and instead enables
programmers to develop programs in the order demanded by the logic and flow of their
thoughts. Literate programs are written as an uninterrupted exposition
of logic in an ordinary human language, much like the text of an essay,
in which macros are included to hide abstractions and traditional source code.
Literate programming (LP) tools are used to obtain two representations from a literate
source file: one suitable for further compilation or execution by a computer,
the “tangled” code, and another for viewing as formatted documentation,
which is said to be “woven” from the literate source. While the first generation of literate
programming tools were computer language-specific, the later ones are language-agnostic
and exist above the programming languages.”

  • An introduction to literate programming using Emacs:

http://howardism.org/Technical/Emacs/literate-programming-tutorial.html

  • For a more rigorous approach you can use this:
  • Literate Devops with Emacs (Howard Abrams)
2 Likes

very interesting, gracias!

Never seen an emacs document before, strikingly how readable it is when formatted with just a few basic colors and ASCII signs.

Can you export the emacs files to .md or anything html parsable?

Wasn’t aware of the git details, have only tried a few basic clone, pull, push, branch, commit exercises against github.

Literate programming reminds me of the Jupyter notebook narratives.

Are your ELN emacs files’ ‘Direct incorporation of data’ sort of the same, where a certain code snippet can be written, edited and executed within the document?

No further questions! :slight_smile:
Thanks again, I’m reading up on your tracks now.

thanks, got it.

Writing this in a full screen Standard Notes (Ulyssus for linux sort of) editor and even for a small posts like these it’s immediate how nice it is to reduce all the noise from browser and OS.

It is switchable btw, between plain text, HTML and .md.

You are welcome :slight_smile:

From org mode documentation

Sometimes, you may want to pretty print your notes, publish them on the web or even share them with people not using Org. In these cases, the Org export facilities can be used to convert your documents to a variety of other formats, while retaining as much structure (see Document structure) and markup (see Markup) as possible.

A video:


With Emacs you have access to your “system”, for example you can:

  • run a shell (with commands and everything)
  • get info about process running in your box
  • connect to a database
  • connect to another box using ‘ssh’
  • create folders, files
  • etc.

So, yes. Is not different to execute a code snippet of JavaScript.

git’s interface makes it difficult to (use and) discover functionalities (for that reason I use magit).

Never heard about it before.

Cheers and happy coding :slight_smile:

Following packages will be installed:
ctags  emacs
Total size of package(s): 37.99 MB
There are extra packages due to dependencies. Do you want to continue? (yes/no)

SI!

visual studio, markdown, and Git.

I recently created a wiki for myself using Fandom. Just to write about stuff I had learnt, links to sites I frequent, etc.
I found it really helpful for easily categorizing and storing digital notes.

-agreed and thanks for your comment, it made me re-focus on the why and how.

Had a dokuwiki some years ago which served the purpose fine and its keyboard shortcuts made editing and posting fast and simple.

The goal now is to combine that type of note docs with a linear and visible timeline of edits/adds/revisions.

I’ve tried adding brief changelog comments marked with UPDATE and TIME STAMPs but this doesn’t solve the basic problem either. Even with some nice formatting eventually there’ll be changelog comments spread all over.

Both the current version of the doc and its timeline should be visible at first glance, not hidden behind a ‘view history’ or ‘see comments’ pane or button.

From testing some of the tools mentioned above commit logs seems like a better solution as it forces me to write a logical comment for all adds and edits and it separates the doc and its commented timeline but keeps them within the same web page and view.

The timeline is crucial as a learning diary as described by Michael Rybintsev and it will retain the learning steps involved better when opening the doc weeks or months later.

Commit logs is also commonly used in open source and web dev projects so might as well use biz best practice.

Then there’s a question of where to save and how to back up and use, as in futureproof and simple to share between platforms (Linux, local and web synced, Win phone and tablet, Android etc.) and with other people.

There’s a lot of great open source tools available and since I need a web server anyway it makes sense to host both at the same provider. Plus add some encrypted file storage. But that’s another story for another post.

do you mind sharing a .md page?

Since the recent announced changes to OneNote, I have been using https://tiddlywiki.com/. I think it’s great, though there is definitely a learning curve.

Hi Korben,

I’m not sure whether I should have actually bothered to reply, as there are so many great responses already, especially the attention given by @eretres - his coverage of org mode was extensive and compelling, however, I would offer that it also has ‘evil mode’, which is what Vim folks such as myself use, lol.

I’ll go ahead and respond in hopes that you and others find a few morsels of useful information. Bear in mind that when I speak of self-hosted FOSS, I’m not talking about adding more to your existing webhosting provider’s machines - I’m talking about you deploying your own VPS machinery, hosting your websites on that box, and self-hosting your other FOSS on that machine as well, using Docker as well as natively installed software. This will become apparent below as you read on.

First, I like Nextcloud. It comes with a host of utilities, including several one click plugins, and I like to Integrate it with the Collabora “CODE” version of LibreOffice for, you guessed it, collaborative tools.

OneNote… REALLY Dude? I don’t even need to use the word junk. You already should know this. let’s move on.

Okay Nextcloud fills some of your needs with it being self-hosted, and it’s federation capabilities along with a Kanban and mindmapper also lend a formidable platform. Think of it as the same thing as Google Drive with Google Docs (gsuite); or Dropbox w/Paper, their alternative; and Box has their offering as well - but with Nextcloud, you’re self-hosting your solution that includes calendar, contacts, storage, sharing, document management and collaboration - all of that, in a FOSS package.

https://www.nextcloud.com/ and Code 3.4.2 which was released a couple of weeks ago is here: https://www.collaboraoffice.com/code/linux-packages/ - If you need help installing natively on Slackware, Gentoo, or Arch Linux just hit me up, via email preferably, I’m easy to find and always willing to assist when people use self-hosted FOSS.

Next, And I’m not sure why this is important to you, but you’re in a development program so let’s dig down and do some integration - from your post and some of the things you mentioned it seems you won’t have a hard time implementing your own OAuth:

https://openid.net/add-openid/become-a-provider/

and

http://dotnetopenauth.net/

You can use plugins available for Nextcloud, but I don’t do Faceplant, won’t support it, find little relevance to Linkedin’s provider service, and really, would only recommend Github for a canned solution (And even this is controversial now - Microsoft has a big OAuth provider in Github).

I personally recommend DotNetOpenAuth.

Okay now, Mindmapper and Wisemap are real popular mind-mapping systems, easy to use, and y’know, there’s just so many now that I’m gonna shot you a couple of links so you can research it yourself and checkout all of the alternatives:

https://wisemapping.com/inyourserver.html

https://www.topbestalternatives.com/wisemapping/

There’s got to be something that whets your appetite in that list. I’ve used a few, some are better than others, but for notetaking they’re all great - checkout the youtube videos with the quick tuts and you’ll see what I mean, then you can transfer important keeper points and notes to your Kanban, for which, and I’m deviating here, I like Gitkraken’s Glo (https://www.gitkraken.com/).

Gitkraken is FOSS, runs on your box as a client, and works w/Github or your own git repo. Glo is their also free, MIT licensed, KanBan, although that particular aspect of the suite is NOT self-hosted. You can choose NOT to give your IP and data over to a hosted or shared resource with Gitkraken, or you can trust them. Your call, but the client is completely cross-platform compatible and I think it’s a really kewl Git client!

I personally Mindmap and move to a KanBan as a project manager for my private projects - I prefer it to the behemoth that Atlassian’s awesome products are (and you can get private dev licenses of Atlassian products for about 10 bucks a year still, I think so anyway). I use Glo for much of my Kanban needs, but not all - some stuff needs to remain completely private.

I recommend three different Git solutions:

1.) Github - IMNSHO, it’s still the best, but I only use the free, public repo services. I’ll talk about your pages in a bit :wink:

2.) Gitea - a self-hosted, fully featured, lightweight bit of self-hosted FOSS that is already familiar to anyone using Github: https://gitea.io/en-us/

3.) Keybase - free private, encrypted git and so very much more: https://keybase.io/

Let’s be frank. GitLab is kewl. It’s got features that even Github doesn’t (most of which Gitea does, however), but it is a huge resource hog, and as far as I’m concerned, that dog won’t hunt as a self-hosted solution unless I can justify it with a team of 20 or more people. Even then, Gitea pretty much blows it away all but for the most very esoteric capabilities.

Okay let’s get to your pages, Shall we?

Read this: https://blog.github.com/2018-05-01-github-pages-custom-domains-https/

Then checkout how Taylor Monahan setup MyCrypto’s Help/KB section:
https://support.mycrypto.com/contributor-info/how-to-submit-pull-request.html - i.e., look at the bottom of the page where it says, " Want to Improve This Article? It’s Easy! →"

I hope I’ve provided you with new tangents to investigate. I know I’ve always liked finding that road that veers off and takes me where I didn’t even realize I really wanted to go until I arrived at that new someplace.

My one piece of really hard, firm advice though, is to ditch your proprietary software, embrace the FOSS that empowers you, and go with that - you’re a developer now anyway, so look to what others like you have offered to give back to you, and then give back to others :slight_smile:

But what do I know? I still use Redmine for a lot of my work lolz.

Now you can haz #cheezburgerz!

Kindest regards,

Bradley

.

1 Like

Notion is an incredible organizational tool that allows screenshots, bookmarks, links, Kanban board and more. I highly recommend it.

1 Like

Looks very nice, I’m sticking to open source solutions though

I have used it before on and off, definitely a sleek and lean setup all within a single html file. For now I’m leaning towards a wiki embedded in a project management tool on a shared host like https://sandstorm.io, https://fairapps.net or Framasoft

Thanks Bradley, appreciate your write up and recommendations. I did find nextcloud in the meantime and a local provider who offers 5 GB at sign up. Seems perfect for storage and add-ons as you mentioned.

I love OneNote for the record :slight_smile: and will keep using it on my Win 10 tablet. But not for code and ICT note keeping on this Linux box.

Please allow me to get back to your other plugs at a later time.

After seeing this post and replying earlier I ended up finding this app called Notion. It is totally free and I think that you may like it. Seems to hit on most of your needs!