Hacker News new | past | comments | ask | show | jobs | submit login
H-m-m: Hackers mind map (github.com/nadrad)
346 points by makeitrain on Sept 14, 2022 | hide | past | favorite | 124 comments



I keep trying mind maps and getting frustrated because my mind works differently. Anybody know of ones that let you start out non-hierarchical?

For me, key nodes are often obvious long before relationships are. E.g., if I'm working with post-it notes, I might write a bunch of notes, cluster them, winnow, and only then want to start locking in relationships between items. Has anybody seen something that's pretty straightforward that supports that approach?


I tend to work this way with a tool called Markmap (https://markmap.js.org/repl). I start with one heading and a list then begin moving items and adding new headings/subheadings as the relationships form. For example:

  // Start with:

  # Ideas
  - Item 1
  - Item 2
  - Item 3
  - Item 4
  - Item 5
  - Item 6

  // Move to:
  
  # Ideas

  ## Group 1
  - Item 1
  - Item 2
  - Item 3

  ## Group 2
  - Item 4
  - Item 5
  - Item 6


I'm the same as you. Obsidian[0] is non-linear and has worked for me.

0. https://obsidian.md/


Looks great is this Free Software? I want to hack on this thing, where is the code?


If you want opensource and local storage look up Dendron. It is a VSCode extension in a similar vein, uses markdown so easily track changes in git/etc as well.



Or Joplin (has extensions for Graphs as well).


Or Foam.



Unfortunately Obsidian is not FOSS. It does have an open hackable plugins API though. There are lots of open source community plugins.

Link: https://github.com/obsidianmd/obsidian-releases


Additionally, the Obsidian plug-in for mind maps is amazing and very similar to how the tool in the root post behaves.


Scapple is what you are looking for. Its from the same crew that made Scrivener. You can use it free for a month I think or pay like 20 bucks for a lifetime license. It lets you start anywhere and is very simple and intuitive. The only thing bad about it is exporting data out of it. https://www.literatureandlatte.com/scapple/overview


This is sort of the problem I have with most things that aren't just a text editor. They may be better in some ways (and I do like Scrivener) but at the end of the day, when I'm done, I want everything to be in a universal format on my own filesystem.


let me recommend plugin of Joplin, everything is open source and at least two different implementation for this feature.


The best tool I've ever used for this no longer exists, as far as I'm aware. It was circa 1991, a spectacular lightweight Macintosh application called "Inspiration." There currently exists software in the same lane with the same name - but if there's any blood relation between the two, the current bears little resemblance to its progenitor.

I will mangle the terminology since it's been so long, but the basic idea was that on an infinite canvas you would create nodes representing concepts; these nodes were just UI "bubble" objects, like the ovals you might find in slide deck software. Relationships could be added after the fact by linking these nodes, and there was a fast way to create linked "sub-nodes" from an existing node. Also, very strong UI for arranging the node diagram.

Maybe the big problem with mind mapping tools these days is feature creep. A complex UI with too many options will absolutely get in the way of the thought process it serves.


Not mine, I am not affiliated with this tool, but I thought along the same lines as you and found this tool, could you give it a try and let me know what you think?

https://kinopio.club/


Very interesting, and does capture some of the transparency of Inspiration, in the sense that using the tool doesn't interfere with the process. Thanks for sharing this!


That looks like it's worth trying out, also I like the pricing model, god damn am I sick of monthly subscription.


But it looks like it is monthly (or yearly with a two month discount).


I think a yearly price of $60 is reasonable for a tool like this.


a review of Inspiration: https://archive.org/details/TNM_Inspiration_30_visual_thinki...

Inspiration : the thought processor Authors: Donald Helfgott, Mona Helfgott, made by Ceres Software, Inc

History of the company: https://psychology.fandom.com/wiki/Inspiration_Software


The software is still around and old vintage software sites have the earlier versions that you can run in a MacOS8 emulator. I last played with version 6 I think about 4 years ago; at that time you could have both an outline view and a mind map and switch between them.


I am currently trying a big sheet of white paper, folded once in the middle and a pilot frixion pen.

This is mostly for home stuff of which there is quite a bit for a home owner. It can just lie on since table or shelf and be updated easily. I put notes and todos together and the todos get a little check box in front of them. I'm in control of the hierarchy and it mostly mirrors the layout of the house. Doesn't get in the way for me.

I also want to extend it to other areas but for now I'm trying things out with the house domain.

Of course the downside is that i cannot easily edit it when I'm out and about and have some idea. And it's not really possible to have any automated reminders or integrations. (Not sure if there are open source alternatives to what rocketbook is offering; that might be a way to hook this into some digital setup)


I have 3 suggestions! because that's how I tend to work too

- Scapple (mac/windows only) https://www.literatureandlatte.com/scapple/overview I love how minimal it is, but wish there was a linux/web version. I'll probably make my own some day.

- kinopio (web/mobile) kinopio.club Works well, but has a strong, quirky personality which sometimes gets annoying for me; I prefer the minimalism of scapple.

- draw.io / diagrams.net You can configure it to hide most of the toolbars and then just use it as mind mapping software, this is what I'm trying at the moment.


What I really like to prepared D&D games are Entity Relationship Diagrams. A very handy app for from the Android Play Store is "Draw Express Diagram Lite" - the touch UX to create diagrams is unmatched in usability if you ask me.


Yeah this is a common problem that pops up all the time, typically a tree, or taxonomy etc aren't sufficient and you need an ontology. But they aren't so easy to grasp intuitionally so we try to dumb it down and then hit problems, imho.


Depending on the topic I'm working on, sometimes I need an approach similar to what you explained. I still use a mindmap, open a first-level node called 'temp' and start adding everything there and keep sorting them. As soon as a structure starts to emerge, I create other nodes and move those items to their new places. This is based on the assumption that your final output would be a tree with one-to-many relationships rather than a graph with many-to-many relationships. I've seen tools for organizing many-to-many relationships, but I never had the need to use one.


Im using iThoughts. It's Windows/Mac only though. I recently switched to Linux and trying to get it to work in Wine.

I do believe you can create nodes without any Hierarchy and you can always join the nodes into a hierarchy later.

It's got great export features and a ton of other stuff. For me it's the best mind mapping software I have ever seen and I have tried a lot of them.


The left-to-right trees of these mindmap applications has always felt a very bad fit for me. To me, a mindmap is a big piece of paper with the core concept in a bubble in the middle, and things drawn outward from it, with lines connecting things when they are related. The end result is much more organic, and spatial layout matters.


FastMindMap (https://fastmindmap.innovationgear.com) allows adding on the board the so-called 'floating topics', and later you can build hierarchical or parallel relations between the topics with drag-and-drop. (I'm the developer).


Usually the non-hierarchical is an option to toggle on/off in the tools I’ve used.

With hierarchy you can still achieve it though. If the topic is “alphabet” I might create major nodes A B C D without linking them. I then play with A B C and D and add more nodes in a brain dump and then re-arrange later and map the relationships


I’m a huge fan of Graphviz and git. Text is easily diffable!

Try SketchViz.com and see what you think.

Also a shoutout to yEd Graph Editor (free).


The one I created supports force diagrams as well as hierarchies. You can add nodes and later rearrange them ("move")

Feel free to try. Works on all platforms, can be used as a collaboration tool, and has a ton of other features

https://6groups.com


The only time I ever use them is when I’m making notes about something and realize that there are a lot of cross references. Helps to see them.

Also I like to use them in new organizations to map out the people I meet to make sense of who knows what about a topic. Especially in big orgs.


miro.com works great for this kind of thing.

Edit: Or if you want an open source alternative, check out ourboard.io


In the past when I've used them, I usually started by listing all the nodes in a long list under a single root, not trying to organize them at all. I fought the urge to organize everything from the get go.


I want this too. I found some answers in HN comments: https://news.ycombinator.com/item?id=32536780


I use zim-wiki with the graph plug-in, along with external scripts that edit the underlying pages to both add and remove links.

I've emailed and tweeted.


I have recently started using kinopio and did like it. It has been getting more and more features recently, you could give that a try.


Perhaps iThoughtsX from https://www.toketaware.com/


MindNode is good for this. Unfortunately they went for subscription model.


maybe treesheets?


I made a video overview of this tool if you want to see it in action. I also compared its philosophy to my tool TaskTXT (http://www.tasktxt.com).

Hmm video overview: https://youtu.be/mRbaXHlhwUI


Thanks for the review! Try the focus feature (the 'f' key) and focus lock (shift+f) as well if you've not done so already; it can be very useful.


Thanks for the video really clear, not sure why but my mind just couldn't figure out what this project was from the github.


Wow, a single PHP file, I wasn’t expecting that ^^

Looks cool though, I’ll try it soon :)


The use of PHP makes it truly a hacker's mind map.


Yeah. I do wonder if it is possible to pack this into a standalone binary so that I don't have to install PHP - not due to language bias, but so it might be run without any package installation steps.



I showed up to a company wide strategy offsite with an iPad and whipped out a mind mapping tool. For the first ten minutes I could see my boss vibrating because he thought I was fucking around.

By the end of the meeting he wanted a copy, and for me to CC his boss and a couple of his peers.


Which tool are you using on iPad?


Best ones I’ve used are MindNode and XMind. I actually used MindNode for personal stuff and XMind for work, but now I’ve been gravitating towards XMind alone because it also runs on Linux (besides Mac and Windows) and I can sync my mindmaps to the iPad with SyncThing.

XMind does have a couple of irritating bugs on Fedora around keyboard input (I can’t move focus with the cursor keys, it creates a new node) but it might be specific to my setup. Their support/developers don’t seem to care much, though.


Why would a mind mapping tool cause such a reaction? Are diagrams considered not serious where you work? Was the tool heavily ornamental/stylized? Or was it seen as writing down things that are obvious?


If the boss can't see what is being done on the iPad, it just looks like someone playing candy crush.


He was sitting right next to me. He was just a control freak, who also projected on other people. His ego took out a whole office. Best layoff I ever had.


Pretty sure it's the fact that GP was on an iPad that made boss unhappy


I have experienced this hate


This is really cool. Adding, editing, and navigating nodes is pretty intuitive (reminds me of working in a spreadsheet). I kind of wish that it would auto-center as you're editing, and it might be nice to be able to hit Escape to cancel out of creating a new node. The ability to export as HTML is simple and gives a nice result. I'm going to incorporate this into some of my workflows


> I kind of wish that it would auto-center as you're editing

press shift+c


There are no stupid questions, except maybe this one:

Q. Why is a wide horizontal tree superior way to work with a mind map that’s a pure outline (not a DAG) than a simple outline?

See the Data Format here, it’s an outline. Keystrokes are about moving nodes and descendants, that can work on an outline. And then why not have a portable outline format.

I do understand this is terminal/text. Yet there are plenty terminal/text outline editors, and being able to see a narrow outline instead of a wide tree feels more usuable.

That said, I use and really enjoy iThoughtsX which can import/export OPML and Markdown etc., and provides ability to control visual layout per ‘information geography’ or ‘cartography’. So not averse to visual graph depiction of a DAG, just asking why folks like this for pure outline format instead of outline editing?


I haven’t tried this yet, but from the look of it, it expands both horizontally and vertically, and one of the more important features is collapsibility/expansion of subnodes.

Note that in the image there, they’ve got some subnodes expanded deep horizontally, while their sibling nodes might be even deeper but are collapsed.

The difference with a simple vertical outline is that this format is focused on pruning/unpruning parts of the tree, pair with an expectation of arbitrarily “deep” nesting. I find that in outline format, I’m unlikely to go deeper than a couple levels, and will at that point either switch to narrative or use some sort of referencing scheme.


OK, makes sense. I think most "outliner" tools I know of do exactly those adds, with the benefit of also being relatively flush left.

As I help our firm select knowledge management tools, I'm just trying to understand the use cases that differentiate this approach from a fully fledged outliner.

Note that I ask the same thing of people who do outlines in MS Word manually as plain bullet lists instead of using, you know, the outliner. :-)


Literally, today, was thinking about leveraging $tree for mindmapping when this dropped: Poor mans mind mapping tool with just the terminal [1] having been inspired by h-m-m (hackers mind map) [2]

Went with VimOutliner [3] instead which is one less thing to install and fits so well with a tmux-vim setup.

Now all that is missing a sparse tree mode like OrgMode that beats out tabs and splits [4]

[1] https://news.ycombinator.com/item?id=32846124; https://www.unixsheikh.com/tutorials/poor-mans-mind-mapping-... [2] https://github.com/nadrad/h-m-m [3] https://github.com/vimoutliner/vimoutliner [4] https://orgmode.org/manual/Sparse-Trees.html#Sparse-Trees


A terminal-based mind mapping tool with Vim keybindings? Count me in!

The fact that the name immediately made me think "Hamlin-McGill-McGill" is only a bonus :)


Vim keyboard mapping in the terminal. This is a great project. Now I can finally replace some of my web-based mind map tools


I never really understood the advantage of a mind map tool over a good tree-oriented note taking/task organizing tool. In fact I prefer the use of screen real-estate in a simple tree than a mind-map. Is this just a matter of personal taste or is there some functionality/concept am I overlooking?


I think mind-mapping is similar to graphs, so it shows circular relationships. But I personally enjoy tree structures for reading. I don't see why these apps can't do both.


Easier and faster navigation of the tree


I went back and tried this and it is pretty awesome. Very, very good navigation and quick editing experience (and I use mindmaps a lot!)

I do wish it was in a compiled language like C or Go (or a more common CLI scripting language like Python) so I didn’t have to install PHP at all.


Dave Winer of RSS and blogging fame created Think Tank, a text mode outliner, back in the 80’s. Was a single binary for MSDOS. Haven’t seen an outliner that came close.



I'm old enough to remember when pockets of the Freemind[1] community aspired for that application to reach something of this state. Sadly, development forked and work on the original project stalled pretty hard.

Great stuff - thanks for sharing!

[1]http://freemind.sourceforge.net/wiki/index.php/Main_Page


Its fork, freeplane, is what I use: https://docs.freeplane.org/.


I love this. Honestly if this had the same tasking capabilities as minder https://github.com/phase1geo/Minder I might just make the jump to it. Using mind maps as a tasking app has worked out well for me.

This project looks very very hackable. Might do a pull request


Using Git-Flavored Markdown, you can have [x] as checkboxes...


We're talking about h-m-m right now?

Is your suggestion to simply name a node '[ ] thing to do'?

I could talk at length about the ergonomic deficiencies there but I wanted to verify first that I understood you correctly.


Should integrate with orgmode headings.

...but mapping everything is just step one. Step two is getting a prioritized list of todos for the day.


Have you considered aligning sublists to the parent node? Right now, your eyes have to leap upwards from a node to get the first child of the list. And since each list has a different length, you have to scan upwards a different amount every time. If every list was aligned with the parent, you could just read left-to-right.


Would you mind explaining a little more?


In the screenshot in the repo, there's a node with the text "a mind mapping tool". It has 5 children, but the first child "text-based (terminal application)" is above it. So the more children a node has, the further above it the first child is. What if it was aligned so that the first child is at the same height as its parent? Then it might look more natural like a list, and read easier since the children start at the same height as the parent rather than at some arbitrary point above it.

This would help with flow, because then you can read left to right and scan downwards. Right now you have to keep jumping up to find the first child and then scan down to read all the children.


I agree with this, but I would say that both options work. I like how it organizes things currently, but if this "child list" could be added it would make my workflow quite organized for little input. Keeping things as simple as possible while maintaining productivity is the goal. Although I would like to see color coding in some fashion as to keep larger data sets clear when observed in a tree with many branches.

Perhaps the hotkey of '0' could be used as it is next to O for creating a new "child list". Great tool as-is though.


I see. There can be a vertical alignment option in case someone prefers this layout.


Please seriously consider making it the default. Every graph-visualization tool makes this alignment mistake, and it's part of why they just aren't very popular. They're too hard to browse because you can't easily scan the graph. I think if you prototype it, you'll see how much better it feels when everything lines up.


Awesome. I am using PHP for some college classes and I can certainly say that I would never want to use it for something like this, but the fact that someone did is pretty awesome. I will definitely be using (probably a fork that I rewrite in a language that I will be willing to maintain) a lot for sure. Awesome work!


Can anybody point to some resources that would help someone who's interested in trying to use mind mapping?

I often see these mind map things and I'm interested in learning what benefits they can provide me, but I have no idea how they're actually used. My searches have only yielded people using them as study aids.


The Mind Map Book by Tony Buzan is a good place to start. As are his video interviews and lectures that can be found here and there.

https://youtu.be/VP-OoIqoEa4

Essentially they are all about creating a breadth-first outlay, when there are lots of things to cover, think about, or discuss. Then you can tack your additional needs on around that.

Tony was also obsessed with learning, memory, and memorization as general aims in life, so he tried to map natural patterns like sensory factors, fractals, and meaningful branches onto his mind map scheme. In his view, this merge with the mystically-natural was in effect a merge with the best one could achieve in taking notes.

IMHO however, those are some of the least interesting parts in terms of day to day note taking utility, and the capture of a broad set of ideas as if it's all owned by one central topic is basically fantastic enough for most uses. This is also known as a concept map.


Love the idea, love the UI. I see same UI approach can give life to quite many new tools.

I'll try it when they repair my Mac


Hey! love the thing. Quick suggestion to the README on the section "Relative navigating and moving" It looks like I have to press H <AND> <-, to move left - I am assuming that I can do either or, a la vim. A small copy edit would make that clearer. Kudos!


Done :)


This is great. Especially because it's the work of a highly motivated and gifted person who doesn't crank code for a living. I'd say "gifted amateur" except the only thing amateurish about this is that it's a labor of love.


That's a valid definition of amateur. It can also mean low skill, but that's just how we messed up the language. https://en.wikipedia.org/wiki/Amateur_professionalism


Mmm, keyboard centric, Im loving it


Love the idea. Their website is full of goodies. The graphic for the p3 express framework is pretty cool. https://p3.express/manual/v2/


I'm glad you like it :) To be clear, this mind mapping application is my personal project and P3.express is a group effort and I'm one of its contributors.


I don't really get the point of a hierarchical mind map. Why not just use a nested list? (Seems to be standard for mindmaps, so I'm criticizing this project specifically.)


It's basically a nested list, but you get specific features that makes it easier and faster to navigate such a list. Mind mapping is a facilitator for the thinking process. When you're trying to solve a problem or design a concept, you need to switch between the high-level aspects and details all the time, and your tool shouldn't get in the way.


Nice tool.

A question to others who enjoy similar tools:

What is the difference between this (or other) tool to a simple document on Gdocs with multilevel bullet lists?


The most obvious benefit is easily handling non-tree interactions.

The fact that it's terminal-centric is also situationally an advantage as opposed to gdocs, but that could easily be solved by vim or something, so I don't think that's quite what you were asking.


This type of application makes it easier and faster to navigate the tree, collapse and expand to focus on various aspects, etc.


I'm getting a 255 return code when I try to run it. php v.7.4.3. Permissions are all ok. Anybody else have this problem?


This is why you take a few seconds to be considerate to your users and potential contributors and put a 5 line Dockerfile in the repo

You can either run the code or develop on the code with no more "works on my machine" that way

Something like this should have done it:

   FROM php:8
   # install that mbstring library
   CMD ["however", "you", "start", "php", "apps"]


Standard error said there was a call to undefined function mb_strlen(), which apparently isn't available by default on php.


Not trying to hate on PHP, but deployment is one of the features that is so great with Go. It's about on the same level of abstraction as PHP and it's just a breeze to deploy stuff.


sudo apt install php7.4-mbstring # Fixed it. There's also package php-mbstring


I miss using Sketch for mind-mapping. Vector based editor with great support for annotation, infinite zoom, notes, and graphics.

Oh well.


It looks cool, but I'm looking for a mind map that can represent cyclic graphs and multi-dimensional hierarchies.


I have been using iThoughts for over 10 years. Great for a touch interface.


I am making a new proj and this tool will be really useful for me! Thank you.


Built by a product manager?! I didn't know they could make things!


Not a product manager, my area is project management :)


One can use also mermaid JS with its live editor.


it's just not the same. Every single good mind mapping tool, despite being "graphical", distinguishes itself by good keyboard handling so you can quickly navigate and move stuff around. This does that.


Looks like a mind tree. Can it do proper graphs?


Not nearly as hacker-y as this, but I'll plug Reflect here. Probably my favorite tool for this so far. Best continually-improving UX, but there's a subscription cost. I happily pay it.


Do you have a link?


Mindmaps are trees. Maybe you're looking for concept mapping software like cmaptools?

This isn't a real Buzan-style mindmap, though, because the words aren't on the lines.


Terminal based mind map, with vim keys!


Written in PHP! That's a cool language, not these Rusts, Gos, Carbons...

get off my yard


Looks cool. A bit strange with a 2.4k single php-file implementation though. If it works, it works I guess.


OK, cool idea, but..

- Why is this written in PHP? Who builds CLI applications in PHP? Everything looks like a nail, I guess? - Why did you choose your own custom serialization format instead of using something universally supported, like JSON? It's literally more effort for you and everyone else involved for zero benefit. - I love CLI applications and CLI navigation(vim-style, etc) but it really feels like a missed opportunity for this to not have any sort of web UI, since it would be very natural to click, zoom and pan around.


Do you mean json for saving the data? I wanted the file to be human-readable. You can simply have a markdown list and open it in this application and work with it as a mind map. Also, most of the content one may paste into a mind map is an indented list, and when they copy something from the map, they expect it to be like that. Therefore, the application must be able to process from and to indented lists anyway.


Using Git-Flavored Markdown, it makes for nice checklists.


Programming is not my career, but rather a hobby, and I developed h-m-m because I wanted to have something like this and couldn't find one. Therefore, what I've done here may have a lot of room for improvement. If you see an embarrassing problem in the program or have an idea for improvement, feel free to contact me; I'd be happy to receive your feedback.

I’m not fond of it being in PHP, either (mostly because I doubt I have it installed to use this), but that doesn’t make this a bad tool, just one that solves someone’s problem.


Near the bottom of the README, it says:

Programming is not my career, but rather a hobby, and I developed h-m-m because I wanted to have something like this and couldn't find one. Therefore, what I've done here may have a lot of room for improvement.

It makes sense to me that a hobbyist might well build a CLI in whatever is convenient for them, and not know to look for standard serialization formats.




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

Search: