Friday, March 29, 2013

Cybernetics

Lately, I've been reading The Web of Life by Fritjof Capra. It's got me thinking about interconnectivity and cybernetics...

Metabolic enzyme pathways showing biological feedback loops

Cybernetics involves the study of systems with feedback loops. These looping systems can be simple or very complex, and they apply to a wide variety of topics including ecology, homeostasis, neural processing, cognition, self-organization, economics, and much more.

As a consequence, I've come to the conclusion that Thinker is currently flawed. The node data structure of Thinker is too fixed on strictly hierarchical structures. Thinker does not handle complex nonhierarchical looping networks of nodes as well as it could. Nonhierarchical links do exist in Thinker, but their implementation is limited, and their structure is awkward. Consequently, I am working on some major upgrades to Thinker with this new paradigm in mind.

Working out some link structures...
There's will be no strict attempt to avoid hierarchies, just expand beyond them. Nodes may still be arranged hierarchically by default for practical data storage reasons, but the ability to link to any other data node in the system will also be ingrained in the data format. It will be just as easy to create a flat interconnected associative web as a deep hierarchical tree.

The new data format will also have the added benefit of separating the label and value fields of nodes and hopefully clearing up some of the confusion, awkwardness, and ambiguity of two fields in each node. The new paradigm will have only one value field in a node. This will make it clear to the user where they should enter text instead of immediately presenting them with a choice.

When new nodes are added as children or when an associative link is created, the link connecting the nodes will automatically contain another node. This node will initially be visually inconspicuous and will most readily be used as a spline handle for adjusting the curve of the link (an added bonus feature which Thinker doesn't not currently have). Menu options on this link node will allow the user to edit the link and add a text label, thus replacing the old label field. Since associative links will also follow this structure as well, the user will be able to apply labels to them (something one can't currently do in Thinker either).



So there will be standard nodes with values connected by link nodes with labels that describe the relationships between the values. This will make informal data and mind mapping much more intuitive and straightforward while also easily allowing for more formal structure and definitions when you need it.



Sunday, March 17, 2013

The Vision

I have a dream. I dream of a world were all data is visual, interactive and easily editable.

Data should be visual. A good infographic is a beautiful piece of work, a true marriage of the atheistic and the practical. When data is visual, it comes to life, it means something; we can begin to comprehend it and draw conclusions from it.

Data should be interactive. Your lists should be sortable. Your notes should be searchable. Your dry erase board should allow for drag-and-drop reorganization and never run out of room. Your infographics should let you focus on different aspects and explore various details of the bigger picture.

Data should be easily editable. Infographics should not just be a rendering of some data, they should be the interface of the data, and that interface should be as simple and easy to grasp as the infographic itself. Data should not just be visual at an end point, but it should be visual form the very beginning, from the point of entry to the final presentation.

There are many tools out there for mind mapping, but none so far that I know live up to my atheistic or technical standards. There are many tools for creating data visualizations, but none that I know that serve as a visual interface to data. They often have complex API's and require an abundance of technical knowledge. These kinds of technical tools certainly have there place, but I want a tool to create and edit beautiful interactive visual data and ideas that is accessible to everyone.

That is the vision of Thinker.

Existing dataviz / infographic tools

Existing mind mapping tools

Monday, March 11, 2013

Hello World

Welcome to the Thinker Development Blog!


As you may have noticed (or more likely not noticed), Thinker development has been on hold for a bit as I have recently been relocating to Portland, Oregon. Why Portland? Well honestly, because I thought it sounded like a cool place to live. Little did I know that Portland is actually a big hub for web and user interface design, and one of the most entrepreneur friendly cities in America. So the prospects are very exciting.

I'm starting this blog for several reasons. Firstly, people need a good way to learn more about Thinker. The information on the beta has been very sparse and not very engaging thus far. The facebook page doesn't suffice, and some of the beta testers aren't even on facebook. I need to make more connections with more people and broaden the social marketing base. Thinker is still somewhat obscure to many of the testers, so hopefully this blog can help fix that. I'm also constantly thinking about new ideas for features and direction, so this will be the place to document all that.

Secondly, on the dev side, I need Google AdSense approval. In theory, Thinker could use AdSense to serve contextual ads based on whatever you're thinking about. This is a concept that I would really like to begin testing. Unfortunately, it's notoriously difficult to get AdSense approval for some web apps because they don't always serve traditional web content. I've modified Thinker so that it serves the content of a world directly without any scripts. Nevertheless, I've been repeatedly turned down for "insufficient content". Google offers some great resources for web app monetization. Thinker currently uses the great in-app payments system via Google Wallet to allow for tipping. Sadly, they seem to be lacking the same kind of contextual ad solutions that they use in their own web apps (e.g. Gmail). If anyone out there knows of any alternatives or solutions to this problem, please let me know.


Anyway, the workaround is that once you have AdSense approval for one site, you're able to put it on other sites or apps with very little hassle. The easiest kind of site to get approved on is a blog. So here we go...