Files
processing4/todo.txt

1064 lines
48 KiB
Plaintext

0211 pde
X make file selectable from the OS X menubar
X http://code.google.com/p/processing/issues/detail?id=1215
X make Mode menu into a radio button, so it cannot be de-selected
X http://code.google.com/p/processing/issues/detail?id=1227
X no response with registerMethod keyEvent when key pressed or released
X http://code.google.com/p/processing/issues/detail?id=1225
_ "Processing is damaged and should be put in the trash" for 2.0b2
_ http://code.google.com/p/processing/issues/detail?id=1226
_ running at size(7000, 4000) followed by size(100, 100)
_ http://code.google.com/p/processing/issues/detail?id=1213
. . .
_ try to use appbundler to create a version that includes a JRE (JDK)
_ http://java.net/downloads/appbundler/appbundler.html
_ http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html
_ http://www.intransitione.com/blog/take-java-to-app-store/
_ investigate the sandboxing situation on OS X
_ http://developer.apple.com/library/mac/#documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html#//apple_ref/doc/uid/TP40011195-CH4-SW1
most sandbox violations are triggered by attempts to read/write to the
filesystem without user intervention (eg. without using an open/save
dialog) and/or from places outside the container (eg.
~/Library/Containers/yourapp/...).
A violation is also triggered by trying to execute an external process
from Java (ex. using Runtime.exec()).
If you look at the list of entitlements your application can have on
the Apple site(*) you can think whether your application is performing
an operation that would require enabling a specific entitlement, like
connecting to a network, printing, interacting with a usb or bluetooth
device, etc..
I encountered this problem too, I forgot to add it to my guide....
If you sign all the files in the bundle it won't work as codesign
doesn't follow the symlinks.
First sign your bundle:
codesign --verbose -f -s "$SIGNATURE_APP" \
--entitlements $ENTITLEMENTS \
$YOUR_APP.app
Then sign all the libraries:
find $YOUR_APP/Contents/ -type f \
\( -name "*.jar" -or -name "*.dylib"\) \
-exec codesign --verbose -f -s "$SIGNATURE_APP" \
--entitlements $ENTITLEMENTS {} \;
Finally you can create the package:
productbuild --component YOUR_APP.app /Applications \
--sign "$SIGNATURE_INST" YOUR_APP.pkg
You can test if the package work with this command:
sudo installer -store -pkg $YOUR_APP.pkg -target /
You can also verify all libraries have been signed
find YOUR_APP/Contents/ -type f \
\( -name "*.jar" -or -name "*.dylib"\) \
-exec codesign --verbose --verify {} \;
. . .
2.0 FINAL / command line
_ kill external editor (for all its quirks) in favor of command line
_ use external editor needs to enable/disable across all windows
_ http://code.google.com/p/processing/issues/detail?id=515
C Casey says yes kill ext editor and finish command line
_ use as a way to remove the non-GUI-specifc code from PApplet
_ so that the builds can run headless
_ processing.app.Commander headless still requiring X11
_ problem is static calls to PApplet
_ http://code.google.com/p/processing/issues/detail?id=220
X could move to java6 and better internal javac support (drop ecj)
_ decided to use Java 6, so check on Javac usefulness
_ change command line to just be part of regular (separate) distros
_ there's so much platform code in there, it's not worth the extra work
_ also include update check for logging
_ command line support is currently broken
_ http://code.google.com/p/processing/issues/detail?id=142
_ some fixes can be found in the bug report
_ need to deal with setting path to sketchbook/examples
_ also deal with the script not being in the right folder
2.0 FINAL / library/tool/mode manager cleanup
_ a couple notes
_ http://code.google.com/p/processing/issues/detail?id=1212
_ complaint that dropdown list is too small
_ http://code.google.com/p/processing/issues/detail?id=1093
_ TextAreaDefaults
_ is editable in use?
_ what's electricScroll?
_ caretBlinks always true.. just remove the pref?
_ blockCaret always false.. remove it?
_ report from someone about blinking caret
_ http://code.google.com/p/processing/issues/detail?id=1136
_ figure out why modes are not loading classes properly
_ first see if it's something quick
_ excessive CPU usage of PDE after using library manager
_ http://code.google.com/p/processing/issues/detail?id=1036
_ very slow startup on OS X (library manager et al?)
_ if not, move to OS X dist list
_ remove PdeKeyListener, roll it into the Java InputHandler for JEditTextArea
_ move Java-specific InputHandler to its own subclass
_ problem changing sketchbook to new location (e.g. from ex to regular)
_ new libraries are not picked up
2.0 FINAL / new interface
_ editor.bgcolor probably moves out of the theme.txt file for the mode
_ or should it be a user preference thing
_ for that matter, need to decide on how much modes can customize themselves
_ setModified() getting called on Windows (probably Linux) for key cmds
2.0 FINAL / more open/save/etc
_ blank sketch opened even if another opened by double-click
_ http://code.google.com/p/processing/issues/detail?id=179
_ add a 150 ms or more lag before opening the untitled window (on os x)
_ also can have case of opening two of same sketch at once
_ if sketch was open, then restart by dragging the .pde to p5.app
_ osx not opening a sketch at all on pde double-click? (though opening the app)
_ active editor not being set null
_ in Base.nextEditorLocation(), changed to "editors.size() == 0"
_ instead of (activeEditor == null), but that's papering over a problem
_ where the active editor is not being set null
_ don't let people into the /tmp folder for sketches
o don't use tmp folder for sketches?
_ restrict more things like "show sketch folder"
_ don't allow adding files w/o saving
_ others?
_ when creating a sketch within non-java mode, should write the settings file
_ so that it re-loads in the proper environment
2.0 FINAL / casey stuff
_ try to make KEYWORD4 and KEYWORD5 work
_ change syntax highlighting so it differentiates keyPressed and keyPressed()
_ syntax highlight with parens also helps "String line" vs "line()"
_ errors that cannot be placed (i.e. missing brace)
_ this makes things to jump to the last tab
_ also happens with stray characters sometimes...
_ casey: accidentally typing a letter at the top of the tab
_ throws you onto the end of the last tab... exactly the worst location
2.0 FINAL / libraries & classpaths
_ need to deal with classpath conflicts
_ avoid garbage that people have installed on their machines
_ antlr.jar in the classpath will cause trouble..
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1138652326
_ jogl jar files, or jogl install will cause trouble
_ /System/Library/Java/Extensions or /Library/Java/Extensions
_ the /System one contains qtjava
_ the /Library one is empty (by default), maybe skip it?
_ classpath conflicts also problem with PDE itself
_ catch antlr conflicts, and put up an error message
_ http://dev.processing.org/bugs/show_bug.cgi?id=1225 (no Google issue)
_ when a conflicting library is found, need to report it
_ altho prolly only when it's actually different (md5hash it?)
_ this seems to be causing a lot of trouble with recent releases
_ (opengl changes and whatnot)
_ jar files like the bad aiexport plugin will cause serious problems
_ need to ignore processing.core classes showing up in other jar files
_ tougher than it looks, because it all depends on what java wants to use
_ i.e. even if not specified, the stuff will be in the classpath
_ need to make classpath code be less promiscuous
_ the order of adding libraries to classpath should be opposite
_ the important local libraries should be first in cp, user contrib later
_ http://code.google.com/p/processing/issues/detail?id=56
_ changing the sketchbook folder will make libraries show up
_ but it won't reload the library mapping table
_ make sure there aren't library jar files named the same thing
_ i.e. if one library has db.jar, then that's gonna kill another db.jar
_ when the files are copied over
_ libraries in java tabs (separate .java files) are reported missing
_ need to scan the .java files for imports that need to be included
_ http://code.google.com/p/processing/issues/detail?id=459
_ library.properties and tool.properties should reflect supported modes
_ http://code.google.com/p/processing/issues/detail?id=1050
_ how to catch these?
Exception in thread "Animation Thread" java.lang.NoClassDefFoundError: Could not initialize class javax.media.opengl.GLProfile
Exception in thread "Animation Thread" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path
_ versioning info
_ http://java.sun.com/j2se/1.5.0/docs/guide/extensions/versioning.html
_ java.ext.dirs for /System/Library/Java/Extensions
_ http://java.sun.com/j2se/1.5.0/docs/guide/extensions/spec.html
_ can set java.ext.dirs to something else
_ on osx, just ignore anything in /Library/Java/Extensions (but not others)?
_ native lib stuff, use native.txt in lib folder, then:
_ String osName = System.getProperty("os.name");
_ String osArch = System.getProperty("os.arch");
_ http://stackoverflow.com/questions/1611357/how-to-make-a-jar-file-that-include-dll-files
_ add control for dependencies (i.e. svg needs xml), needed for export
_ http://code.google.com/p/processing/issues/detail?id=70
_ add "pretty menu name" to the export.txt file
_ move export.txt to xml? (nah, it's only flat information)
_ need better platform designation setup for libs
_ library installation should use the sketchbook folder, not the p5 folder
_ actually enforce this, give users a warning about other libs
_ java.extension.dirs has the library/extn stuff
_ can probably set this blank
_ the jar from which a class file has been loaded
_ getClass().getProtectionDomain().getCodeSource().getLocation().getFile()
_ example from jsyn
JSyn Installer build 011
java.vm.version = 1.5.0_07-87
java.library.path = .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext
Installing Native library JSynV142
Copy: http://www.softsynth.com/jsyn/plugins/archives/libJSynV142.jnilib
to: /Users/fry/Library/Java/Extensions/libJSynV142.jnilib
Native component JSynV142 downloaded successfully.
Installing JAR file JSynClasses.jar
Copy: http://www.softsynth.com/jsyn/plugins/archives/JSynClasses.jar
to: /Users/fry/Library/Java/Extensions/JSynClasses.jar
JAR file JSynClasses.jar downloaded successfully.
Note: you must restart your browser before running any JSyn Applets!
Installation completed.
_ set DYLD_LIBRARY_PATH to include .dylib and other framework stuff
_ java.library.path will only handle .jnilib stuff
_ need better error messages for broken api / library troubles
_ e.g. ocd is broken in 0125 because of method signature changes
_ could have library developers update compatability note
_ so they would need to test library and say "compatible with 0110"
_ before it would automatically update or show as an update
_ tools -> get library
_ library url: [ http://blahblah.org/something ]
_ this would grab something.version, and something.zip
_ maybe something.xml that would include a bunch of background
_ tools -> update libraries
_ this would check the something.version to see if it's newer
_ document how to add libraries: put in sketchbook (not libraries folder)
_ library/download.url and library/home.url
_ if there's a reference subfolder, add that to the help menu
o and enable it for "find in reference"
X nice idea but too error-prone
_ need an "install library" option to deal with urls.. oy
_ proper libraries warning dialog
_ check if libraries folder does not exist
_ check to see if other libraries are installed
_ warn user about moving libraries and restarting
2.0 FINAL / misc pde cleanups
_ remove preferences that refer to applets
_ remove applet folder from the Java stuff
_ 'recent' menu doesn't respect examples folder of other p5 versions
_ 'recent' menu paths can get enormous
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DOC / Mess
_ find in reference for copy() (on image) tries to open PVector.copy()
_ might need disambiguation pages?
_ if a reference page is missing, throws a bunch of exceptions
_ i.e. PVector.copy() not in the reference
_ import p5 reference into the javadoc
_ local web server to run reference from .zip?
_ no more gazillion file nastiness
_ yahoo search example is out of date (included in the examples? the book?)
_ document the move of the auto format menu
_ in the book(s)? in the reference?
_ improve documentation of the pdf stuff
_ be clearer about the font setup stuff
_ fonts by default not working that well?
_ jer: opengl2 tutorial
_ jer: android tutorial
_ probably later: examples into categories based on difficulty
_ add ratings/difficult level to examples online and in the pde
_ go through examples, figure out how to do many on the site w/ js instead
DOC / Write Me
_ common error messages
_ with a proper list, we can add links when throwing an error in the PDE
_ stop() to shut down a sketch (but not quit/close window)
_ actually pause/resume
_ MIN_FLOAT, MAX_FLOAT, also the difference from the Java functions
_ also MIN_INT and MAX_INT, even though those are more similar
_ update the reference to cover parseXxxx() stuff
_ also add notes about parseInt/Float(blah, otherwise)
_ also parseInt and parseFloat, how they can return another number or NaN
_ should the default be NaN or 0?
_ get/set are faster way draw screen space images, but no tint, no translations
_ make sure the docs include "beginShape() cannot be nested"
_ also add error messages to the renderers
_ also note that ellipse() et al use beginShape()
_ and that java2d should complain if people try it
_ method to go from function name to the included examples where used?
_ encourage use of set() instead of point() in the drawing api
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=SoftwareBugs;action=display;num=1114204116
_ moviemaker video sizes / usability
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Exhibition;action=display;num=1211318862
_ other projects on which p5 is built
_ no longer oro matcher and jikes
_ add: quaqua, jna, registry stuff, .. ?
_ noLoop() isn't the same as "finished", though it's sometimes used that way
_ to finish, use exit() (though that will make the window close)
_ add this to ref once halt() is finished
_ errors in pdf/index.html examples
_ probably remove these, move the useful ones to the examples folder
_ that way people will read the reference
_ i can't fix these:
An unexpected error has been detected by HotSpot Virtual Machine:
# EXCEPTION_ACCESS_VIOLATION
all i can do is find things that might trigger them, but it's more likely
than not to be a java problem, and not something that can be fixed
_ explanation of how we see libraries in the PDE
_ We're making an assumption that the idea of a "library" refers to a block of Java-based code. The reasoning is that from within the PDE, we anticipate that it will be Java-compatible versions of other languages (such as Jython, JRuby, or Scala) as opposed to more generic languages. In the future we could open this up, but we'd rather not complicate things for the moment.
_ add to troubleshooting
_ problem with big floats: http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1061302380
_ problem with small floats: http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Programs;action=display;num=1115500448
_ console stored in prefs location
_ console may be useful for debugging
_ untitled folders are stored in temp folder
DOC / Text
_ how to use textMode(SHAPE) with opengl
_ things will be extremely slow (fix later)
_ things will also be very ugly on-screen
_ text being nicer in java2d
_ use createFont() to load the font or use a font from your machine
_ note that createFont() is no good for applets/export to web
_ textMode(SCREEN) for P2D and P3D for nice fast text in screen space
_ currently slow in JAVA2D and OPENGL, but this will improve
_ what is the vlw font file format?
_ shapes from 3D type
_ the way to do it (will improve later) is to use some undocumented features
_ 1) you have to use the OPENGL renderer
_ 2) use textMode(SHAPE);
_ 3) use createFont() (which you already are)
_ this will convert all the shape data from the fonts for writing.
_ it will be *extremely* slow, which is part of why it's not documented yet.
_ but it will work with beginRaw().
DOC / Discourse Board
_ auto-close threads when not posted to for 30(?) days
_ add basic guidelines for posting to the board
_ 0. be polite. going on about how much something "sucks" or is "stupid" will make you look like an eight-year-old.
_ 1. don't double (or triple) post
_ 2. if you're having trouble, first see the troubleshooting page
_ 3. if you have a bug, first search the bugs database
_ 4. first check the FAQ
_ 5. use the search bar at the top of every page
_ 6. read revisions.txt
_ someone wrote up an initial version of this
_ how to put [code] around blocks of code
_ also mention contributed plugin for formatting
_ also the reference page on the bb commands
_ i don't answer to instant messages
_ i don't answer email
_ use the bugs db instead of the bugs board
_ use the search box (not the forum search)
_ read the faq, read the faq
_ read the reference.. right-click on a word and choose "find in ref"
_ non-processing posts will be deleted (not a java discussion board)
_ no duplicate posts - find an area and post to
_ explanation of what the areas are
_ be sure to look at the reference, especially the extended reference
_ questions like 'how do i do x' are often solved by looking at the api
_ for instance, to get the framerate, use framerate()
DOC / Other
_ why adding .0001 to a float doesn't work
_ and how they're imprecise in general (use nf)
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Syntax;action=display;num=1130877990
_ why strong typing? (link also to language thing on main page)
_ we cannot commit to any sort of timeframe on releases
_ under the hood - basic
_ it's all java
_ don't use awt
_ most things are imported by default
_ under the hood - complex
_ how to get started with coding
_ everything subclasses PApplet
_ if you need a particular name, add it with "extends PApplet"
_ all code from tabs is joined to one sketch
_ if you want it separate, then you have to make .java files
_ in doing so, you'll lose access to 'g'
_ add main() to your app to make it run on its own
_ preproc stuff.. have to make setup() into public void setup()
_ (same for key events and all that)
_ performance
_ video stinks.. java2d stinks.. macs stink
_ note in the 'drawing in 2d' section of faq
_ fastest machine possible
_ turn off hyperthreading in the bios
_ nice gfx card only helps opengl
_ dual processor not particularly useful, unless you make more threads
_ but making more threads is often more work than is useful
_ is there a way to do xxx?
_ advanced users who are outgrowing the basic reference:
_ be sure to check the "complete" reference
_ change bugs.html to issues.html
_ and add a redirect in httpd.conf
_ need to document how subclass of pgraphics works
_ what are the necessary bits that need to be subclassed
_ simple handling of colors, what fields are available
_ how to get the matrices
_ simple endshape handler
DOC / Site
_ also mention in keyPressed docs that ASCII key codes will not be coded
_ it's just how java is (maybe this is already in there?)
_ add note about adding libraries to the sketchbook to the reference
_ add note in environment reference about how to add something to the sketch
_ (code, .java files, etc)
_ make sure that psound has been removed (from docs, ref, mentions)
DOC / Examples
_ add to key reference a pointer to an example that tracks all keys
_ write simple example that tracks all keys
_ making things fast with pixel operations
_ write a threading example
_ show an example of how to handle callback into the app
X or handle this some more intelligent way, super.stop() is needed.
X registerDispose() does the trick
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1083574943
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1067383998
_ scripts: how to make a long setup() sleep so that things don't lock way up
_ write an example that uses HashMap (or Hashtable)
_ write an example that uses ArrayList properly
_ get xml library example in there
_ simple method for having a clickable region or sprite with rollover
_ post to web example
_ particularly for uploading image data
_ along with php script to handle receive
_ this is in hacks, but
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=VideoCamera;action=display;num=1117194066#7
DOC / Hacks
_ JAI handles setting image size for png (check javax.imageio?)
_ PNGEncodeParam png = PNGEncodeParam.getDefaultEncodeParam(bufImage);
_ png.setPhysicalDimension(round(dpi*39.370079), round(dpi*39.370079), 1);
_ JAI.create("filestore", bufImage, filename+".png", "PNG");
_ also an example of setting the jpeg compression (included in bug report)
_ http://code.google.com/p/processing/issues/detail?id=58
_ write a timer class/example library
_ how do i add gui to a sketch?
_ don't use awt components
_ how to use swing and embed components inside p5
_ explain how to integrate code with swing
_ use a separate environment, call init(), use noLoop(), redraw()
_ use JPopupMenu.setDefaultLightWeightPopupEnabled(false); for zorder
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Integrate;action=display;num=1147670059
_ write documentation on general use of processing.core
_ note that applet is itself a Component
_ eclipse
_ document how to properly integrate with eclipse
_ add runtime args to opengl library so that it sets path properly
_ add explanation for using subclipse to get p5
_ make a src folder, data folder location
_ export to eclipse
_ how to do this with subclipse instructions?
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
PDE - Processing Development Environment
PDE / Dialogs
_ proper dialog support
_ http://javagraphics.blogspot.com/2008/06/joptionpane-making-alternative.html
_ two-tiered dialogs for everything - use big font/little font style throughout
_ http://javagraphics.blogspot.com/2008/06/joptionpane-making-alternative.html
_ option to suppress warning dialogs
_ starting with the one about modifying the sketch name for spaces
_ http://code.google.com/p/processing/issues/detail?id=7
_ the first time someone hides a tab, put up a msg explaining what it does
_ "don't warn me about this anymore"
_ add "don't warn me about this" for sketch renaming
_ make sure renamed version doesn't exist already
_ prompt user before nuking applet or application folders
_ along with a "don't ask me later"
_ use macosx dialogs for all of the editor stuff
_ see about doing the same on windows, linux?
_ the others seem to respond ok to the lucida grande since they use defaults
_ vista style dialogs
_ http://msdn.microsoft.com/en-us/library/bb328626.aspx
_ confirmation dialogs (save and don't save.. who'd a thunk it)
_ http://msdn.microsoft.com/en-us/library/aa511273.aspx
_ http://i.msdn.microsoft.com/Aa511273.Confirmations03(en-us,MSDN.10).png
_ scrollable stack trace
_ http://www.javalobby.org/java/forums/t19012.html
PDE / Compiler & Preprocessor
need examples
_ Improve detection and handling of missing semicolons
_ http://code.google.com/p/processing/issues/detail?id=136
medium (bugs/features)
_ omitting a semicolon shows the error on the line after it
_ npe if library is removed before compile
_ always check library folders to make sure they're still valid
_ mismatched square brackets generate bizarre and/or misleading error messages
_ http://code.google.com/p/processing/issues/detail?id=355
_ with additional .pde files, don't allow static mode in front tab
_ e.g. no setup()/draw() block
_ don't allow "for (blah; blah; blah) ;"
_ or if (blah blah blah) ;
_ it's never useful. students can use { } if they want an empty block
_ missing brackets, unmatched brackets
_ examples added to the bug report
_ http://code.google.com/p/processing/issues/detail?id=6
low (features)
_ copy running code from /tmp/buildXXxxx on crash of p5
_ should probably make a way to save/recover code
_ make the buildXxxx folders relate to time/date?
low (common errors around reserved names/class naming)
_ Saving sketch with the same name as a class or primitive breaks sketch
_ http://code.google.com/p/processing/issues/detail?id=157
_ don't allow people to override methods like paint()
_ make them final? just improve the error messages?
_ http://code.google.com/p/processing/issues/detail?id=1020
_ Processing chokes if a sketch defines a class with same name as the sketch
_ http://code.google.com/p/processing/issues/detail?id=157
_ http://code.google.com/p/processing/issues/detail?id=168
_ don't allow goofy case versions of reserved words
_ keypressed should maybe throw an error
_ http://code.google.com/p/processing/issues/detail?id=5
_ using a keyword as a variable name gives unhelpful error message
_ http://code.google.com/p/processing/issues/detail?id=54
low (better error messages)
_ need better error messages in general
_ some means to link out to further documentation (e.g. AIOOBE, NPE)
_ if 'void' left out before loop or setup, cryptic message about
_ 'constructor loop must be named Temporary_23498_2343'
_ add a better handler for this specific thing?
_ http://code.google.com/p/processing/issues/detail?id=8
PDE / Editor
_ undo seems to not be going to the right location (now with example)
_ http://code.google.com/p/processing/issues/detail?id=668
_ improve update check message "a new release (1.0.1) is available"
_ be more descriptive, use a second line in latest.txt
_ maybe just include the full text of the update message there?
_ go through other sketch-opening menus to check for disappearing sketches
_ deal with isManagingFocus() warning in the editor src
_ strange NullPointerException problem prevents launch
_ some kind of NPE in handleOpenInternal and friends
_ appears to be a synchronization problem with the loading
_ when opening from double-click on the mac, doesn't replace untitled
_ or in general, issues between opening new window and another launching
_ probably need to synchronize the file open methods inside Base
_ (could in fact cause nastiness with editors[] access)
_ editors opening up at the same time on load?
_ either synchronize the open (at a minimum)
_ or wait for mac handlers to register an open event
_ can also cause problems with opening multiple copies of same sketch
_ after fixing name of sketch, ensure sketch of that name does not exist
_ add auto-save to the editor
_ http://code.google.com/p/processing/issues/detail?id=92
_ add mnemonics for menus (alt-f to open 'file')
_ http://code.google.com/p/processing/issues/detail?id=12
_ option to just print all code in project
_ http://code.google.com/p/processing/issues/detail?id=11
_ or option to export all the code as colored html?
_ dim edit menus as appropriate during selection/no selection/etc
_ http://code.google.com/p/processing/issues/detail?id=14
_ code coloring is imperfect because it's not based on a parser
_ i.e. mousePressed() is red but mouseMoved() is brown
_ http://code.google.com/p/processing/issues/detail?id=41
_ implement better method of showing curly brace closure
_ http://code.google.com/p/processing/issues/detail?id=55
_ sketches should only write to the console of their editor window
_ http://code.google.com/p/processing/issues/detail?id=114
_ problems with file/print
_ http://code.google.com/p/processing/issues/detail?id=174
_ Input Method support (for Japanese et al.) has been disabled
_ http://code.google.com/p/processing/issues/detail?id=526
PDE / Editor Toolbar (Buttons)
_ play button (and others) no longer highlighting
_ http://code.google.com/p/processing/issues/detail?id=688
_ run button not properly unhighlighting
_ does it unhighlight after compile or runtime errors?
_ also when using draw() instead of loop()
_ applet needs to notify runner that it has terminated
_ check 'finished' via objectreference?
_ show compiling/startup animation after clicking run
_ or maybe show an animation for starting up
_ rather than post-compile
_ http://code.google.com/p/processing/issues/detail?id=97
_ EditorToolbar has two TODO items for open menu handling
PDE / Editor Header
_ key command for prev/next tab works, but not menu
_ menu options are actually disabled because of inconsistency
_ http://code.google.com/p/processing/issues/detail?id=140
_ ctrl/ctrl-shift-n sometimes stops working
_ http://code.google.com/p/processing/issues/detail?id=149
PDE / Editor Status
_ make standard editor input prompt available to other tools/modes
_ http://code.google.com/p/processing/issues/detail?id=746
PDE / Export
_ use launch4j for export and p5 app itself
_ perhaps even calling it through an ant task
_ windows exported exe problems (pcho)
_ if the lib folder goes missing from export, give an error
_ also any .jar files that are missing, give an error
_ showing more debug messages (command line?)
_ when exporting to application (or applet) don't copy .java files from folder
_ (they'll be copied as source files later)
_ make .java files and friends go to correct locations on export (app)
_ warn on export when people call their sketches things like Server
_ warn if someone extends PApplet but mis-names the sketch
_ or don't allow it to be exported
_ add bug reference to the faq once added to the db
X or at least add a note about this to the faq
_ show error when no main() is included but class extends PApplet
_ error can happen or be checked
_ exporting application copies .java files
_ .java files are copied to the root folder as well as the source folder
PDE / Find & Replace
_ implement find & replace over multiple tabs
_ http://code.google.com/p/processing/issues/detail?id=25
_ added to the projects list
PDE / Examples
_ keep examples.zip in a zip file? (5000 files @ 30 MB instead of 15 MB zip)
_ mark examples as untitled (rather than read-only)
_ maybe even pull these directly from the zip file?
_ load examples from zip files
_ http://code.google.com/p/processing/issues/detail?id=143
_ disallow add file to sketch, export, export application
_ pretty much anything inside the sketch?
_ but don't do this with untitled, cuz it kinda stinks
_ this is too weird--just put examples into individual zip files
_ mark example files as untitled
_ though will that require the sketch to be saved before export?
_ examples window sketches should load in proper environment
_ write build.xml file to automatically update the examples
_ don't make examples read-only
_ just do them from psk files
_ sketch.isReadOnly returns false for examples coming from multiple modes
_ http://code.google.com/p/processing/issues/detail?id=734
_ see how library installation goes, then possibly do same w/ examples
PDE / Preferences
_ changing the default display does not reset editor location
_ so the change appears to have no effect
_ http://code.google.com/p/processing/issues/detail?id=1162
_ the .macosx, .linux, etc prefs should be stripped
_ only use them on first load, and merge into preferences.txt
_ Editor.applyFrame() may not have a valid 'editor' object to work with
_ if windows closed, and prefs altered, NPE thrown
_ make sure editor isn't trying to apply prefs when no editor is open
_ (on mac os x, due to the change for no windows open)
_ clear up prefs so that multiple editors don't trash each other's prefs
_ when are prefs saved? could instead save whenever changes are made
_ and then if the file gets modified, it'll put up an error message
_ also, this may be part of why other sketches aren't reloading properly
_ control text size in console
_ why aren't prefs from theme.txt showing up in preferences.txt? hrm
_ or rather, why can't they be overridden?
_ should fonts at least be in prefs.txt?
_ http://code.google.com/p/processing/issues/detail?id=226
_ simple prefs implementation to set key/value pairs using a JTable
_ separate prefs and sketch state info?
_ this would mean prefs being rewritten far less
_ prefs window doesn't swap ok/cancel properly for mac vs. windows/linux
_ don't bother having a "cancel" for the prefs window
_ rewrite preferences window to use proper layout?
_ is there already a bug for this?
_ make prefs dialog modal?
_ split Preferences and PreferencesFrame?
_ http://code.google.com/p/processing/issues/detail?id=29
_ preferences window has been hit with the ugly stick
_ redo panel to use proper Box layout etc
_ also needs to look good across all platforms
_ http://code.google.com/p/processing/issues/detail?id=28
_ make available the background colors for present mode, stop button color
_ isolate color chooser into a simpler/smaller class outside tools
_ then can also use from inside processing applications as well
_ http://code.google.com/p/processing/issues/detail?id=30
PDE / Runner
_ draw mode apps do not shut off the run button when finished
_ need to talk to VM and read when 'finished' var is set
_ does closing the window call stop()?
_ need to make sure hitting stop button and closing window explicitly call
_ set finished to true, then join() the animation thread
_ need to set dock icon title on osx
PDE / Sketch & Sketchbook
_ Large number of files in sketchbook folder can cause slow startup
_ and/or errors with launch4j
_ http://code.google.com/p/processing/issues/detail?id=1152
_ error that sketch is read-only can't be canceled
_ hitting cancel (or ESC?) still brings up the save dialog
_ ArticulatePrint-070103a.pde from ArticulatePrint-070103a loads ok
_ but when opening the sketch, it leaves out the file
_ because there's a dash in the name
_ and instead only loads StemCell.pde
_ show progress dialog during export and save
_ hitting ESC on "create this, move file, continue" opened anyway
_ may need a progress bar for "save as"
_ or just the file copy function in general
_ since it may take a long time (i.e. 1000s of screen grabs)
_ http://code.google.com/p/processing/issues/detail?id=31
_ some type of sketch archive format for posting examples (.psk?)
_ would be nice to open a sketch directly from a zip file
_ http://code.google.com/p/processing/issues/detail?id=34
_ maybe just open from a zip file, since psk doesn't help anything
_ also have a means of importing sketches
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
TOOLS / General
_ create default tools folder (just like libraries)
_ for tools, maybe don't run on event thread? (makes the gui hang)
_ but instead, things that affect gui need to be called w/ invokeLater?
_ bad tool brings down the environment
_ http://code.google.com/p/processing/issues/detail?id=798
_ need a proper means to handle command keys for tools (?)
_ http://code.google.com/p/processing/issues/detail?id=44
_ handle native code for tools menu (?)
_ http://code.google.com/p/processing/issues/detail?id=109
TOOLS / Movie Maker
_ move Movie Maker out to its own separate tool package (with separate build)
_ http://code.google.com/p/processing/issues/detail?id=837
TOOLS / Ideas
_ eclipse import/export
_ simple mechanism to export to eclipse
_ don't worry about subversion stuff, just export with libraries
_ something clever to import back from eclipse
_ could keep the .svn files in with the libs and all
_ then when exporting for eclipse, people can update as necessary
_ -> dan et al say better to do fixed versions and have it work simply
_ import sketch from url (takes a zip from archive sketch)
_ archive sketch direct to bug report
_ shared code
_ Integrator / FloatThing / CameraStuff -- Update
_ to pull code from a local folder
_ update will update classes from shared in the current folder
TOOLS / Auto Format
_ fix autoformat to indent like the p5 book/examples
_ http://code.google.com/p/processing/issues/detail?id=325
_ extra indent found
_ http://code.google.com/p/processing/issues/detail?id=1003
_ Switch block cases not indented
_ http://code.google.com/p/processing/issues/detail?id=1004
_ do a better job of maintaining cursor
_ only auto-format a particular section of code
_ set the 'tabs' var based on how many spaces on previous line
_ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1087227217
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
LIBRARIES / General
_ need to unpack InvocationTargetException in xxxxxxEvent calls
_ http://processing.org/discourse/yabb_beta/YaBB.cgi?board=VideoCamera;action=display;num=1116850328#3
LIBRARIES / Net
_ clientEvent() called even w/o data from server
_ http://code.google.com/p/processing/issues/detail?id=189
LIBRARIES / Serial
_ need 64-bit Windows version of RXTX library
_ serial still causing problems on OS X
_ http://code.google.com/p/processing/issues/detail?id=52
_ serial ports missing from list (OS X)
_ http://code.google.com/p/processing/issues/detail?id=52
_ Serial.write problem with Bluetooth SPP virtual serial port
_ http://code.google.com/p/processing/issues/detail?id=318
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
DIST
How the environment gets packed up, downloaded, and installed.
DIST / General
_ make sure javadoc builds and uploads, also the zip files
_ add additional caveats about incompletion
_ drag and drop
_ including the number of items added to sketch would be especially nice
_ implement automatic update
_ http://code.google.com/p/processing/issues/detail?id=61
_ need .pde document icons
_ need .psk file icon
_ need exported application icons
_ need more comprehensive list of 'known bugs'
_ need more comprehensive list of 'known suggestions'
_ write notes about running p5 on another platforms
_ this was some feedback from running on bsd:
_ /usr/local/jdk1.3.1/bin/java -cp lib:lib/build:lib/pde.jar:lib/kjc.jar:lib/oro.jar:java/lib/ext/comm.jar PdeBase
_ need to use the 1.3 vm, and get a fake platform name
_ otherwise, goes looking for lib/pde_.properties or something
_ about box
_ bring up information about gpl, lgpl, and ibmpl
_ jedit syntax is under mit license
_ http://www.opensource.org/licenses/mit-license.php
_ different name for 'lib' folder because of libraries folder?
_ avoid some confusion for when describing the libraries folder to users
DIST / Windows
_ fix line endings in revisions.txt for windows
_ exe instead of bat to make exported apps run in 64-bit
_ http://code.google.com/p/processing/issues/detail?id=885
_ might not be necessary with new launch4j!
_ how to handle double-clicked files on windows?
_ big deal for psk and others
_ Update Windows icons for multiple sizes, implement them in the PDE
_ http://code.google.com/p/processing/issues/detail?id=632
_ problem with associating .pde files
_ http://code.google.com/p/processing/issues/detail?id=247
_ http://support.microsoft.com/kb/184082
_ http://msdn.microsoft.com/en-us/library/cc144175%28v=VS.85%29.aspx
_ http://msdn.microsoft.com/en-us/library/cc144104%28v=VS.85%29.aspx
_ http://msdn.microsoft.com/en-us/library/cc144067%28v=VS.85%29.aspx
_ In regedit: Navigate to Computer\HKEY_CLASSES_ROOT\Applications and find your .exe name. Navigate under its name to shell>open>command. In the Default change its location to the actual location of the executable, hit okay and then try and reassociate the file type as you normally would.
DIST / Mac OS X
_ check into apple.awt.graphics.UseQuartz again
_ both for p5.app and for the exported app
_ also need to look at the main to see what it's doing
<key>Properties</key>
<dict>
<key>apple.awt.graphics.UseQuartz</key>
<string>true</string>
</dict>
_ look into LCD rendering problems w/ Java (see if Lion still a problem)
_ fonts were showing up with very different fatness
_ check on new JDK and how it works on OS X
_ http://jdk7.java.net/macportpreview/
_ retina support
Have you added an NSPrincipalClass to your Info.plist, and are using a JavaApplicationStub with 64-bit?
<key>NSPrincipalClass</key>
<string>NSApplication</string>
Check out the desktop property. Unfortunately, it won't tell you *which* display is running in HiDPI, but it will stay up-to-date with live display changes (like a Retina-display being plugged and unplugged). If you query the property after each GraphicsEnvironment display change event, you should be able to live switch in and out of HiDPI.
java.awt.Toolkit.getDefaultToolkit().getDesktopProperty("apple.awt.contentScaleFactor");
_ cut/copy/paste while saving a sketch on goes to the editor, not save dialog
_ http://code.google.com/p/processing/issues/detail?id=997
_ problem with focus traversal and native windows on OS X
_ using JFileChooser fixes the problem (but is ugly)
_ we're breaking some mac human interface guidelines
_ should be using a menu factory to create menubar for all sub-windows
_ http://developer.apple.com/technotes/tn/tn2042.html
_ and the general warning dialogs are just ass ugly
_ (i.e. we really need those replacements for JOptionPane)
_ put stdout/stderr into ~/Library/Logs
_ and have a .log extension so it can be browsed properly
_ need to make sure that it's ok to write to logs dir..
_ probably being removed from future OS X versions
_ Horizontal two finger scroll doesn't work in OS X
_ also applies to horizontal scrolling on the mouse
_ http://code.google.com/p/processing/issues/detail?id=141
_ Exiting a sketch with Command-Q or File > Quit doesn't call stop() on OS X
_ http://code.google.com/p/processing/issues/detail?id=147
_ add a check to make sure that people aren't running from the dmg
_ doesn't actually cause any problems, so don't bother?
_ code to hide menubar.. just include JNA and call from there?
NSMenu.setMenubarVisible(false);
Then we used Cocoa via JNI:
if([NSMenu menuBarVisible]){
[NSMenu setMenuBarVisible:NO];
}
You can't do that from the AWT event thread. You need to do a -performSelectorOnMainThread to do that on the AppKit event thread.
Please see <http://developer.apple.com/mac/library/technotes/tn2005/tn2147.html> for more information, particularly the section about "Calling AppKit from AWT/Swing".
DIST / Linux
_ how to run "headless" from user Batuff
_ sudo apt-get install xvfb
_ Xvfb :2 -screen 0 1024x768x24 &
_ export DISPLAY=localhost:2.0
_ ./<myExportedProcessingApplication>
_ finish up debian package support (see the processing.mess folder)
_ http://code.google.com/p/processing/issues/detail?id=75
_ these bits need to be checked to ensure that they work on other distros
_ not being able to make a link to the processing app
_ argh.. more path and shell issues..
_ splash screen
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
DEVELOP
Things to fix on the source code side of things.
_ update license info to state gplv2 not v3
_ add Processing Foundation as 2012
_ add proper copyright and license information for all included projects
_ http://code.google.com/p/processing/issues/detail?id=185
_ list of license issues
_ http://code.google.com/p/processing/issues/detail?id=575
_ Internationalization
_ http://code.google.com/p/processing/issues/detail?id=593
_ l10n, i18n of environment/core - Arduino pushing on this one
_ write up code guidelines for project
_ make proper Eclipse style prefs to reinforce
_ write up guidelines for modes
_ i.e. don't mess with Sketch menu, put it in the mode menu
_ add notes to build instructions re: building core with eclipse
_ update the build instructions page
_ http://code.google.com/p/processing/wiki/BuildInstructions
_ build is currently broken for fresh checkout due to changes to file layout
_ something that gets fixed by 'make clean'
_ also test on windows and linux
_ p5 assets need to be licensed differently from the source
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
FUTURE
Notes for 3.0 (and later).
_ nurbs or other architecture stuff
_ force indentation - implement an option for beginners especially
_ indents and loops
_ or make the area light up gray as it's being worked on
_ Replace current editor with more advanced version
_ http://code.google.com/p/processing/issues/detail?id=1032
_ better text editor / live debugging (integrate Eclipse JDT)
_ line numbers
_ it's too difficult for students to debug their code
_ can the jdt be hooked in somewhat easily?
_ get rid of static mode? only setup/draw mode? or create project that way?
_ pro: simplify internal code, fixes some of the worst errors
_ con: people love it, most of the books use it heavily
_ add === for String.equals()
_ might be problematic since it might be opposite the javascript meaning
_ jer: it's a decent time to start talking abt references/vars
_ window menu
_ http://code.google.com/p/processing/issues/detail?id=545
_ restoring sketches
_ save window positions on quit, and restore them (w/ a preference?)
_ new windows use same mode and dimensions as topmost window
_ saved window position problematic with multiple monitors
_ http://code.google.com/p/processing/issues/detail?id=27
_ Closing the last window doesn't cause PDE to save it's position/contents/etc
_ http://code.google.com/p/processing/issues/detail?id=103
_ not remembering window size/placement preferences
_ http://code.google.com/p/processing/issues/detail?id=103
_ Blank sketch opened even if opening an existing sketch by double-clicking
_ http://code.google.com/p/processing/issues/detail?id=179
_ changing number of screens between run causes things to show up off-screen
_ so when running, check to make sure that things are out of the area
_ saved window positions.. if displays has changed, becomes a problem
_ record the display that it was on?
_ GraphicsDevice gd = frame.getGraphicsConfiguration().getDevice();
_ make sure the application is within the bounds of the current display?
_ (from 0, 0 to width, height)
_ messy since some displays have negative coords
_ http://code.google.com/p/processing/issues/detail?id=27
_ rename location is awkward, do it on the tab?
_ Resurrect the Eclipse plug-in project
_ http://code.google.com/p/processing/issues/detail?id=1031
_ improve the speed of file copying
_ use FileChannels, see FileInputStream.getChannel(),
_ and use transferFrom() or transferTo().)
_ could also use FileUtils in Apache's common io
_ http://commons.apache.org/io/api-release/index.html
_ go through libraries and clean things up
protected void finalize() throws Throwable {
try {
close();
} catch (Exception e) {
// do something
} finally {
super.finalize();
// more code can be written here as per need of application
}
}