bkonia
I've been a fan of The Brain for years and have tried many times to integrate it into my daily workflow. It's a great tool for organizing and connecting information, but as a task management tool, it comes up short for two reasons:

  1. Within a given project, tasks are linear; they have a sequence. Yet if we create a thought for each task, there's no way to organize these thoughts in any type of sequence. If I enter a bunch of tasks under a parent node, they'll be sorted by name or date or whatever, but there's no way to sort them manually. I've seen numerous requests in this forum, going back many years, for manual arrangement of thoughts, yet even in Beta 9, this still has not been implemented. Is it really that difficult? I know, you can workaround it by numbering your tasks or whatever, but I refuse to do that. It looks ugly and what happens when you want to reorder tasks? You'd have to manually renumber all the tasks. It's just crazy that in such a sophisticated piece of software, the user is told to resort to such a primitive workaround.

  2. View options are global and cannot be overridden for individual thoughts. Within a given brain, we may have a variety of types of thoughts. Under some thoughts, we may store documents that should be arranged alphabetically or by date. With the new Mind Map view in version 9, we may want to create mind maps, but we probably don't want to view the entire brain as a mind map, just specific branches. If thoughts could be sorted manually, the Outline view would be ideal for working with lists of tasks, but again, we probably don't want the entire brain displayed in Outline view, nor do we want the entire brain arranged manually, just the specific branches containing linear thoughts.

I'm proposing that in the thought properties dialog, there should be an "Arrange By" selector, which includes an "Unsorted" option and a "View" selector, which would allow the user to choose between Normal, Outline and Mind Map. By default, new thoughts should inherit the settings from their parent thoughts. So if you create a project containing a hierarchical task list, you don't have to keep overriding the settings each time you add a new branch of tasks.

If these two shortcomings were addressed, The Brain would finally realize its potential as the ultimate productivity tool. Until then, it's just an information organizer.
Quote
pthompson
Brad,

First, thanks for your suggestions.

bkonia wrote: Yet if we create a thought for each task, there's no way to organize these thoughts in any type of sequence. If I enter a bunch of tasks under a parent node, they'll be sorted by name or date or whatever, but there's no way to sort them manually.
Thoughts can be sorted manually with an Expanded View.
bkonia wrote: I've seen numerous requests in this forum, going back many years, for manual arrangement of thoughts, yet even in Beta 9, this still has not been implemented. Is it really that difficult? True, an Expanded View has not been added into TheBrain 9 yet but it is being worked on. I'm sure if it were not difficult it would be implemented already.
bkonia wrote: I know, you can workaround it by numbering your tasks or whatever, but I refuse to do that. It looks ugly and what happens when you want to reorder tasks? You'd have to manually renumber all the tasks. It's just crazy that in such a sophisticated piece of software, the user is told to resort to such a primitive workaround.In TheBrain 9, you can use hidden ordering.
bkonia wrote: With the new Mind Map view in version 9, we may want to create mind maps, but we probably don't want to view the entire brain as a mind map, just specific branches.You can quickly switch between views via the toolbar icon or via keyboard shortcut:
Screen Shot 2017-05-10 at 2.59.26 PM.png
Quote
bkonia
Hi Patrick,

Thank you for your response. I have some additional comments.

  1. You mentioned that thoughts can be sorted manually in an Outline view. I think you meant Expanded view, as the standard outline view does not allow for re-positioning thoughts. While it's true that thoughts can be manually positioned in Expanded view, that's not at all what I'm looking for. I don't want to be dragging thoughts around to manually position them, as that would quickly devolve into a mess. I want TheBrain to manage the layout and keep everything neat and organized, but I want the option to manually ORDER the thoughts. Do you understand what I mean about the difference between manual positioning and manual ordering?

  2. I read the forum posting about hidden ordering. It's better than nothing, but it's still a workaround, in much the same way that prefixing/suffixing thought titles with a comma is a workaround for creating unique titles. These are crude solutions for behavior that should be handled more elegantly by TheBrain. I go back to my original point about reordering. Even the most basic task management program allows you to drag/drop tasks to reorder them. Why can't TheBrain do this? Why do we have to make do with primitive solutions like manually typing numbers to order thoughts? It's nice that the numbers are hidden, but this is more like a temporary patch than a solution. After all the years of people asking for manual ordering, it's disappointing that this is what your development team came up with.

  3. Regarding switching views. Of course you can switch views quickly, but the new view is applied to the entire plex, not just the branch you're working on. Constantly having to manually switch views is not conducive to an efficient workflow. If I create a Mind Map, I shouldn't have to manually switch to Mind Map view every time I view the map. Same thing for task lists. A nice feature of version 9 is the ability to have multiple views open in different tabs. However, the view/ordering settings are still global. So I could have a task list open in one tab and a Mind Map in another tab and each time I switch tabs, I'd have to manually switch the view to the one appropriate to the selected tab. We should be able to assign views and ordering to individual thoughts and their ancestors and these assignments should be sticky, so whenever we return to the branch, the view automatically switches to the one we assigned.
Quote
pthompson
bkonia wrote: I think you meant Expanded view, as the standard outline view does not allow for re-positioning thoughts.Yes I did thanks. I corrected this.
bkonia wrote: Do you understand what I mean about the difference between manual positioning and manual ordering?Yes, I do and manual ordering is something that is documented.
bkonia wrote: Even the most basic task management program allows you to drag/drop tasks to reorder them. Why can't TheBrain do this? Why do we have to make do with primitive solutions like manually typing numbers to order thoughts? Basic is the keyword there. TheBrain is a relational database, not linear or basic, and can have hundreds of unique links to multiple different or same thoughts at a time. This is part of one reason why it's not as easy as it sounds but I'm sure Harlan can add to this and explain it better than I can.
bkonia wrote: Of course you can switch views quickly, but the new view is applied to the entire plex, not just the branch you're working on. Constantly having to manually switch views is not conducive to an efficient workflow. If I create a Mind Map, I shouldn't have to manually switch to Mind Map view every time I view the map. Same thing for task lists. A nice feature of version 9 is the ability to have multiple views open in different tabs. However, the view/ordering settings are still global. So I could have a task list open in one tab and a Mind Map in another tab and each time I switch tabs, I'd have to manually switch the view to the one appropriate to the selected tab. We should be able to assign views and ordering to individual thoughts and their ancestors and these assignments should be sticky, so whenever we return to the branch, the view automatically switches to the one we assigned.
While this sounds wonderful and easy in theory I'm sure the reason this is not as easy as it sounds and goes back to TheBrain being a relational database with connections that can be added, removed, and changed at any given point. Nonetheless, I will make sure this is documented as a feature request.
Quote
bkonia
Patrick,

I appreciate your fast responses and thank you for submitting these feature requests.

However, I want to add that I'm a developer myself and I work with relational databases all day long. Nothing I'm asking for is impossible or even particularly difficult in the context of a relational database; it's just a question of priorities. I've used TheBrain off-and-on since 2007 and I've always been impressed by the UI, but generally underwhelmed by the feature implementations.

Because I love the UI concept so much, I've tried many times to use TheBrain as my primary information store, but time and time again, I've run into these annoying limitations and awkward usability issues. I've gone back and forth multiple times between TheBrain and DEVONthink. Although DT lacks TheBrain's signature UI, it does almost everything else right. For instance, DT has the same relational structure as TheBrain, yet somehow they manage to provide manual sorting and node-specific views. So for the time being, I need to use the application that allows me to work efficiently, not the pretty application that constantly gets in my way.

It's my sincere hope that Harlan and your development team are able to address these shortcomings and elevate TheBrain to the world-class productivity tool it deserves to be.
Quote
pthompson
Thanks Brad. We'll make sure to take note of all your feedback.
Quote
zenrain

@bkonia, As you are a developer, and deal with relational databases all day long, let's think the problem all the way through.

In a standard outline format the sorting is incredibly easy to implement. However, in TheBrain, a thought can belong to multiple parents. 
So now we have a situation where the thought is in a list under one parent, however when switching to a second parent, the order has the option of being the default (basically NULL) or ordered with a different order than when under the first parent. Now add the fact that a thought can have limitless parents. The problem has to be tackled where a way to store the relationship and order based on the parent, must be stored separately from the thought, and link data, AND also synchronize to other machines (and the web interface) and be read and affect the output on the screen near instantaneously, while potentially scaling to millions of records.

And this is before we even get to all the ways this new code could interfere and cause issues, requiring a heavy QA effort.

So not impossible, or even close, but quite a decent chunk of work and it would need to be heavily tested. Is it a 9.0 (which is a full re-write) feature? No, but they did throw us an extremely large bone in the invisible ordering (which is far, far easier to implement as it doesn't require any additional data structure and can use the existing ordering code). 

Would I like to see this? Absolutely. Easy, or basic? Um, yeah, I'm sure it's ease is inversely proportionate to our familiarity with the base code. [wink]

Also, I LOVE DevonThink and use both. DT doesn't have even close to the same relational structure as TheBrain. DT is a hierarchical structure which allows replicants and duplicates to mimic files belonging under multiple folders. TheBrain does no such thing, items can belong to multiple nodes/groups/hierarchies directly. In addition it also allows a non-hierarchical direct link (jump thought) as well as tags (also in DevonThink) and Types (not, although if we are going to get semantic, it's arguable that labels could sort of get in the ballpark). Also, DevonThink is File based, while TheBrain is container based, meaning a container (thought) can be associated with and display both files, notes and images within the same item, and also be structured under other containers. Don't get me wrong, I'm not disparaging DevonThink in the least, it's fantastic. It's also very different.

macOS 10.13
TheBrain 9.0.222
Quote
bkonia
zenrain wrote: In a standard outline format the sorting is incredibly easy to implement. However, in TheBrain, a thought can belong to multiple parents. 
So now we have a situation where the thought is in a list under one parent, however when switching to a second parent, the order has the option of being the default (basically NULL) or ordered with a different order than when under the first parent. Now add the fact that a thought can have limitless parents. The problem has to be tackled where a way to store the relationship and order based on the parent, must be stored separately from the thought, and link data, AND also synchronize to other machines (and the web interface) and be read and affect the output on the screen near instantaneously, while potentially scaling to millions of records.


You're way overcomplicating it:
  • Each node is a database record.
  • Since each node can have unlimited parents and since each parent can have unlimited children, this is a many-to-many relationship.
  • In a many-to-many relationship, there's an intermediate table, which contains a record for each parent-child relationship. This record stores information about the relationship between parent and child nodes.
  • In its simplest form, the intermediate table would contain two fields, child_id and parent_id. Thus, given any child_id, you can lookup the id's of all its parents. However, there's no practical limit to the number of fields each record can store.
  • Presently, the intermediate table stores things like link type, etc... It would be a piece of cake to add a new field called weight. This would represent the weight of the child in the context of that specific parent-child relationship and relative to all other nodes that have a relationship with that parent.
  • When the user clicks on a node, the database looks up all the children of that node to render the view. With a manual sort, each child would have a weight relative to that parent. If the node has multiple parents, it will store a different weight for each parent. Again, this information is stored in a table that already exists. It's just a new field in an existing table.
zenrain wrote:
Also, I LOVE DevonThink and use both. DT doesn't have even close to the same relational structure as TheBrain. DT is a hierarchical structure which allows replicants and duplicates to mimic files belonging under multiple folders.


You're correct in this regard, as DT does not allow for directly linking nodes. However, in the context of this discussion, it's a moot point. Each DT document can have multiple parents, just as each Brain thought can have multiple parents. The only difference is that since DT is folder-based, only folders can be parents. It doesn't make it any less complex, it's just a different way of organizing, likely a design choice to maintain compatibility with the underlying folder-based file system.
Quote
Harlan
Hi Brad,

It's a "piece of cake" to add a field, yes. It is however quite a bit more complex to implement manual ordering of thoughts. If it was easy, it would have been done long ago. We are well aware that many people would like it and we would like it ourselves.

We are very much dedicated to making TheBrain the best piece of software it can be. That is why we have spent a huge amount of effort into rewriting multiple decades worth of code from scratch. Believe me it would have been much easier to simply update the old code to add a few more features, including manual re-ordering of thoughts 100 times over.

TheBrain 9 is a true generational leap ahead. It is not about new features, it is about a new foundation. If you'll allow me to drag out the metaphor... Instead of adding new furniture, paint, and redoing the floors, we have rebuilt using techniques and building materials that didn't even exist until recently while moving to an entirely new location that has room to expand in every direction.
Regards,
-Harlan
Quote
bkonia
Hi Harlan,

Thank you for your response. I totally understand your point and agree that migrating from Java to native apps is an enormous task, but certainly well-worth it in the long run. I emailed Patrick yesterday to commend him and your entire team for your great service and customer-friendly attitude. I mentioned that after using TheBrain for many years, version 8 was the first time I didn't renew my license. The reasons I cited were slow pace of development, lack of an internal web browser and the fact that it was still a non-native app.

After testing version 9 for a few weeks and after getting some encouraging feedback from Patrick and your team on the forums, I decided to jump back in and renewed my license. I'm happy to be back and looking forward to seeing more great stuff from you guys, in the months and years to come.
Quote

Add a Website Forum to your website.

Newsletter Signup  Newsletter Signup        Visit TheBrain Blog   Visit TheBrain Blog       Follow us on Twitter   Follow Us       Like Us on Facebook   Like Us         Circle Us on Google+  Circle Us         Watch Us on Youtube  Watch Us       

TheBrain Mind Map & Mindmapping Software     Download TheBrain Mind Mapping Software