• Posts 17
  • Member Since
  • Last Active Never
All Posts Topics Started
Presentations using PB
Thanks Mandox,

Today I had a look into that, it is really not that simple

I mean: it is simple to do manually (and thanks, I wasn't even aware of that) but Microsoft didn't expose that possibility in the underlying macro language

After some googling I found this page with the code to (if I understand well) copy the formatting elements from one slide deck to another, essentially one bit at a time


The macro I wrote is not copying/pasting slide but "Inserting them from file" (easier to do in code), so including a derivation of the above code would be a "major" rewrite

I'll think about it (still: my priority #1 would be Automatic Agenda slides from thought/link names)

Timeline Discussion
quick (obvious?) notes:

if a thought is explicitly linked to a date it should also (automatically) be linked to the corresponding week, month, quarter, year. Only the link the finest level expanded at a given time should be shown on the plex

if a thought is explicitly linked to a week it should also (automatically) be linked to the corresponding month, quarter, year. Only the link the finest level expanded at a given time should be shown on the plex

and so on...

I know that matching weeks to months can be ambiguous, there are solutions to this

there should be special expand/collapse/filter timeline operations (eg drill down to months, collapse to quarters...)

Fastest way to Expand All?
Sandy you could try this:

-go in expanded view
-go to the Reports window, set every parameter to "all" if needed, click refresh (circling arrows)
-select the first thought in the report window
-keep the cursor down key pressed until you get to the end

I think all your thoughts should be there by then

I have to agree with HH, PB being designed for managing huge # of thoughts it makes little sense to expand them all at the same time even in presentation mode

What would be really needed is a way to FILTER the thoughts/links one wants to see (the current filter feature is... embarrasing... no offense...)

hope this helps

(edited for typo)
Importing Outlook mails as files in PB 5

being a great believer of "PB as the center of the world" (TM) I would have liked to be able to import entire and untouched mail msgs in my brain

see http://thebrain.uservoice.com/pages/general/suggestions/73208

While I wait for this to become a standard feature I tried to develop a macro to get the same result

Disclaimer: I take no responsibility for whatever result you could get from using the code and information below including loss of personal and/or business data, unusable systems, breach of licence agreements or other bad events. All this information is provided "as is" with no guarantees on future improvements or even on present behavior of the given and derived code. All the content of this message/thread is to be intended as experimental. Constructive feedback on the other hand is greatly appreciated. In any case DO NOT try to use this information if you're not an experienced programmer.

OK, I had to state this upfront given the (awful but hopefully somehow effective) approach that I followed, I like sleeping well at night.

The basic idea is to simulate the clicks and keyboard typing necessary to actually import an outlook msg into PB, this can make wonders but also cause an horrendous mess if st goes wrong.

Essentially I save the message to a temporary directory and then import the folder in PB under the current thought

-PB 5.x (some menu items can be opened by typing a letter in this version)
-AutoIt 3 (http://www.autoitscript.com/autoit3/index.shtml) free scripting/automation tool for Windows (guess similar tools exist for Mac/Unix)
-a temporary dir on you hard drive for staging your .msg files (in this case C:\PBMAILS)

Code below is pretty self explanatory I think.

-notice the numerous sleep() commands, these are intended to avoid typing/clicking before either Outlook or PB are not ready to accept the intended input. The parameters in the code won't probably work on any system but mine, maybe not even on mine under different load conditions (eg more open programs)
-doesn't work for PB in auto hide (my favourite)
-maybe doesn't work with special characters in the msg subject (I didn't test too extensively)

-Should be able to get a cleaner inbox, keep original, untouched messages in a single copy in PB
-Theoretically one could try and generate some additional links/tags immediately after importing the message (eg to a thought representing the sender)
-Autoit can generate an executable from the macro code, this can then be tied to a thought, pinned, invoked directly from PB
-Hopefully shows how important this feature could be, motivates TB R&D to include it natively in the future
-Same as above for automation and PB in general (essential if Tb wants to generate an ecosystem of 3rd party apps)
-Approach is not the best for high volumes, avoiding cannibalization of EKP business

-the original mail won't be automatically deleted from Outlook or from the staging dir

EDIT: code modified to
-diminish the number of sleep commands (waiting for correct window to open instead)
-import both mail messages and appointments/meetings
-code tries to create thought named with msg date + subject or start date + subject
-original mails/meetings/appointments still not deleted from Outlook

; AutoIT Macro (trying to) import an entire mail message as an .msg file attached
; to a PB Brain thought instead of just copying the msg body in the thought notes

Opt("WinTitleMatchMode", 2) ; this is to match windows without specifiyng the beginning of the window title (ie the brain name)
opt("SendKeyDelay", 1)

$startdate = ""
if WinActivate ("Microsoft Outlook") Then ; move Outlook inbox in the foreground if not already so
if WinActive("Calendar") Then
send("{ENTER}") ; open selected item
        ;WinWaitActive("[REGEXPTITLE: Appointment | Meeting]")
        WinWaitActive("[REGEXPTITLE: Appointment | Meeting]")
        send("^c") ; copy appointment start date
        $startdate = stringright(Clipget(), stringlen(Clipget()) - 4) & " "
                WinWaitActive("[REGEXPTITLE: Appointment | Meeting]")
        $startdate = inputbox("Specify Date", "Date", $startdate)
        if @Error = 1 Then
        ;msgbox(0, "Startdate", $startdate)
        $act = WinGetTitle("[active]")
        ;msgbox(0, "active title", $act)
        if StringInStr ($act, "Appointment") <> 0 then
                ElseIf StringInStr ($act, "Meeting") <> 0 then
ElseIf WinActive("Microsoft Outlook") Then
        send("{ENTER}") ; open selected item
        send("{SHIFTDOWN}{TAB 4}{END}{SHIFTUP}")
        send("{CTRLDOWN}c{CTRLUP}{ESC}") ; copy message send date
        $startdate = stringleft(stringright(Clipget(), stringlen(Clipget()) - 4), 10) & " "
        ;msgbox(0, "Startdate", $startdate)

send("!fa") ; save as (for currently selected message)
send("{TAB}{DOWN}{HOME}o{DOWN}{ENTER}+{TAB}") ; choose Outlook 'msg' format
send("^c") ; CTRL-C to copy message file name (<msg subject>.msg)
; msgbox(0, "Filename", Clipget()) visually check that everything is OK

$myfile = StringStripWS(stringleft(Clipget(), stringlen(Clipget()) - 4), 3) ; take subject
$myfile = StringReplace($myfile, "^", " ") ; clean special char
;$startdate = inputbox("Specify Date", "Date", $startdate)
if @Error = 1 Then
$myfile = inputbox("Specify Item name", "Item name", $myfile)
if @Error = 1 Then
$mydir = "c:\PBMAILS\" & $startdate & $myfile ; temporary dir for msg file
;msgbox(0, "Filename", $mydir) visually check that everything is OK
DirRemove($mydir, 1) ; prune entire subdir in case same subject msg was saved before
if DirCreate($mydir) then ; recreate empty temp dir
;msgbox(0, "Filename", $mydir & "\" & $myfile) visually check that everything is OK
WinWaitActive("Save As")
send($mydir & "\" & $myfile, 1) ; specify location to "Save as" window
        WinWaitActive("Save As")
WinWaitActive("Microsoft Outlook")

if WinActivate ("PersonalBrain") Then

$size = WinGetPos("PersonalBrain") ; where's the window? NOTE that this WILL NOT work in auto-hide mode
MouseMove($size[0] + 200, $size[1] +200,5) ; Awful but seems necessary: move and click somewhere in the plex
MouseClick ("")
        send("{ALTDOWN}") ; (ALT) File - Import - Folder
WinWaitActive("Select Folder to Import")
send($mydir,1) ; Type folder name to import from before        
send("{ENTER}") ; Trying to press all the OKs here (somehow it doesn't seem to work properly)
WinWaitActive("Confirm Directory Import")

EndIf Beta - Spotlight Integration & Tag Thoughts
Buggy if you start typing a year then change your mind and click on today to get back to present time
Presentations using PB
You're welcome.

Fixed an issue with special characters that are not so special... had a problem this morning with ppt names containing Hiphens (')

new version out (hopefully gets right ALL special chars...)

As for the different masters... the macro is essentially inserting from file all the subppts, so I guess the different masters should be there somewhere...
Is it possible to keep more than one master in a presentation and show the slides accordingly?
If you give me an idea of how you do that manually I'll see what I can do to automate.
Here when I manually copypaste slides from different files they always get the style of the destination file...

Keep the feedback/ideas flowing
Presentations using PB
No need to fall or knee in any way

I tried to generalize the management of those characters


more feedback welcome,
Presentations using PB
Hi pbrainers,

new version out:
-Fixed: ampersands in filenames/paths properly treated now (not entirely sure if it was PB or PPT's fault)
-Fixed: it is now possible to join ppt files linked instead of just those moved into pb (the two can be mixed freely)


feedback appreciated,
Presentations using PB
Mandox: definitely the ampersand in the path/filename
will fix it ASAP, not a big thing

thank u for the corrective feedback,
Presentations using PB
yes, I strongly favor keeping all the files in my brains for portability and easier backups.
I'll try to enhance the macro for external files if there's a demand for that.
Also tinking of using link types to order slides in the brain and a way of autogenerating slidedecks agendas.
Don't think it will work well for slide groups with different masters though.
Feedback/ideas welcome...
Presentations using PB
I tried coding a PPT macro to automate the process
a bit rough but it seems to work, sharing it for further testing/feedback

the code is open so you can check and/or improve it

-select relevant thoughts (with ppts attachment), eg by crawl-select and copy selection
-open this ppt ( http://wikisend.com/download/511398/joinppt_anon.ppt ) - macros must be enabled
-launch the only macro in it (tools-macro-Macros-mergeppts)
-a dialog appears with buttons that allows you to paste thoughts, reorder them, create a (read only) joined ppt
-save, print, email at will

EDIT: corrected a bug, updated link Beta - Requested Features and Fixes
loading an expanded view shows the Add Attachment dialog???
am I the only one seeing this?
edit: this happens only if "click active thought to open/create" is checked Beta - Requested Features and Fixes
there may be a bug (introduced by the new shiftlinking option?)
in Expanded view I get unexpected results when playing with links (eg link to additional parent, make child parent of its parent) it loses links or creates wrong ones
try playing with it, I'll provide a detailed example if you can't reproduce
Presentations using PB
Thanks Mandox,
I tried st more automated by

1.select presentation parent thought
2.crawl/select all children
3.copy (as xml)
4.process xml with some XL macro (the xml contains info on all attachments paths)

didn't really finish step 4 but it seems doable... thought there should be some more friendly tool to work with xml, will look for it...

EDIT: maybe these (both free)
Presentations using PB
Mandox, thank you very much for the excellent idea/explanation
I had been thinking long without finding a solution, I'll copy you!

At some point it would be nice to be able to automatically assemble the entire slide deck into a single presentation eg to print it, send it to sb else, move it to a PC with no PB on it... but how?
count post selected

Add a Website Forum to your website.