Hacker News new | past | comments | ask | show | jobs | submit login
TreeSheets: Open Source Free Form Data Organizer (strlen.com)
223 points by Tomte 11 months ago | hide | past | favorite | 55 comments



Prior discussion, including author comments.

2021 (91 comments), https://news.ycombinator.com/item?id=27614912

2017 (58 comments), https://news.ycombinator.com/item?id=15057392

2016 (28 comments), https://news.ycombinator.com/item?id=11247372


Author here, AMA. Thanks for the ~yearly submit :) Software has existed since 2008 or so but still going strong.


First, big respect for working on software for so many years!

My question is what data format is it using? I found some examples here [1], but looks like it's a custom binary format?

Is there a functionality to auto-export (e.g. on save) to plaintext (xml/json/whatever), so I could hook TreeSheets files to other apps? I appreciate it would be lossy, but even a tree/graph structure with text nodes would be good.

E.g. I'm a big fan of using plaintext search over all of my personal data/information, even in siloed apps [2]

[1] https://github.com/aardappel/treesheets/tree/master/TS/examp...

[2] https://beepb00p.xyz/pkm-search.html#personal_information


Yes, it is (compressed) binary: https://github.com/aardappel/treesheets/blob/master/TS/docs/...

TreeSheets tries to be highly efficient in space/time, which is challenging with text formats.

There's an option in the menus for auto html export on every save. It's what I use to browse my data from non-supported devices, e.g. mobile (thru e.g. DropBox).


Have you been exposed to Kaitai Struct[0] yet? As someone who wanted to use binary data from programs I’ve used it quite successfully and even more to the point: quite happily

[0] https://kaitai.io/


Nope, not seen this one, though there are many similar such specification languages. This one looks a bit overly verbose?

I suppose someone could write a description of https://github.com/aardappel/treesheets/blob/master/TS/docs/... in that specification language to give parsers in many languages. May not be as easy as it sounds with the embedded PNGs and compression etc.


If someone provides an example binary file I’ll give it a try



Right on, thank you. Would you mind exporting some of those examples and commit them alongside the `cts` files so that I can validate my own parsing?


Oh hey: your articles on journaling and using a search-first interface heavily inspired me a couple years back, and formed the basis of my own system, with which I’m very happy. So, thank you very much!


I would just like to say thank you for this beautiful bit of software. I install it on all my computer's and have a portable copy for when I can't.

I don't know why but it seems to work very well with my dyslexic brain in a way other forms of note taking on a computer don't.

If I was a better programmer I'd definitely be contributing!


Thanks!


I don’t see any examples of data “deduplication” (a poor term used here to mean referring to the same data from multiple hierarchies, such as having a reference to the resume inside the row of people)

Does TreeSheets do that natively?


No, it does not have a way to render DAGs, it is purely a tree.

It does have a way to follow "links" (cells with the same text).


I’ve found TreeSheets to be the best tool for popping up on screen to help a team talk through something.

There is something about quickly making tables of tables and inserting new rows/columns that just fits with how people think and see things visually. And there’s something natural to the editing.

Need a list? Make a cell with a single column table in it. Then need to prioritise? Add another column with an order. And so on. It feels a lot like throwing up things on a whiteboard.


Is it limited to mono-hierarchies or is there a way link pieces of informations to multiple parents? Maybe for something like tagging? It's particularly useful for organizing tags in a thesaurus.


It does not allow direct sharing of sub-trees, as in a single tree displayed and updated in 2 locations. It does have an easy facility to jump between cells with the same text, which is a form of linking. It also has tags which can be used with this.


Shameless plug, I made https://www.knotend.com which is a keyboard-first directed graph editor. Supports trees and directed graphs (multiple parents).


I love this program, along with Zim-Wiki it's one of the first things I install on a fresh desktop. It has its limits but brilliant note taking app!


First I've heard of this - but it appears to mimic how a lot of people (myself included) tend to take notes in a paper notebook. I might give it a shot.


How does zim-wiki compare to using Apple Notes?


I have no idea, I've never used apple notes. But if you're after a wiki style knowledge management system that is offline first, with a text base with a simple markup, and based around the filesystem hierarchy which means it makes sense without the software then Zim-Wiki is for you.


There is definitely a lot of benefits to this free form format. This was the promise of MS OneNote, which i adored back in uni. I only forced myself to move off, when i moved to Linux and well came to know the importance of open formats! Since then there's nothing else that has comes close. This looks interesting, but lacks the drawing capabilities it seems?

Currently i mostly stick to Org-mode for everything with deft for fuzzy searching... text never goes out of fashion. Had to sacrificed everything else non-text along the way though. Although lately been looking at diagrams as code again with mermaid and D2lang


It's not free-form, but very rigidly hierarchical (with three different presentation modes), which is the best in it, IMO.


It's "free form" in the sense that every bit of structure doesn't "mean" anything, you can use it to create any kind organization you want. This as opposed to other organizers which have "documents", "folders", "tags", "bullet points", "sections" and all sorts of levels of hierarchy that come with an expected usage.


Interesting. This feels very like something I've been considering for managing my thoughts and notes, while presented a little differently the core idea has a lot of overlap.

The version in my head (and occasionally in scribbled notes & diagrams) keeps getting massively overcomplicated though, then paired down to the point where it would be too basic, rinse+repeat. Perhaps this has found a useful compromise point, I'll have to give it a try (if it isn't close enough to ideal for what I want, it might help me constrain or at least prioritise my requirements).


Interesting variant to the common outliner format used by Logseq, Athens Research, Roam Research, Dynalist, WorkFlowy, Tana, etc. I'm happy with Logseq for now but love to see new alternatives.



I'm not sure you can call it a new alternative. From my own usage I'd estimate that Treesheets is at least 9 years old. I used to use it for software project internal documentation, but have switched to Org-mode now. It's quite a impressive application.


I like logseq because it's one of the few editors to support org-mode (besides emacs).


C++ and wxWidgets under a ZLIB licence; nice!

https://github.com/aardappel/treesheets


You denied me my first AMA question.


Why does the Mac version throw up a dialog box asking if I want to accept incoming network connections?

I used the Mac installer linked on the project Github: https://github.com/aardappel/treesheets/releases


I believe that is due to how https://docs.wxwidgets.org/3.0/classwx_single_instance_check... is implemented on osx.

It checks if there is already a copy of TS running, and if so, passes the new file to be opened in the existing instance, which is useful with command-line usage.

On other platforms that uses lock files I believe, I guess here it uses local ports, and osx seems to think permission is needed for that.


thanks for the explanation. I have been using it to sketch out some ideas that I would otherwise have used a mindmapping tool for. this is definitely nicer in some ways.


I've used this intermittently at work for great success in mapping out problems, etc.


Wow, just the first image on the site is very intriguing!

It looks a lot like my ideal Emacs+org+roam instance. Very interesting, I adore discovering cool software like this!


Some of the funniest lorum ipsum I've seen in awhile.


On my Mac, everytime the application is started I get a dialog “Treesheets Warning” …

“Cannot set locale to language “English (Cyprus)”.


This looks like a GUI variant of what Emacs Org mode offers. Am I missing something about it?


Not sure, but a lot of people don't want to pay the learning cost to enter the emacs universe.


Are there docs online? I was wondering about the data format and some other things.


It’s a simple binary format. I’ve written a parser for it in python.

https://gist.github.com/quag/e219f69670cd395d4a59a392557df28...

An older version (v16) of the format is documented, but that was before zlib compression was added. I’ve opened an issue and listed out the gaps in the spec, but haven’t gotten around to updating the spec itself.

https://github.com/aardappel/treesheets/issues/185

Happy to answer questions about the format.


Thanks, that's helpful to know.

Regarding the format I was wondering mostly how it might be possible to parse and add/remove data as part of an automated workflow. Most of my notetaking tools have ended up as part of a broader scheme like this.

Related, if I'm viewing/editing a file and an external process updates the file, is there any kind of alert or notice for the user, or could you describe what happens?


You could certainly parse the file, and then insert/remove cells or their values.

I don’t know if the app monitors the files for changes and then reloads on change or not. If not, I imagine you could modify the app to do so.


There's a version of the tutorial[1] online, but the 2-dimensional, nested document setup doesn't really map that well to other formats. It does support various exports, from a quasi-WYSIWYG equivalent using HTML tables to more abstract ones (XML, outlines etc.).

The native format (.cts) seems to be binary, with a simple spec online[2].

[1]: https://strlen.com/treesheets/docs/tutorial.html

[2]: https://github.com/aardappel/treesheets/blob/master/TS/docs/...


I've been using https://obsidian.md/canvas . Canvas graphs are described by an open spec but Obsidian isn't open source. Would be cool if TreeSheets can show Canvas graphs.


I’m a freeplane user. Would love to hear about advantages of TreeSheets.


I installed the latest TreeSheets release on mac and it asked for permission for incoming connections. Doesn’t look good


Just deny it, that's what the asking is for


How is this same or different than Microsoft OneNote?


> TreeSheets is exceptionally small & fast, so can sit in your system tray at all times: with several documents loaded representing the equivalent of almost 100 pages of text, it uses only 5MB of memory on Windows 7 (!)


Radically. TreeSheets is much more focused on being tree-structured, with all forms of subdivision being part of the same "hierarchical spreadsheet cell" paradigm.


i've gotten used to freemind (mind mapping software)


Me too. And one of my dreams is to see it ported to the web browser so I could use it self-hosted on my home network.




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

Search: