Hey, thanks for open sourcing TreeSheets. I forked it[1] some time ago to add localization support (though I also reorganized the code a fair bit in preparation for some other changes I was planning). It's a very cool project, pretty easy-to-understand codebase by virtue of being very simple.
TreeSheets (native cross-platform app based on wxWidgets) is great and in need of new contributors.
For non-linear organizing on iOS, the indie app MindScope (https://www.macstories.net/reviews/mindscope-review/) is uniquely fast for brainstorming and re-factoring visual layout, before exporting an outline to another tool. A single node can be linked from more than one location in the hierarchy.
I've been using TreeSheets for a long time now and, though occasionally I do run into limitations I find it generally to be on "the right scale" for nearly all of my needs.
It's small enough that it starts really fast. Simple enough that I can write, organise, and curate what little I have to deal with quickly enough that I don't give up or get interrupted midstream. And it works on most of the platforms I use. If it were available for my iPad, I'd buy it but I can totally understand not wanting to deal the iTunes store.
What's holding back a mobile port is 2 things:
1) It's written in wxWidgets, which has an unfinished iOS port and no Android port. Even if these ever get finished, mapping the UI 1:1 would probably make for a really bad mobile app, and would have to be adapted specifically for mobile. An alternative route is to rewrite the UI in Qt or OpenGL or something, but that's a huge amount of work.
2) It would need support for cloud storage.
Looks beautiful but seems to be only for trees which you can sort of do just by indenting in a text editor. I sometimes want to organize things as a DAG and that's where indenting text starts to fail.
I wish there was a very general purpose graph editing and visualizing tool that could be as general purpose as spreadsheets.
This request seems to come up occasionally whenever a topic on graph management comes up but I wonder how many people actually need a general purpose graph editor.
I am currently working on Solvent and one of its features is an object graph management system that can be used to construct any sort of hierarchical data structure, in particular I have started demoing in to DevOps people configuring things like Kubernetes, cloudformation..etc.
Each tree node only has one parent, which is easy to indicate through the indentation structure. In a DAG a node can have multiple parents - I'm not sure how this can be modeled with indentation.
I can't visualize how you would represent a node with multiple inbound edges in text, but it could be because I'm only halfway through my first coffee. Can you demonstrate in a comment box?
As someone who spent way too much time obsessing over this stuff, this is awesome and very promising.
One reason I'm not happy with traditional spreadsheets is that there's no non-hackish way to implement "tagging" (as in, hashtagging) a given row. You can create a "tag" column for storing "tag strings" (all the tags that have been applied to this row, delimited by say comma) and then filter by instr or some regex, but it's inconvenient.
Haven't fully checked out the features of TreeSheets yet but I imagine it would be quite suited for this purpose? Is it possible to do a search for all the rows whose 'tag' column's value includes as a member (not: contains as a substring) a particular tag?
It's quite flexible in how you structure your data, so besides rows and columns, "tags" can be children or parents. It even has an explicit tagging feature where you define tags that can easily be applied. See also the "Hierarchy Swap" feature as a powerful tagging related feature.
On the downside, the built-in search is purely textual, not structural, so your example query can't be done. Structural queries would be an awesome addition though.
This is pretty amazing. I use a combination of OneNote and MindNode across my machines/tablets (except on Windows, where I have no mind mapping solution) and I've often wanted something that could merge tabular and tree formats.
The Mac version is a little clunky (and yet, it's wxWidgets), but works. The file format is... probably my only concern, but there is XML export.
There is a large gap in software for non-linear thinking/sketching. It's not obvious for tasks that require linear thinking, like programming, but when you are trying to explore solutions in an fuzzy problem space, something along the lines of TreeSheets is certainly useful.
Thanks! An Android port requires either wxWidgets to be ported to Android (which doesn't exist yet), or TreeSheets to be rewritten to not depend on wxWidgets but something else (Qt? OpenGL?). These are both huge undertakings.
Very cool! If I had found this a year ago or so I could have saved myself a lot of work, I built something similar but with a web front end (which also helps to make it easier to collaborate on a project). We use this in the run-up to a technical due diligence to organize all the information and to prevent duplicate efforts.
That sounds interesting! Have you considered open sourcing your work?
I've been working on similar things on and off for a long time (specifically a sort of meld between Workflowy and spreadsheets, but supporting DAGs), but it takes significant effort to reach a stage where tools are useful and reliable...
Can you be more exact what you mean by synchronization?
Currently, you can save your TreeSheets file in, say, DropBox, have it open on multiple computers, and any save will automatically reload the document on other computers (if they don't have unsaved changes, otherwise it will ask).
TreeSheets currently doesn't merge. If the file was modified in 2 locations without being saved first, the user has to choose which to keep. Not that this is mostly intended for single-users scenarios where typically a user edits on one computer at a time :)
Ah nice. I've been looking for an offline desktop app where I could collect all the data that's needed to complete official/govt forms, like my tax and health cover info. Make/model/yr of purchase of vehicles, dates I moved house, purchase dates for various things.
The current ability to compute values is not quite the same as formulas in a spreadsheet (which hide "behind" cells), this is meant more as a visual programming language where the operators are part of your data.
Very interesting, but still a bit rough to be self-claimed "The ultimate replacement for spreadsheets, mind mappers, outliners, PIMs, text editors and small databases."
Honesty and pragmatism, can't go wrong with that. Thank you for such a lovely answer.
Hope the question came across constructively to you at least, it was meant to be. I think to some it read it as "why not cool trends". Should have clarified it was just curiosity about an engineering decision.
Sure it's a valid question, and today there are many good reasons why something is better off as a web-app.
I have some REALLY large TreeSheets documents (equivalent of 200 pages worth of text, but all in a ton of tree nodes), and it be fun to see if a web based version could handle it. I'm hoping someone will try :)
Certainly I would never want to write a cross-platform GUI app in C++ again.. wxWidgets has been a pain.
Downvote for wanting to know why? I assumed there are specific benefits rather than the the principle of it.
In case in matters the reason I ask is usage scenarios. Even if I take notes at my laptop 95% of the time, using a phone once in a while when an idea comes is helpful.
That has zero import on the underlying platform, really. There are plenty of native multi-user apps. Some of the earliest collaborative tools (like Collabra Share and NetMeeting) were native apps.
And you might be familiar with multiplayer games like Quake :)
https://news.ycombinator.com/item?id=11247372
https://news.ycombinator.com/item?id=13578662
https://news.ycombinator.com/item?id=3394418
But hey, I don't mind the attention :)