Hacker News new | past | comments | ask | show | jobs | submit login
TreeSheets: Free Form Data Organizer (strlen.com)
188 points by andrius4669 on Aug 20, 2017 | hide | past | favorite | 58 comments



Author here, AMA. Just discovered this is on hn again, it has been on here at least once before:

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 :)


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.

1. https://github.com/alpha123/treesheets


Thanks!

The main code base also gained localization support since your fork :)


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.


When I need a tool to organize things with a graph I usually just use yEd. You can do a surprising number of things with it:

- Graph layout algorithms

- Graph scoring (centrality etc.)

- Variety of node types

- You can add custom node types (to a point), even use pictures of things

- Cross-platform (not open source sadly)

- Swim-lanes, grids, grouping structures

- Graphs are saved as .graphml xml

and so on. It's not perfect, I wish I could also just drop in multi-media type files and turn them into node representations.

https://www.yworks.com/products/yed?


> I sometimes want to organize things as a DAG and that's where indenting text starts to fail.

Leo can do this.

http://leoeditor.com/

You can 'clone' nodes into different parts of the tree.


Have you seen Kumu?

It's a general purpose property-graph editor, backed by a CSS-like language that allows you to transform and style your graphs.

- https://kumu.io

- https://docs.kumu.io/guides/views-advanced.html

(disclosure: cofounder / lead dev)


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.

Product page: http://codesolvent.com/config-mgr/


I just built this: akud.github.io/graphs

Was going to do some polishing before I did a Show HN.

Feel free to reach out to the email in my profile if you want to talk about it.


Would Graphviz [0] work for your purposes? Check out the gallery [1] for some examples.

[0]: http://www.graphviz.org

[1]: http://www.graphviz.org/Gallery.php


Does graphviz support interacting with the graphs?


Doesn't have an editor GUI, but a simple general graph editor and visualizer: https://github.com/fiatjaf/rel

(I wanted a nice GUI, but failed to make it)


Isn't something like a DAG doable by indenting in a text editor? Why not?


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?


Graphviz's "dot" language supports this.


I think the confusion is that it sounded like the idea was without repetition.


Have you looked at the editor built right into OrientDB? http://orientdb.com/docs/2.0/orientdb-studio.wiki/Graph-Edit...


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.


A lot of UI issues on the Mac are indeed being held back by wxWidgets.

The file format is documented and open source, but it is binary for speed and compactness (especially since it may contain images).


Oh this piques my curiosity, big time!

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.


I'm a big fan of TreeSheets and very happy that Wouter decided to open source it. It gives some hope for an Android port ...


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...


> Have you considered open sourcing your work?

It's barely good enough to do our own work with and highly specific to the application so no, it will not be open sourced.


If that would support synchronsation, i'd look like the ulitmate personal wiki. Unfortunatly, syncronisation is hard.


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).


In case you are still reading: Mostly merging. If the file was edited offline at two points, merge these versions.


What happens in case of conflicts? I'm always interested to learn how applications deal with that


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.

Will check it out.


> The ultimate replacement for spreadsheets

That's a lofty claim, might want to make it more specific to thought mapping.

Other than that looks cool, will try it out when I'm home. What's the GUI framework, out of curiousity?


Sorry, the marketing side of me got too excited. Yes it's wxWidgets.


Peeking at the source suggests wxWidgets.


Does it support formulas?


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.

Example: http://strlen.com/treesheets/docs/images/screenshots/screens...

But yes, I must admit, that part is very unfinished.


There's a preliminary support for formulas with only 5 functions or so, so it's not a fully functional spreadsheet yet.


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."

Looks interesting, wish luck


Can this export to org-mode format?


Looks promising. Why is it better off not using HTML/Js?


I started making this in.. 2007? Back then productivity apps on the web was in its infancy, and it certainly didn't appear as an option to me.

And yes, I'm also guilty of using the tools I'm familiar with, as a predominantly C++ developer, I enjoy efficient things.


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.


Because there are still plenty of people (myself included) who prefer native apps. Thankfully :)


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.


Hard to make those multi-user.


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 :)


Yes, but then it will need a server side component and an actual server (unless you set it up as some kind of peer to peer thing).


The Ubuntu download link ends in 404 page.


If you are running a recent version of Ubuntu it's available from the standard repositories.


Report this to the author; not on HN.


If the visualization side isn't as important to you, Airtable is a great tool for managing structured relational data.

https://airtable.com/




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

Search: