Speed Reader

This is almost too embarrassing to post. Working with MindReader this afternoon while doing my GTD weekly review, I noticed the script was running a bit sluggishly while processing items. I decided to go into the SAX basic code and see if I could speed it up a bit. I made several changes, including leaving mindreader.mmap open between uses, that improved things here and there, but there was a huge improvement achieved by only reading the notes in mindreader.mmap of topics with keywords that matched the string being processed. MindReader is now 10X faster.

Running it on the set of topics shown in this demo video clip used to take about 90 seconds – Now it takes about 9 seconds. If you are already using MindReader, you can get the boost by just downloading new copies of MindReaderOpen.mmbas and MindReaderNLP.mmbas and putting them in your “My Maps” directory.


  1. Tom Hodgers said,

    June 19, 2007 @ 8:05 am

    “GyroQ goes haywire with new MindReaderOpen.mmbas and MinReaderNLP.mmbas”
    When I changed .mmbas, GyroQ acted differently. In my case everything went slower and instead of opening only my default destination map (GyroQ daily capture in my case) it opens two maps: First entry goes to the In-tray in the MindReader Configuration File map and the Second entry goes to GyroQ daily capture map. (GyroQ daily capture map does not show dates of capture).

    Another thing I noticed (not necessarily connected to this problem) is that I can’t change the destination map from the GyroQ options box. I tried changing from GyroQ daily capture to mrsample.mmap as a test, but the map does not change.

    If you send me e-mail address I will send screen-shots.



  2. ActivityOwner said,

    June 19, 2007 @ 8:44 am

    Hi Tom — Sorry about that. I’ll need to do some testing to track down what is going on tonight. I have seen some situations where it throws the content into the configuration map by mistake.

    One of the changes in this release is that instead of opening and closing the mindreader.mmap file as a hidden map. It opens it visible and leaves it open. Perhaps going back to hidden will help.

    The “destination map” is the map linked to the 1st “defaultmap” entry in the mindreader.mmap configuration file. It isn’t related to the destination set in GyroQ.

    You can send mail to info at activityowner dot com.

  3. James said,

    June 19, 2007 @ 1:41 pm

    Wow! What a difference!

    I didn’t experience any of the problems Tom listed above – nothing ended up in the config file map. GyroQ worked as expected for me – but was a MILLION times faster. The only thing is that the MindReader configuration file is left open – was that always the case? I seem to remember it closed by itself

  4. ActivityOwner said,

    June 19, 2007 @ 10:27 pm

    Thanks Jim — I’ve run it on a couple of systems and it seems fine. I think Tom has an isolated issue that may be his system is running a little slow and MindReader is getting ahead of itself. I’ve sent him a macro with a delay to test that theory.

    In this release I set mindreader up to stay open rather than opening and closing it hidden twice for each topic. This provides some of the speed boost but I should probably check if it is worth the distraction of having it visible and left open.

    I could have it be hidden, but I worried that would cause problem for folks that are actually using it (particularly at the configuration stage). Perhaps the code can check to see if it is already open and visible and choose route base on that someday.

  5. ActivityOwner said,

    June 20, 2007 @ 6:23 am

    Hi Jim — I uploaded new versions of the macros that keep the configuration map hidden unless it is already visible. This keeps the speed and avoids the distraction of the extra open map.

  6. BillS said,

    June 20, 2007 @ 11:16 am

    Thanks for the update. I’m probably being picky (or perhaps not doing my tasks in true GTD fashion) but I was annoyed by the little triangle icon (mmStockIconMarker7) that appears on tasks that aren’t project, result, or someday. So, I made this change to the MindReaderNLP.mmbas code.
    [code removed]

  7. ActivityOwner said,

    June 20, 2007 @ 5:49 pm

    Hi Bill — Sorry for the delay in your comment posting. The blog software puts first time posters into moderation to avoid spam and ironically didn’t recognize your no-spam email address.

    The “stock” icon was added early on based on a suggestion by Hans to have it represent a “amorphous blob of potential undoability”. A item with no recognized “action verb” or context that might need more GTD “processing” to translate into something that is actionable.

    I added some code to make its use optional and set the default so its not used. I think that may be a cleaner approach than looking for lack of icons. I do appreciate your code suggestion though.

    I uploaded new version to the wiki “development” page.


    Let me know if that works for you.

  8. Mal Evans said,

    June 21, 2007 @ 12:48 am

    Thanks again – works perfectly.

    Here’s a challenge for you.

    When I updated to the released 1.9.3 I lost my tags.

    Any chance to write a tag that takes them out of the ini file and generates a map as a form of back up? I would like to end up with my own custom tag library map so that if I need to reinstall I can set it up the same way each time.

    I am sure this would be easy for a genius such as yourself!


  9. BillS said,

    June 21, 2007 @ 8:42 am


    Your code is cleaner than mine :). I agree that ‘an amorphous blob of potential undoability’ should be represented & now I understand why that was added. Unfortunately, unless an AI engine is built into MindReader I think it will have a difficult time distinguishing well-formed tasks from the amorphous blob. I think I’ll keep my approach but add the triangle back in. That way if I’m absent-minded enough to forget to use my common verbs in the config map then I’ll know it may potentially be an amorphous blob.


  10. ActivityOwner said,

    June 21, 2007 @ 9:14 am

    Thanks Bill — In a sense, the program is trying to act like an AI engine (hence “MindReader”). If you look at the items in your list that are “blobs”, you can usually either:

    1 — Substitute the right leading verb into the task
    2 — Add its leading verb to mindreader.mmap using mra
    3 — Realize that it is not really a next action

    Having used it for awhile, it would be interesting to look back and see how many accumulated tasks don’t fall into one of these categories and why. Reviewing my lists quickly I see several verbs that would be difficult to pre-assign a context to (“check”, “take”, “empty”).

    The trick is to use the new “explicit context” feature and just toss it into the task as @home, @web, etc. You can have it “disappear” from the task by putting it (and other markup) in brackets (e.g. “Check oil [@home today!]).

  11. BillS said,

    June 21, 2007 @ 11:45 am


    That’s why I took out the triangle icon :). So I made the following concessions (prior to the explicit context feature you recently posted)
    1. Use the disappearing act (e.g. “Check oil [@home today!]).
    2. Relied on associating appropriate icon to task
    3. Rarely create project/result (unless I was busy & needed a placeholder) through GyroQ
    a. Since project/result with its multiple tasks typically involves more thought, the addition/deletion of project/result has become a part of my weekly review
    4. If I’m taking the effort to add it to my GyroQ queue, I take the extra 2-5 seconds to properly mark it up for MindReader

    With the “explicit context” feature, perhaps a better approach would be to look for a context. If a context isn’t found, then add the amorphous blob icon. I think finding a green slime ball might be more representative too .. heh.

  12. ActivityOwner said,

    June 21, 2007 @ 9:19 pm

    Hi Mal — re: GyroQ.ini backup macro

    Who needs the New York Times crosswords when I have someone like you to toss me puzzles :-)

    As it turns out, this wasn’t as difficult as I anticipated. I didn’t realize this until just recently that the GyroQ.ini file is actually a very straightforward text file that you could copy/paste from directly for backups. This also makes it relatively straightforward to import into GyroQ.

    This actually will be very handy for me as I’m constantly voting off old tags and need to back them up. I can also see it being modified to act as a utility to look for tag duplications – -people with an old version that is superceding a newly installed version.


    The one place the new macro probably isn’t complete or entirely correct is in all the hex code conversions.

RSS feed for comments on this post · TrackBack URI

Leave a Comment

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.