Showing posts with label mental models. Show all posts
Showing posts with label mental models. Show all posts

Wednesday, March 19, 2014

The Interlock Project

Another mental-map kind of thing presented as a public database.

Monday, March 17, 2014

Obesity system influence map

I'm not sure what this really is - a kind of mind map of the interacting concepts and behavior patterns in the mind that influence obesity, more or less. I find it fascinating both from a technical standpoint and for the fact that it's an impressive map in and of itself.

Filed under mental models and diagramming...

Friday, September 28, 2012

Freemind

I've encountered Freemind before, but a very interesting programming strategy article popped up today: Freemind lets you extend your working memory by indexing knowledge in an accessible manner.

On the one hand, I do find this a very exciting concept. I had to do something on Unix just the other day and - as freaking always - it took me twenty times the amount of time it should have, because I have no memory of commands and parameter structures at all.  I never have.  So I certainly need something like this to back me up.

But on the other hand, I just can't believe that this somewhat simplistic structure is the thing to do that job.  Maybe it is - it would certainly be better than nothing, which is what I use now.  And I certainly have to admit that the look of the program is fantastic - much, much better than the last time it crossed my sights.

But it's Java.  Not.. that I have a personal and burning hatred for Java or anything, but it's a way conservative language and I'm a way liberal programmer, so it fits my style poorly.  I've never been able to get mental traction with it.  (Maybe now would be the time.)

And the other thing: it's too restricted.  It's a single hierarchical structure (or so it appears right now), with no multidimensional tagging or sorting, no alternative structures like maybe tables embedded, the text seems restricted in size...  If I had a more extensible structure I'd be more interested.

Something like it based on Decl or actually integrated into the language would probably be closer to what I want.  After all, Decl is supposed to be there to model mental maps.  A graphical interface seems like a logical tool.

Friday, February 3, 2012

Mental models of software

While hacking (just a very little) on the Fly stenography tutorial in Python, getting it to run on Windows, I was musing a little bit about just how I do that. How do I get from a general description of task ("Make this run on Windows.") to actually making the changes to the code needed to get things running?

Clearly, the initial thing is to build a mental model of the software, then - guided by that model - look at the specific parts of the code that might be problematic. But what does that mental model look like?

Embarrassingly, I haven't dedicated any time at all to researching the literature in mental models of programming, despite having written a blog called Semantic Programming for two years. A good place to start might be with this paper (CMU and Microsoft Research) and its citations.

A brief sketch of the mental model I've built of Fly might be something like this:
  • The "main" file sets up the UI, then starts the thread; the thread starts the Plover listener and then goes into a standard Pygame loop.
  • During each turn around the loop, Fly checks up on all the parts of the UI, checks and handles keyboard and mouse events, and redraws the UI appropriately.
... You know, writing it all down would be impossible. (Which is why nobody ever does.) It is literally easier to just poke around in the code for a day, which is essentially the problem with programming. How do you get from code to a simulated mental model? That's probably more important.