Nuovi sviluppi IDE 1.8.x

Testato: se ho capito mettiamo che tu hai nella tua Home la cartella arduino166 (con dentro "portable") e poi metti sempre in Home una nuova cartella chiamata Sketch, da preferenze non puoi scegliere questa Sketch come sketchbook ?

Ho le applicazioni, come Arduino in "/Applications/" mente le mie cose Arduino sono in "/Users/gpb01/Documents/Arduino/" e NO, non posso selezionare la mia cartella (... o meglio, se ce la metto non la vede e resetta al valore di default).

Devo dire che, a naso, il comportamento corretto è quello su OS X, ed è sbagliato quello su Win ... ... se un ambiente è "sandboxed" lo deve essere [u]a partire dalla sua radice[/u]. Ora se vuoi un ambiente "portabile" non puoi metterti a usare cose che siano fuori dall'ambiente ... o non è più "portabile".

Guglielmo

dipende da cosa vogliamo intendere per portatile, io intendo l'ide, l'ambiente di lavoro, non i tuoi progetti scritti con quell'ide. Su un eventuale pendrive USB io intendo in genere mettere il progetto, che sara' in una sua cartella a se stante, e poi l'ide portatile che mi serve per lavorare a quel progetto.

Ma l'impossibilita' di scegliere una sketchbook posizionata ovunque e' un limite che noti solo quando crei la dir "portable" oppure anche con le versioni Installer ?

Testato: Ma l'impossibilita' di scegliere una sketchbook posizionata ovunque e' un limite che noti solo quando crei la dir "portable" oppure anche con le versioni Installer ?

No, no, è una peculiarità della versione "portable" ... ... se non creo la cartella "portable" posso mettere lo la cartella sketchbook dove mi pare :)

Guglielmo

P.S.: Qualcuno ha fatto la prova sotto Linux ? Come si comporta ?

Ho appena provato su linux

Dir applicazione
/root/Desktop/arduino-1.6.6

Dir Sketch
/opt/sketchtest/

tutto ok, con la dir “portable” presente

e’ sul Mac che c’e’ un bug quindi ?

Testato: e' sul Mac che c'e' un bug quindi ?

Sarebbe interessante vedere se qualcun altro può fare la prova ... visto mai è un problema sulla mia macchina ... ::)

La versione dell'OS è OS X 10.11.1

Guglielmo

… aggiungo un paio di particolari …

  1. Se, da dentro le preferenze, con il tasto “Browse” si cerca un altra cartella, al di fuori dello spazio “portable”, si riceve questa serie di errori java relativi a violazioni della “sicurezza” di accesso:
java.lang.ArrayIndexOutOfBoundsException: 21 >= 0
	at java.util.Vector.elementAt(Vector.java:474)
	at com.apple.laf.AquaFileSystemModel.getValueAt(AquaFileSystemModel.java:237)
	at javax.swing.JTable.getValueAt(JTable.java:2717)
	at javax.swing.JTable$AccessibleJTable$AccessibleJTableCell.getCurrentAccessibleContext(JTable.java:7950)
	at javax.swing.JTable$AccessibleJTable$AccessibleJTableCell.getAccessibleText(JTable.java:8253)
	at sun.lwawt.macosx.CAccessibleText$2.call(CAccessibleText.java:62)
	at sun.lwawt.macosx.CAccessibleText$2.call(CAccessibleText.java:57)
	at sun.lwawt.macosx.LWCToolkit$CallableWrapper.run(LWCToolkit.java:597)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
	at java.awt.Dialog.show(Dialog.java:1084)
	at javax.swing.JFileChooser.showDialog(JFileChooser.java:758)
	at javax.swing.JFileChooser.showOpenDialog(JFileChooser.java:656)
	at processing.app.Base.selectFolder(Base.java:1906)
	at cc.arduino.view.preferences.Preferences.browseButtonActionPerformed(Preferences.java:656)
	at cc.arduino.view.preferences.Preferences.access$000(Preferences.java:48)
	at cc.arduino.view.preferences.Preferences$1.actionPerformed(Preferences.java:274)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6535)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6300)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4891)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4713)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
	at java.awt.Dialog.show(Dialog.java:1084)
	at java.awt.Component.show(Component.java:1673)
	at java.awt.Component.setVisible(Component.java:1625)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at processing.app.Base.handlePrefs(Base.java:1792)
	at processing.app.macosx.ThinkDifferent$2.handlePreferences(ThinkDifferent.java:60)
	at com.apple.eawt._AppEventHandler$_PreferencesDispatcher.performUsing(_AppEventHandler.java:263)
	at com.apple.eawt._AppEventHandler$_PreferencesDispatcher.performUsing(_AppEventHandler.java:254)
	at com.apple.eawt._AppEventHandler$_AppEventDispatcher$1.run(_AppEventHandler.java:516)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
  1. Se invece da Menu → File → Open si apre un programma, OVUNQUE esso sia, NON c’è alcun problema …

Il che sembrerebbe confermare la mia ipotesi di maggiore restrizione/rigidità in ambiente OS X …
… tutto quello che riguarda lo “sviluppo” (core, IDE, librerie, …) è “confinato” e “sandboxed”, le cose dell’utente (il codice sorgente, la directory temporanea dove mette i compilati, ecc.) invece no, e possono essere ovunque.

Guglielmo

da dentro le preferenze, con il tasto “Browse”, cosa cerchi se non la dir che contiene i tuoi sorgenti ?

quindi quel limite (che visto anche gli errori sembra essere confermato), non e’ un limite ma un bug.
Da preferenze, cosi’ come su Win e su linux, si deve poter scegliere la cartella dove si tengono i propri sorgenti (con all’interno la propria cartella libraries e la hardware) ovunque essa sia. :slight_smile:

Mi fate venire "l'ansia da test"... Cosa bisogna verificare? Se mantiene la scelta della cartella "personale"?

speedyant: Mi fate venire "l'ansia da test"... Cosa bisogna verificare? Se mantiene la scelta della cartella "personale"?

Se sei sotto OS X (10.11.1) e ti sei fatto la tua versione di Arduino.app "portable" ... ... lanciala e, dalle preferenze, cerca di selezionare la cartella Sketchbook dove normalmente era in precedenza (~/Documents/Arduino/) e vedi cosa ti da :)

Guglielmo

Testato: ... quindi quel limite (che visto anche gli errori sembra essere confermato), non e' un limite ma un bug.

... probabilmente hanno applicato ... un po' troppo ... le policy di sicurezza anche a funzioni che non dovevano essere sotto tali policy ;)

Chi segnala la cosa su GitHub ? Grazie :)

Guglielmo

https://github.com/arduino/Arduino/issues/4103

;)

Testato: https://github.com/arduino/Arduino/issues/4103

... grazie :)

Vediamo se confermano il bug ;)

Guglielmo

gpb01: Se sei sotto OS X (10.11.1) e ti sei fatto la tua versione di Arduino.app "portable" ... ... lanciala e, dalle preferenze, cerca di selezionare la cartella Sketchbook dove normalmente era in precedenza (~/Documents/Arduino/) e vedi cosa ti da :)

Guglielmo

Allora non posso essere di aiuto, non ho pc con os x superiori alla 10.4, se ben mi ricordo.

una conferma anche su vecchie versioni e' comunque cosa utilissima, puo' far capire se e' un probelma generale su Mac o solo su determinate verisoni

gpb01: ... grazie :) Vediamo se confermano il bug ;) Guglielmo

Anche su Windows spero mettino mano, perche' e' di uso comune avere l'Ide installato su C e poi la propria sketchbook su D, in modo da non perdere nulla in caso di formattazioni per reinstallazione del sistema operativo

Testato: Anche su Windows spero mettino mano, perche' e' di uso comune avere l'Ide installato su C e poi la propria sketchbook su D,

Infatti è una bella scocciatura il dover usare lo sketchbook sulla stessa partizione.

allora sto facendo anche io qualche test con la nuova idea su OSX El Capitan....ho selezionato la cartella /Documenti/Arduino come contenitore di sketch e librerie....diciamo che il blink e altri esempi vari li compila senza problemi....ho anche il core Tiny installato (programmo principalmente Tiny85) e a questo punto se provo ad compilare uno sketch che sulla 1.6.5 va liscio liscio ottengo il seguente errore:

/Users/***/Documents/Arduino/libraries/SoftwareSerial/SoftwareSerial.h:36:20: fatal error: Stream.h: No such file or directory

include

...mentre se uso la 1.6.5 chiaramente va a buon termine...

quindi diciamo che la migrazione è andata bene al 90%,non capisco come mai questo problema con la SoftwareSerial e Stream che dovrebbero essere due cose ben integrate nel core...idee??

la 1.6.6 effettivamente non e' una minor release, cambia veramente tantissimo sotto al cofano. Ho letto gia' molte issue su github e lamentele sul blog arduino, ma e' la strada giusta. Servira' una 1.6.7 al piu' presto ;)

Testato: Servira' una 1.6.7 al piu' presto ;)

Premesso che ho provato poco la 1.6.6, però al momento non mi ha dato nessun problema, ho provato a compilare sketch molto complessi per Mega 2560, roba che arriva a quasi 100 k di eseguibile, e funziona tutto. Probabilmente a breve arriverà la R1-R2 .. Rx della 1.6.6 per correggere i bug primari, come hanno fatto per la 1.6.5.

Siccome non ho "capito" il discorso "cartella portable", mi potete indirizzare/spiegare di cosa si tratta? Grazie!