Tinderbox Meetup - Saturday, May 13, 2023

Looking forward to the meetup.

Time: Saturday, May 13, 2023, 12:00 noon Eastern Time (US and Canada)

9 AM Pacific Time
Noon Eastern time
1300 São Paulo
1600 UTC
1700 London
1800 Paris
2130 Dehli

Zoom link for the meetup: https://us02web.zoom.us/j/8850659900?pwd=ZE9ROUs1czNiK2FTTStjTUJuVkIydz09

Agenda

We don’t have a planned agenda for this session. If someone else does not recommend a session, I will host the “managing of your social media posts in Tinderbox lesson: write posts, auto-creating hashtag and mentions cloud.”

Back in March 2022 there was a brief discussion about Using Tinderbox and The Brain, and I was hoping we might have a session similar to the two well attended “featured speaker” sessions on TheBrain and its potential as a part of a more general workflow with TBX. My own WF includes Bookends-Devonthink-TheBrain-(Hooking)-and hopefully TBX to bring things together if I can ever get comfortable with it. Each new version of TheBrain has included modifications that enhance is usefulness (now v 13), and I think a session with TheBrain’s Harlan Hugh could prove very interesting. (An extreme example of TheBrain is “Jerry’s Brain” which is 25 years in the making and can be viewed at https://bra.in/jerry)

I’ll reach out to Harlan and ask him.

1 Like

Jerry in @mdubnick is Jerry Michalski if I’m not mistaken, who @satikusala probably knows! He might be a really fine speaker, too.

1 Like

I actually don’t know him. Can you give me a URL for him and I’ll chase him down.

1 Like

Another possible topic for the meetup just popped up with Google’s announcement of Project Tailwind — here is link to Steven Johnson’s blogpost on it: Project Tailwind - by Steven Johnson - Adjacent Possible

1 Like

Chat log:
meeting_saved_chat.txt.zip (5.5 KB)

The circular layout I posted uses this code (it’s for a map and used on all items in the map):

var:number vItems = $ChildCount(parent);
var:number vOffset = ceil(vItems*0.75)-$SiblingOrder;
var:number vSpread = 40;
var:number vTheta;
vTheta = (vOffset*3.1415927)/(vItems/2);
$Xpos = vSpread*cos(vTheta);
$Ypos = vSpread*sin(vTheta);

No user attributes needed. Altering vSpread alters how close/loose the items are around the circle. My example had 58 notes and my hunch is that a good default vSpread is c. 70% of the value of vItems. You could try:

var:number vSpread = vItems*0.7;

That way vSpread will alter if the number of items alters.

2 Likes

I’ll post a more described version of this in due course but no time to write fully scripted demo right now.

Other trick on display. I made only a few link typed visible see the Links tab of the Inspector. For the remaining visible link types (here, two) I gave each a different colour, hid the link type label and set them the use straight lines not curves (again see the Links Inspector). All though link settings can be changed so when done they can as easily be reset to default style/colour.

For a few setting changes, we can now easily see which items are getting more interconnections, i.e. emergent structure. In this project, at early stage, those notes might be ones to polish up earlier than others.

3 Likes

Here are the notes, example file, and video.

Tinderbox Meetup - Saturday May 13, 2023 Video: Using TBX as a CRM, Email and Social Media Posts from TBX

@mdubnick - have you considered the possibility of exporting your TheBrain corpus as a Markdown or other file, and importing the works into a Tinderbox project file? You might then use Explode to break it down again into atomic Notes in Tinderbox.

Markdown adapts well to Explode command in Tbx. Not sure how internal links would fare through the breach. That may be a challenge or an opportunity for a fresh outlook, depending.

There is some info on exporting TheBrain data files here:
Exporting a Brain to a Markdown document - TheBrain Forums.

If nothing else, may be a useful exercise in seeing your brain in a different setting, so to speak. Am also reminded of @mwra’s recent comment about Tinderbox’s dexterity in assisting primary quantitative analysis on big data; any database with 10’s of thousands of Notes seems fair game for Tbx :slight_smile:

2 Likes

Thanks!
Giving it a try with test brain – will report back…

2 Likes

I assume this mean intra-brain links. The Markdown [ ]( ) link mark-up is an easy pattern to detect so if Brian-notes exported with the name of the Brain note (i.e. $Name equivalent) as either both part(s) of the Markdown link it ought to be possible to recreate the links.

That said, IIRC action code linking tools make Tinderbox basic (note-to-note) links. Making text (in-$Text-anchor-to-note) links automatically might be harder.

1 Like

@archurhh That works!

Exactly… My objective is not to replace TheBrain and its mind map plex, but to use TBX as part of my workflow; in short, getting me from Bookends references and DevonThink through the plex (where I can work “visually” on the relationships via links) to TBX where I can creatively apply the actions, etc. I’m learning (via atbxref, tutorials and meetups) to specific projects. It is quite a different learning experience when I can deal with my idiosyncratic “notes”. I needed a way to view all those items in the TBX setting and the fact that the plex links are absent is actually helpful.

Thanks again.

1 Like

BTW. Jerry Michalski has agreed to join our June 10 meetup.

Michael

2 Likes

In the meeting showed through a scenario where I had a research file where notes had data in $URL, some user URL-type attributes plus weblinks in $Text. In some cases, due to drag-drop into $Text of notes, the same URL may be both in $URL and a weblink. This code addresses that issue to avoid an over-count:

$URLCount = $WebLinkCount;
if($URL){
   $URLCount+=1;
   eachLink(aLink){
      if(aLink["url"]==$URL){
         $URLCount -=1;
      }
   }
};
if($SpecURL){$URLCount+=1;};
if($SourceURL){$URLCount+=1;};
if($XSDSpecURL){$URLCount+=1;};
if($JSONSpecURL){$URLCount+=1;};

$WebLinkCount holds the number of out-of-Tinderbox links, whereas $OutboundLinks is the total of Tinderbox basic/text links that start in the current note. So our count starts with $WebLinkCount . Then we check if we have a value in $URL. If we do, we cycle though the note’s link looking for any any links (those with a link url value) that match $URL. For any matches (there could be more than one), we decrement the text weblink count before adding a 1 count back for the $URL. The other lines of code refer to some user URLs where I know there is no chance of duplication.

Of course the latter might, in another scenario, have possible duplication with $URL or weblinks as well, but the about example has the building blocks of which a more complex de-dupe might work.

So, the above is simple but an immediate upside, my list of URLs to review/validate shrank from 1,400, to 1,100 so a c.20% ‘saving’, though the next task is annotating the duplicate items. Anyway, I hope the general pattern may help others.

I used the above in an agent action but it works as a rule/edict/stamp if such is your need. Note too that the per-link dictionaries (e.g. such as aLink["url"] above) are read-only (see more on eachLink())—at least in v9.5.2 as at time of writing.

HTH others.

Further to the last, as any URL might be a duplicate, this is a more thorough test:

var:set vLinkSet;
eachLink(aLink){
   if(aLink["url"]){
      vLinkSet += aLink["url"];
   }
};
vLinkSet+=$URL;
vLinkSet+=$SpecURL;
vLinkSet+=$SourceURL;
vLinkSet+=$XSDSpecURL;
vLinkSet+=$JSONSpecURL;
$URLCount = vLinkSet.count;

It doesn’t tell you which occurrences ate duplicates 9or discrete sets of duplicates) but it does give an accurate count of discrete URL for a given note.

Got a sort of similar situation where you want to iterate through a list of attributes (i.e. Displayed Attributes)? Then see the recent post on Constructing $-references from loop variables - #4 by mwra, whereby you could turn all those per-attribute tests at the end above into a loop through a list of attribute names. I mention this as an example of seeing how you can leverage yourself from code with lots of hard-wired values (e.g, references to specific attributes) into a list of attributes that might be derived from (and changed by) other action code.

Sorry, late to the game. What is a SpecURL? SoruceURL? XSDSpecURL? JSONSpecURL?