Problema
Quindi, ecco l'accordo, sto facendo un sacco di presentazioni su molti argomenti di JMP per un pubblico generale e specifico. Non solo pubblico diverso, ma utilizzo anche un computer virtuale Mac e PC sullo stesso laptop.
Il mio grosso problema è con i collegamenti ai file in JMP Journals. Se il journal è per PC, il mio percorso potrebbe apparire come "y: \ Byron \ Example \ ..", ma se fosse in Mac sembrerebbe più simile a "/ Users / Byron / Examples / .." Ciò significa che anch'io codificare ciascun link di file per essere specifici del sistema operativo oppure creare due versioni del journal per PC e Mac.
Soluzione
Ho scritto JSL da anni e questo non ha fatto clic finché non ho avuto un colloquio con Joseph Morgan e Jeff Polzin. (in realtà, era la loro conversazione, stavo solo ascoltando, in una buona giornata il JMP si appesantisce appena un po 'fuori dal mio campionato.)
In JSL possiamo impostare una variabile di percorso. Sto usando "$ Sample_Data \ Big Class.jmp" per sempre e la parte "$ Sample_Data" di quella è una variabile di percorso che indirizza JMP per ottenere il file dalla directory dei dati di esempio. Impostare una variabile di percorso è davvero semplice, basta fornire il nome e il percorso in questo modo:
Set Path Variable( "Examples", "Y:\Byron Wingerd\Examples" )
Così ora posso usare il nome del file "$ Examples \ eraseme.jmp" o qualcosa del genere:
open("$Examples\eraseme.jmp")
per ottenere a questo file.
Questo è super conveniente quando sposto un diario generale in una cartella specifica del cliente. Poiché i file di dati specifici del journal e del cliente si trovano nella stessa directory, non è necessario utilizzare un percorso per ottenerli e, se utilizzo "$ Examples \ ..." per collegarsi ai file generali, il collegamento funziona. Ma questa è solo una piccola soluzione. Il problema più grande è il passaggio tra PC e Mac.
Per far fronte a diversi sistemi operativi, utilizzo JSL per definire il percorso degli esempi a seconda del sistema operativo come questo: (Questa è la parte davvero fantastica!)
If( Host is( Mac ), Set Path Variable( "Examples", "/Users/bywing/Byron Wingerd/Examples" ));
If( Host is( Windows ), Set Path Variable( "Examples", "Y:\Byron Wingerd\Examples" ));
Se eseguo il bit di JSL all'inizio della sessione JMP (o da un pulsante nel mio diario), "$ Example" verrà valutato correttamente nel sistema operativo host. Ciò significa che il collegamento al file "$ Esempi \ eraseme.jmp" apre "eraseme.jmp" indipendentemente dal sistema operativo in cui è aperto il Diario.
Discussione
Il rapido e semplice per gli script esistenti consiste nell'aggiungere questa JSL in un pulsante di script per risolvere il problema.
Names Default To Here( 1 );
If( Host is( Mac ), Set Path Variable( "Examples", "/Users/bywing/Byron Wingerd/Examples" ));
If( Host is( Windows ), Set Path Variable( "Examples", "Y:\Byron Wingerd\Examples" ));
pvex = Get Path Variable( "Examples" );
Dialog(
Title( "PATH VARIABLE SET!" ),
vlist(pvextb1 = Text Box( "Path variable $Examples set to:" ),
pvextb2 = Text Box( pvex ),
Button( "OK" ))
);
Questo mi dà un breve messaggio di testo per farmi sapere che il percorso è impostato.
Sono sicuro che ci sono almeno una dozzina di modi per affrontare questo problema / Questo approccio è facile da usare su diari esistenti con link che vengono condivisi tra persone diverse. Se hai metodi simili o migliori, per favore pubblicali, sono curioso di vedere come altre persone stanno risolvendo questo problema.