Effective Note and Knowledge Management

Software developer skills are not only programming languages and tools. We all process knowledge and work with information. How to take a useful note taking and create a vivid and memorable.

From school copybook to brain wiki and prolog.

I was looking for a fast and quick way to manage kb.

I tried to scratch a path.

Good note is …

  • understand goals
  • organized in a way that makes sense for you
  • vivid, specific
  • have much white space
  • understanding of subject
  • reviewed and edit
    • same day
    • week after
    • when you use notes for paper etc

Like at school. plain text.

We all start taking notes at school. We all at Ukraine was forced to use inc pen with violet inc on white paper. All in a single block that separated by a lecture. So the majority stays with it forever

select and cross

So even with this single tool and color, we could use a different type of lines (dotted, double, wave) to select the most important.

Structure

We want to achieve fast navigation and quick review. Sp structure is matter. Majority of note taking systems is focused around. You could try existing systems or invent own.

Cornell System - summary:details

Every page deviled to 2 columns. I use a 1:3 ratio. The first column catch the main idea or definition while the second column aggregate details. So the flow is simple you make a note in a full part then add a summary on the left side.

Charting - Table for spreadsheet lovers

Your note is one big table. You define columns and headers. Work well in super structured and repeatable data. Quite inflexible to add data after. In electronic form google spreadsheet or excel is a perfect tool.

outliners - multilist

One of the most favorite and widely used. Multi-hierarchy list. Notes organized to topics, and sub sub sub and so one. It is cool to use a numbered list. So it is easy to refer to tiny parts. Practically every book have a similar structure.
Restructuring on a paper is hard. Many programs are a focus on outline programs. We will talk about a few cool ones later.

More colors and tools

Next dimension that quite friendly for your brain is a color. Use different colors for a different type of information. *CAUTION Avoid super complex coding or exotic colors. 4 in 1 pen is a perfect starter

Pen, pencil, flomaster , marker , roller , highliters, inc pens color pencils.

The list is endless. All this create different memorizable possibilities and codes for your brain. My work desk looks like kindergarten and colleagues always ask me what and doing with all this.

Doodle - pics & schemas

Even on 4th grade a catch my self that I add primitive cave drawings and schemas. I will be honest my handwriting is unreadable. If I am on the rush - forget to encode it later. Sometimes i use a hieroglyph for words and meaning. Like a Math well none letters and so one. However, more and more a see a pics in notes.
My dream is to learn drawing… I’ll try to share my experience.

Mind mapping

It is fashionable and trendy. For me, it was a revolution. You have more visual and schematic note. Tony Buzan popularised maps massive and create a lot of great books.

How To

  • Start in the center with an image of the topic, using at least 3 colors.
  • Use images, symbols, codes, and dimensions throughout your mind map.
  • Select keywords and print using upper or lower case letters.
  • Each word/image is best alone and sitting on its line.
  • The lines should be connected, starting from the central image. The lines become thinner as they radiate out from the center.
  • Make the lines the same length as the word/image they support.
  • Use multiple colors throughout the mind map, for visual stimulation and also for encoding or grouping.
  • Develop your style of mind mapping.
  • Use emphasis and show associations in your mind map.
  • Keep the mind map clear by using radial hierarchy or outlines to embrace your branches.

(c) Wikipedia

Paper and pen

It is strange, but the most effective way is a paper and pen. It is the most creative way for me. It activates a lot in your brain and makes memory stronger. The motoric function has magic relations with creativity.

I like a carrier or dotted paper the most. Together with a friction pen that you could whip as same as a pencil. This tooling allows to edit the map more flexible. You could find different types of pen markers highlighters.

It is a few significant downsides

  • My handwriting and drawing skills even with cool tools remind a caveman
  • It is limited to paper size.

Some tiles paper limit for you to formulate idea better or in a more creative way but still sometimes it is a stopper.

Mapping Software

I prefer to sketch on paper an then use a software.

FreeMind

The first that I give a try was a freemind. From a name you see main benefit - free and open source. It is java so cross-platform and portable. It was one of the first, so my files are quite standard for export-import options in similar tools.

A free mind quite powerful tool that allows to edit and do a filtering and smart search on the map.

You could convert maps to different formats or even write XSLT transformations. Multiple scripts are available to extend functionality.

Freemind have few forks that are focused on different features. Docear for academic writers and researchers. Freeplane is described to in this article as a cool project management tool.

XMind

Xmind have a nice visual and reach themes and settings that you could play with.

Themes

We could take a FreeMind map and turn it to xmind and few settings and vuala.

Multiple maps and drill-down

One more cool feature of xmind that you could have multiple mind maps saved in one file as pages. You could drill down the topic to a separate map.

Easy to share and web viewer

You could upload your map from xmind and share it as a link or embedded viewer as an iframe

1
2
3
4

<iframe src='https://www.xmind.net/embed/MTXw/'
width='750px' height='450px' frameborder='0' scrolling='no' allowfullscreen="true">
</iframe>

You could freely use any of open maps

Programmable

Mind maps work not only as a note-taking tool. You could use it for a SWOT analysis and decision-making trees and planning tool. In some point of time, a catch my self that I need more excel like features.

  • formulas - If I have pros and cons I want to get a final score to take a decision
  • conditional styling - I want to see a red node if my task is coming tomorrow or have a deadline.
  • reports - derivative map or other documents that get generated from Map,

Why it matters

  • Project work breakdowns
  • GTD systems
  • Time management systems
  • Knowledge DB
  • Code visualizations.

Freeplane

FreePlan
Is a fork of freemind with a few cool features that I was looking for.
{}

  • excel like formulas (groovy with API).
  • conditionals styling
  • add-ons & scripts (you could use cool program extensions)

Formulas

So you type in a node and get a concat of all sub nodes.

1
= children.sum(""){ it.text }

So you type in a node and get a math sum of all sub nodes.

1
= children.sum(0){ it.to.num }

Expense report in freeplane

Conditional styles

The idea that you could change style dynamically based on scripts.
cs

Addons

Not all of us is programmers, but we all use programs. Same is with a freeplane you could learn groovy and API and do cool stuff, or you could install add one (just individual mind map file).

Full list of add-ons)

WBS

My favorite addon allows doing a project and resource planning super easy.

WBS plugin.
No super expensive and unusable tools like MS project or so.
100% visual
wbs
You are free to create your own.

Concept Mapping

So mind map has a centric topic that you focus on, and all relations are associative and radically spread. We have tools to link anodes and create a cloud around a connected node or add summary nodes. In a majority of tools.
If you catch your self that you create links more that subnodes or you see that you need disconnected nodes like islands (btw freemind do not give this option) you probably need a concept map.

A concept map is one more visual system for knowledge organization and learning.

Key difference from mindmap

  • focus on multiple topics and facts
  • more on relations and relations have a name and kind

    For me, the critical difference is a relation. We have nodes - facts and relations between facts.

    Materials and theory

Concept mapping was developed by Joseph D. Novak and his research team at Cornell University.

Short guide
good overview

Tooling for concept map

old good friends

Freeplane and X mind could do work. You could find concept designed software like

CMP

cmp. Tool set that useful to build concept map collaboratively and have a server solution that allows collaborate and store knowledge systems. It has a bit old fashion UI but all function proven by scientific research.

scapple

scapple. Commercial project but with less power and more UI.

Nonconcept or mind map tools that still can do a great job.

It is a wide variety of chart and graph tooling that offers a mipmapping or concept mapping toling but as a side effect

draw.io

It is an open source, general-purpose chart editor with good integration with a google drive. draw.io have a bunch of plugins and integrations for enterprise systems like confluence and google docs.

It is allowed to build a full range of schemes

hightlites
  • free
  • web interface
  • Embedded support for plant UML / Graphviz diagrams DSL
  • SQL to erm diagrams
  • plugins
downsides

Hard to share

GraphViz

Graphviz

It is not a tool it is more language that allows to describe a graph and charts as a tool.
It graphs specific tool and a perfect text to graph format.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
digraph G {
subgraph finishedTasks {
node[color="gray", fontcolor="gray"];
"Service Class"
"Move User Queries\nto Service"
"Move Project Queries\nto Service"
"Consolidate\nBehind Interface"
}
subgraph currentTask {
node[color="orange", style=filled];
"Migrate\nData"
}
goal [peripheries=2, label="Replace\nDB Engine"] ;
goal -> "Migrate\nData" -> "Consolidate\nBehind Interface"
goal -> "Rewrite\nquery methods" -> "Consolidate\nBehind Interface"
"Consolidate\nBehind Interface" -> "Move User Queries\nto Service"
"Consolidate\nBehind Interface" -> "Move Project Queries\nto Service"
"Move User Queries\nto Service" -> "Service Class"
"Move Project Queries\nto Service" -> "Service Class"
}

gviz

It is cool for generating a concept map from programs, etc. As a big plus text is quite maintainable.

Awesome Graphviz

Category theory concept map
gviz

Wiki

Yep Wiki and Wikipedia. We could use the same technology for personal knowledge and concept management is a bigger scale. Wiki allow to connect via hyperlinks big piece of facts and ideas and give a more global space for creativity and Knowledgebase management.

The best example in a global scale - Wikipedia

Tiddly Wiki

tiddlywiki
Simple web hosted the wiki. Wery adoptive - allow even to do a blogging even.

Org Mode and concept mapping

Org-mode is a text-based file format as a core - outliner. Outliners are good for hierarchical structures and idea maps. It is a universe of tools and extensions programmable and extendable. Org-mode supports formulas.

Org Brain

Org brain. Unfortunately a text only but extremely great tool that takes inspiration from payable The brain system. It takes the best from Wikis and concept map altogether.

The Brain Dump

So Org Brain allows creating knowledge management system that allows managing and whats more critical query and analyzes facts and relations.

Whats next.

Most interesting derivative from connected facts. The synthesis is one of the most amazing possibilities of our brain. Synthesis - create of new information and knowledge. The brain itself able to generate information itself. We do not want to go to the AI area or machine learning. It is too far. However, I keen on - is fact management DB.

Logic programming and datalog.

It is abow node taking. So notes are more about facts. Mind and concept map more active bring relations to a game. The next desire is to have the ability to query over relations and facts. I have no tooling like this for now. It is partially possible in freeplane.

All this is quite close to a concept to a logic programming and a Prolog programming language.

One of the big competitors of SQL is a datalog - prolog based language for data query. I see great potential in this area.

Semantic Web.

So we move from a post it to structured notes and then to a mind/concept map to a wiki. Let’s take a look at a bigger picture - the web is one big connected knowledge network.

RDF - turn resources to data facts that is queriable.

We could go outside a paper to a scale of web and even brain.
We all know that the brain is an endless universe of connections.