Files
processing4/processing/todo.txt
2003-01-06 23:55:23 +00:00

1182 lines
40 KiB
Plaintext

0047
X reported by fdb and brendanberg
After creating about 27 sketches, proce55ing (0046 on OS X) no longer would startup, giving me the following error:
Exception in thread "main" java.lang.NullPointerException
at PdeBase.addSketches(PdeBase.java:598 )
at PdeBase.addSketches(PdeBase.java:615)
at PdeBase.rebuildSketchbookMenu(PdeBase.java:575)
at PdeBase.<init>(PdeBase.java:362)
at PdeBase.main(PdeBase.java:102)
Removing all sketches would solve the problem.
/ lots of problems in moving sketches over
i managed to run p5 from the applications folder once, but i think when i moved my sketches over from 0044 it broke: "uncaught exception in main method: java.lang.NullPointerException"
i tried reinstalling and running 'java -cp lib:lib/build: ...' and it worked fine (and would open from the icon afterwards)
again, after i moved my sketches over it broke permanently...
/ 46 dies when run from desktop on some machines [jes]
/ spaces in the dir name?
o is sketch.properties getting mangled on the mac?
X jedit text area
X change bg color for 'use external editor'
X enable/disable undo/redo
X don't let undo after setting text
X get focus after setText
X need to take care of auto-indent etc
X is setText goobering up on beautify?
X re-implement cut/copy/paste
X re-implement undo/redo
X get settings from PdeBase
X better defaults for syntax highlighting
X comments should be gray and not italicized
X disable end of line marker by default
X highlight p5 keywords
X setup, draw, loop as one class
X rect, line etc as another
X width, height, pixels as a third
X jump to top of document on load
X change style of ~ at end of document for unused area
X extra linefeeds is getting annoying for folks
X line endings joy
X how are line endings working during save?
X recursive sketch add that works properly and ignores crap
X crashes while starting
LaunchRunner Error] PdeBase.main(String[]) threw an exception:
java.lang.NullPointerException
at PdeBase.addSketches(PdeBase.java:598)
at PdeBase.addSketches(PdeBase.java:615)
at PdeBase.rebuildSketchbookMenu(PdeBase.java:476)
at PdeEditor.skNew2(PdeEditor.java:872)
at PdeEditor.checkModified2(PdeEditor.java:814)
at PdeEditor.checkModified(PdeEditor.java:797)
at PdeEditor.checkModified(PdeEditor.java:785)
at PdeEditor.skNew(PdeEditor.java:826)
at PdeEditor.init(PdeEditor.java:428)
at PdeBase.<init>(PdeBase.java:361)
at PdeBase.main(PdeBase.java:102)
at java.lang.reflect.Method.invoke(Native Method)
at com.apple.buckyball.app.LaunchRunner.run(LaunchRunner.java:82)
at com.apple.buckyball.app.LaunchRunner.callMain(LaunchRunner.java:44)
at com.apple.buckyball.app.CarbonLibApp.main(CarbonLibApp.java:76)
X undo/redo can go to far
X docs
X make a note that size() has to come first [nluken]
X look at the code that's created in build/
X known issues
X random freezes.. especially under windows
X wheel mouse is gone again, to return later
X describe rundown of constants pulled from pde.properties
X coloring for syntax
X sketchbook.path, very preliminary, still creates 'default'
X macos9 stuff
X check to see if swing is working properly
X get new release out, remove 1.3 specific stuff from textpane
X get syntax coloring debugged?
X talk to casey about better default colors
X scroll to beginning after setText()
X color not set for default text area with empty text
X color not set on 'new', setForeground won't do it
X probably reasonably simple fix, but not in time
X undo/redo
X should enable/disable as available
X undo-ing too much will empty the text area
X the setText is an undoable thing. grr.
X method to set a folder for the sketchbook
X when trying to use serial, provide error if things not installed
0048
................................................................
docs/faq
_ notes on debugging
_ run with java -Xint blahblah (turns off jit)
_ doesn't yet run under java 1.4 on mac (?)
_ p5 faq items: re midi support, msgs w/ adam hoyle in mail folder
_ also 'why p5' message from amit pitaru on 12/15/02
_ and p5 versus flash stuff
_ lists the main arguments, could be a useful document
bagel / bugs
_ getting mouse movement outside the window
_ delay() should sleep the thread [glen murphy]
_ it's sucking cpu and won't open a window until the delay is up
_ is quad strip broken or not behaving as expected? (me)
_ may be correct, it worked for nik
_ font smoothing (unless hint SMOOTH_IMAGES enabled) is broken
bagel / features
_ make bagel usable on its own as a drawing surface
_ needs to be used as a component, without applet
_ but retain functionality, ie. image i/o
_ finish fill mode of flat circle function
_ make into oval function
_ no longer require size() to come first?
_ beginQuads() beginLineStrip() ?
_ noCursor()
pde / bugs
_ re-enable wheel mouse
_ can't used random() inside constructor.. (Glen Murphy)
_ maybe related to problems loading images in constructors
_ images don't load during setup [reas]
_ weird comments bug (external file)
_ if image doesn't exist, spews null pointer exception and freaks
_ locking up environment/machine
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:99)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:10
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:16
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
pde / stability
_ need to check if volume is read-only, notify and quit if it is
_ people are trying to run off the disk image
_ lots of problems with the console
_ [maybe this needs to be a textarea?]
_ long lines seem to be trouble
_ also printing of objects, esp when null, in jdk 14
_ exception when trying to write to stdout
_ split KjcEngine into three parts
_ how to communicate with other applet/jre when it's been launched
_ preprocessor problems -> switch to java cup (one day's work)
_ subst Image -> BImage, Font -> BFont
_ need to pay attention to when running from read-only drive
_ reported by brandenberg
_ "p5 will launch from the disk image, but will
_ not draw the sketch name bar doesn't appear"
pde / features
_ splitints, et al.. have another version to specify what to use
_ when the value gets a NumberFormatException.. ie.
_ splitInts("blah blah blah", ' ', 0);
_ and splitFloats("blah bl ah blaha ", ' ', Float.NaN);
_ shortcut to walk through history, ala photoshop (ctrl-alt-z)
_ ctrl-f for find, g for find next, h for next occurrence of selected
_ using external files
_ "look up in reference" function for selecting keywords
_ support 'classes' folder, through the use of a classloader
_ could also be done by launching external java app
_ all .jar files etc are added from this folder automatically
_ will need doubles for genomics work. ugh.
_ this is just enable/disable float stuff
_ may need to start putting properties somewhere besides lib
_ home directory (or preferences folder under macos9)
windows
_ add -Xmx128m -Xms128m because people running out of memory (pitaru)
_ tried with a 3k x 1k image and things broke
_ maybe command line read properties from a file in lib
_ need splash screen, startup takes a long time
_ windows 95/98/ME seems to be broken
_ ME seems to be very broken
_ lockup/freezes (mKoser and zeitgeist)
_ jre icon not appearing in the systray
macosx
_ is sketch.properties saving properly under macosx?
_ reference doesn't launch on mac (mKoser)
_ Event.consume() doesn't work on entry fields
_ manifests itself in sketch naming, can't be constrained
_ may not be the case under swing?
_ escape key not quitting presentation mode
_ no events seem to be coming through at all
_ text in editor is anti-aliased, allow to turn off
_ also make text courier instead of monospaced
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
super.paint(g2);
}
macos9
_ set file type for html files
_ why is bbedit the type for the other files? make simpletext
_ reference doesn't launch on mac (mKoser)
linux
_ look for jdk 1.4 to use instead of 1.3
_ make sure javacomm gets in there
_ test it a little more to make sure it works (cygwin x sucks)
OTHER NOTES / API TO ADD
_ copyArea, copyImage
_ method of collapsing history for useful versions
_ archive associated files as well.. data/etc
_ text editor - color coding is the big issue
_ ceil/floor
_ perlin
_ strokeWidth - too buggy to document currently
_ update/noUpdate
_ instead use void update() as a function like loop and draw
_ third kind of applet for interactive apps that have to be queried
_ clear/noClear
_ just use background, and make people fill a rect
_ if they need a bg with noBackground()
_ use syntax coloring to highlight BApplet's class variables and functions
_ possible dist() and constrain() functions
_ lights - not much happening
_ camera - wait for someone to implement
_ fonts - api should be improved as part of additions and rewrite
_ does a[3] == Float.NaN work?
FURTHER AHEAD
_ 'image' is too generic a variable to have inside BApplet
_ check for others that shouldn't be used (pixels? width? height?)
_ or have a way to syntax color them
_ put processing/bagel into sourceforge cvs FOR BETA
_ probably after kjc/engine stuff restructured
_ bring cbagel up to par
_ modify cbagel for opie
_ would be interesting to build pre-processor for java p5
_ but that converts into cpp version of bagel apps.. mmm
_ update cbagel to current bagel status
_ add update() style application (called once at start, then only when queued)
_ still a threaded app? just doesn't update inside loop
_ get gcc tied into processing
_ java disassembly inside p5
_ and assmebling it back again
_ locking up on run (under win2k? others?)
_ rare but present, every 100th time or so
SUGGESTIONS
_ make versions available w/o fonts and jre
_ lock feature for present mode (part of export to application?)
_ error messages with link to what's wrong
_ moving sketchbook folder for lab environments
_ lots of ui ideas from adrien in the bboard
_ can't copy text from console directly
o make note in readme about stderr.txt and stdout.txt
_ Rename the button options to verbs, e.g. instead of "Do you want to
save? yes/no", change it to "Document Has been modified -- Save
changes? Save/Cancel/Don't Save". Look at Aqua Human Interface
guidelines (http://developer.apple.com/ue/switch/windows.html, tip 9)
////////////////////////////////////////////////////////////////////
BAGEL / high
b _ better access to projX et al
b _ what's a better name? calcX? or write to an array?
b _ projectX, projectY, .. or projectedX ?
b _ also projectSize should just be project()
b _ images drawn from center don't work for simage()
b _ currently calling slower image routine
BAGEL / high & time consuming
b _ implement clipping planes and clipping of objects
b _ things are flying into the camera and halting apps
b _ color won't set for fonts
b _ alpha
b _ concave/complex polygon shtuff
b _ eventually POLYGON auto-detects convex/concave polygon
b _ also add POLYGON_CONVEX and POLYGON_CONCAVE
b _ box is not opaque
b X problem is that lines are drawn second
b X one pixel lines have no z value.. argh
b translate(58, 48, 0);
b rotateY(0.5);
b box(40);
BAGEL / medium
b _ setting stroke width on circle makes odd patterns
b _ area copying functions
b _ copyPixel(x, y, to_x, to_y)
b _ copyArea(x, y, w, h, to_x, to_y)
b _ copyImage(x, y, w, h, to_x, to_y)
b _ bresenham (flat) oval function
b _ NullPointerException apparently when things way offscreen
b _ i.e. glyphrot with scale set to 4
b _ or at least that things get ridiculously slow
b _ clipping issues here.. but also something in scan converter
b _ not clipping areas from offscreen
b _ huge geometry slows things way down
b _ adaptive sizing of circle segmenting based on rendered size
b _ make size() available throughout
b _ stroked version of sphere is just a circle
b _ noClear -- implement with noBackground
b _ need to set bg color even if updated
b _ update/noUpdate() could also be done to force explicit updates only
b _ for ui-type applications that don't need to continually redraw
b _ keypressed is not persistent
b _ key repeat in os vs. how java handles it
b _ search java faq for info about getting around it
b _ curves
b _ curveMode to tweak the s parameter of catmullrom
b _ setting accuracy of curve segments
b _ evaluate curve into a buffer
b _ curveVertex() not to require 4 points..
b _ automatically doubles on endShape() or next call to vertex()
BAGEL / medium & time consuming
b _ anti-aliasing
b _ rewrite line and stroke code, it's a buggy mess
b _ lines become 2 pixels thick after a 3D transform
b _ better handling of single-pixel special case
b _ box is not filling properly
b _ problem is using single pixel, flat line with no z
b _ illustrator exporting
b _ version of Illustrator.java that uses bagel api
b _ sorting of polygons/lines on simple painters algorithm
b _ better lighting model to show darkness at various depths
b _ maybe just ultra-high res bitmaps from gl
b _ version of ProcessingApplet that replaces g. with ai. or pdf.
b _ picking
b _ ability to write data other than image into the buffer
b _ user can introduce new kinds of buffers at will (!)
b _ lists of names of objects, or the 'line number' buffer
b _ but how to determine *where* on object the hit occurs?
b _ draw mode issues.. size and background must be int/float constants
b _ might be a better 'mode' for bagel so bkg and size cmds work
b _ rather than app being enclosed in beginFrame/endFrame loop
BAGEL / lower
_ support for moving the camera around
_ try using jgl inside processing
_ illustrator, postscript or pdf export?
_ export to static flash-based graphics
_ function to evaluate bezier or catmullrom points
_ used heavily in genome valence
_ why is every other pixel missing from mouse events?
_ fixed fonts are screwed, should only work at screen resolution
_ getStream for the filename doesn't work for directories
_ getfont("fonts/blah.fbf") refers to blah.raw, but that
_ also needs to be searched for in the fonts/ dir..
_ fast(er?) version of bagel that just uses java graphics
_ but leaves out many features
_ line endcaps and line joins
_ move math functions into utility library associated
_ with bagel, because those will be useful on other bagel platforms
_ pApplet will call BagelMath.whatever, so still looks like cos()
_ build in second matrix type: 2d affine
_ make sure line() commands don't try to have a fill
_ write code for reading uncompressed b/w tiff images
_ incorporate for fixed width fonts
_ setting accuracy of circles/sphere
_ write shearing function
_ optimize rotation functions
_ test winding polygons in different directions
_ test lighting to see how it compares with gl
_ non-homogenous colors for beginShape()
_ currently disabled b/c homogenousColors not set false for vertices
_ and code not written for curve vertices
_ better lockout inside beginShape() to keep other things from happening
_ when stroke in use, stroke letters (currently stroke doesn't affect
_ try with 1.4 frame buffer stuff to see if it's faster
_ will 1.4 work on osx?
_ way to screen grab at higher resolution
_ method for rendering at higher res and then scaling down
_ (even if this causes signficant performance hit)
_ look at glut for other needed shapes
_ setting a fill color when drawing an image should affect the image
_ or maybe image.setColor or setTone to mix a specific color in
_ live video editing, wanting things more procedural
(C)BAGEL WORK
_ color() has a different meaning
_ formerly a normalized 0..1 float to a packed rgb int
_ now it's a color according to current standards
_ float_color is a private version of the previous color()
_ curve was broken (cvertexIndex being reset)
_ curve() now doubles start/end points to be more logical
_ (fits all four points by drawing six points)
_ try screengrab using malloc and/or gobs of extra memory
_ debug the version inside bagel b/c it's simpler
_ bagel needs to be able to resize itself
_ also to address screen as if it's another size
_ is that simply a matter of changing the viewport?
_ letterboxing as appropriate
_ build windows app for testing bagel c++ ... -lgdi32 for cygwin
_ updates from p5 api changes
_ triangle() 6 parameters
_ quad() 8 parameters
_ rect/rectMode again
_ new color solution
_ color() -> uses colorMode
_ red/green/blue() hue/saturation/value() functions
_ getPixel/setPixel
_ swap in 'color' as an int
_ color c = #67aa78
_ keyDown(), mouseDown(), lastMouseX, lastMouseY
_ degrees(), radians()
_ fill, background, stroke all with int version for packed rgb
_ why won't glut shut up about modifiers?
_ add millis() to bappletgl that returns glut millis
_ BGL_PATH should turn paths into os9 ready paths for os9
_ or whatever else for the other platforms
_ macos9: font = loadFont(":fonts:Univers55.vlw");
_ or could use a "File" style object
_ or do all path conversions internally:
_ loadFont, loadImage.. already do gz decoding
_ makingmovie/screengrab should be moved into bapplet,
_ along with the stuff for making an ai screen grab
_ mouseX/lastMouseX should be handled automatically
_ mousePressed() function may not need vars passed in
_ or maybe the only vars are alt/left-right/ctrl/shift
_ maybe mouseevent is passed in, but not used in the
_ function unless people want advanced features
_ mouseX/mouseY/lastMouseX/lastMouseY all set by parent class
_ lastKey and lastKeyCode -- not as useful as the mouse stuff
////////////////////////////////////////////////////////////////////
PDE / high
a _ text editor? jedit's textarea class? hmm? hmm?
b _ for 'java' mode, try run using external vm
b _ would need to get error output stream from app.. argh
b _ only allow under win/osx/linux
b _ not clear how to kill the process.. does that work w/ 1.3?
b _ class unloading not happening in java mode
b _ need to add randomizer to even non-self gen'd classes
b _ or figure out how to unload old classes.. grr
b _ lockup when something missing from classpath on dynamic load
b _ but makes no error.. peditorconsole probably swallowing it
b _ change writeJava/start functions to be combined in kjc
b _ but the rest inside PdeEditor that takes care of launching/placing
b _ online signup cgi for people to add themselves to the list
b _ see about setting up simple bug tracker/feature system
b _ queue for people reporting things externally
b _ bugzilla but simpler
b _ would also be nice for people to be able to vote on features
b _ save serial port on close
b _ probably should doClose() on new/open instead of doStop()
PDE / medium
b _ 'save as' from examples puts into examples dir.. :(
b _ option to delete current project (trickier)
b _ also needs to have method for verify.. blech
b _ beautify is broken
b _ sketch: sketch-000 is dumb
b _ check logs to see where we're getting traffic from
b _ event to explorer to open 'parts' directory of project
b _ option to toggle console on/off (not just in properties, but realtime)
b _ work on editor buttons
b _ play button not really working
b _ never un-highlights, especially with exceptions
b _ also when using draw() instead of loop()
b _ applet needs to notify runner that it has terminated
b _ make PdeEditorButtons wait until mouseup to change
b _ (currently doesn't feel as good as it could)
b _ look into using serialporteventlistener for simpleserial
b _ may help with problems due to threading/synchronizing
b _ licensing issues with kjc (before public release)
b _ font usage/substition solution
b _ write code to bind/convert java fonts
b _ best would be freetype or jdk 1.3/1.4
b _ java freetype? jni freetype to build texmap fonts?
b _ look at flash file format? (does it have kerning?)
b _ example: multi-user server app (shared whiteboard)
b _ example: basic network app
b _ file i/o utility classes
b _ read as set of lines, read as cells in grid, read num sequence
b _ then methods for writing all of the same
b _ exceptions in draw() apps aren't caught
b _ the program resize(200, 200); just does nothing (doesn't complain)
b _ menu option to change username/login
b _ if new user, offer to rename 'default' if it contains things
b _ user name is changed by clicking and typing
b _ after user hits 'enter', checks to see if user exists
b _ if not, pops up message asking if they want to change
b _ message goes in same spot as error/status label (turns yellow?)
b _ if user says 'no', then
b _ ability to export 'applications' (not just applets)
b _ application can still do serial (qt, other stuff?)
b _ applet runs in browser, though applet on cbagel is everything..
b _ include main class info for executable jar file with jdk > 1.2
b _ not difficult to do, just some tweaking once applet export works
b _ wrapper that invokes the applet using a copy of the jre
b _ main() method needs to set layout manager if jexegen is to be used
b _ (msft vm defaults to null layout manager)
b _ also make sure pack() is happening
b _ kjc is really frustrating about some of its error/warning msgs
b _ erroneous errors from kjc regarding 'var not inited'
b _ is there any way to disable this message?
b _ talk to simon about error streams and kjc
b _ better piping of output from kjc
b _ modify kjc to take a PrintWriter, instead of current hacks
b _ might be able to set default values for vars using perl5subst
b _ ability to include other code from sketchbook directory
b _ compile entire sketchbook on startup, check for new files on compile?
b _ Compiler.disable() message is weird and doesn't always work
b _ probably just remove it for now
b _ bug in paren balancing
b _ paren problems comes from overusing parens (too many closing)
b _ image[first[i], 0, 0) hitting last paren causes jump to top
cosmetic [lower priority]
b _ run button can be highlighted to show how long thread is alive
b _ the thread would be the one inside bapplet that keeps it going
b _ only copy data files into build when there are changes
b _ make sure the still relevant files aren't removed
b _ setLastModified on the files after copying (jdk13)
b _ editorbuttons: if nothing selected on popup, need to deselect
b _ editorbuttons: if export fails (compile error) need deselect
b _ may want to throw exceptions from bagel
b _ but catch them inside bapplet--as part of making things easier
pdebase cleanup [lower priority]
b _ remove 'encoding' crap from PdeBase
b _ only existed b/c of reading as bytes and not using jdk11 methods
b _ cleanup program/inline_program crap.. take out scheme stuff
b _ better readFile/loadImage inside PdeBase
b _ temp array should be resizable inside readFile
b _ might just use ByteArray streams
b _ use getresource for loading image
b _ remove Editor's frame instance, replace refs with PdeBase.frame
PDE / low
_ 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?
_ shouldn't do so much work (redrawing in loop) if waiting for input
_ mode for when no full animation taking place
_ otherwise machine is continually maxed out while app is running
_ quicktime exporter or image sequence export
_ fairly quick--just use code from dbn
_ stop() method in applet should stop kjc environment
_ should be able to call stop() to 'quit' an applet
_ run java code besides processing applets
_ if not processing applet, look for a main(), no main give an error
_ dbn2p5 converter.. ooh!
PDE / dist
b _ need document icons
b _ figure out about distributing source
b _ kjc is gnu, so source needs to be available
PDE / windows
b _ windows launcher/exe
b _ splash screen
b _ build from command line, using gcc
b _ file association for .pde files
PDE / macos
b _ handlers for basic events
b _ MRJAboutHandler (just show splash screen)
b _ image for 'about processing'
b _ MRJPrefsHandler (open pde.properties in a text editor)
b _ MRJQuitHandler (confirm quit, may need to be in another thread)
b _ MRJOpenApplicationHandler and MRJOpenDocumentHandler
b _ especially the open document fella
b _ under osx, app won't get doc unless app already launched
b _ dataInputStream, setUseCaches on the url to false
b _ URLConnection.setUseCaches(false)
b _ parent.obj.close() on the url
b _ set file type/creator for .pde files.. TEXTPde1
b _ also for .jar and .html for files on export
b _ not sure whether to enable this for osx or not..
PDE / macos9
b _ make sure editor window is front so that error line highlights
PDE / macosx
b _ splash screen
b _ remove 'quit' from file menu
PDE / linux
b _ splash screen
b _ test serial with ibm vm and all
PDE / features
_ might be nice to have some notion of plugins for pde
_ color picker or other things written by folks
_ add all .jar files in lib/plugins on startup
_ make some kind of internal color picker
_ could be a separate window that's always around if needed
_ regexps: http://javaregex.com/cgi-bin/pat/tutorial.asp
_ a better editor:
_ line numbers like bbedit
_ syntax coloring
_ emacs indents and key commands
_ http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/je/index.html
_ want emacs-style editor that's faster loading than emacs
_ tweak updater a little bit so it's more likely to work
_ use numbered versioning?
_ give updater feedback (progress dialog, error msg)
PDE / science fiction
_ toggle for showing a function name each time its hit
_ toggle for showing line numbers within a function
_ i'm here messages, tie in with breakpoints for debugger
_ lightweight debugger, doesn't slow down, runs in back
_ toggle to show attr/value for some var in simple way
_ comments as debugging descriptors, output to console, shown in context
_ comments as naming for shapes drawn after it,
_ or some other model of naming based on inserted text with "" or // or #
_ could fit nicely with printf-style statements and comments
_ comments would contain descriptions //!blah for printing and formatting
_ sketchbook - doodling/scribbling area.. since wacom tablet easily accessible
_ look into maxx programming
_ single or multi-file cvs, not based on directories
_ i.e. i want illustrator.java for a project
_ version # stored in .java file
_ if a new version is available, asks 'do you want to update?'
_ multi-file: quicksort + sortable
_ check out interface builder for interesting tidbits
DOCS / guide
X _ document imageMode, planeMode, ellipseMode
X _ 'rot' example not working in release 18
_ list of reserved keywords
_ make note of functions/variables used by ProcessingApplet
_ using them in your app will break things (i.e. init())
_ explain using inner classes and using non-public classes
_ start 'errors' section
_ NullPointerException inside setup usually means no size()
_ ability to write functions and inner classes
_ mention ability to use import statements in java mode
_ ability to do real (but not public) classes in same document
X _ make note in documentation about getting access to pixel array
X _ pixels[] is in ProcessingApplet
_ check to see if get/set functions in applet actually work
_ fix documentation appropriately
_ image formats supported (gif and jpeg)
_ if image doesn't load, just prints an error on console
_ notes about running on win98 and that stupid startup exception
_ make note in documentation about convex polygons
DOCS / technotes
_ bug in sun vm for freaking out
_ also happened with ibm vm.. grr.. (or was it a path problem?)
_ fixed width font format as technote and how to use
_ using runtime.exec to run .ai files
_ code to automatically open generated .ai files (exec(..ai))
_ debugging serial code
_ hyperterminal - watching for binary garbage vs ascii text
_ first debug (maybe even using ascii) and watch in hyperterminal
_ or ship pooterm along with processing
_ flicker - often ascii instead of binary
_ timing of sleep, size of message, timing of write
_ starting processing first, then stamp
_ using transformPoint
_ using curves
_ making things faster
_ memory running out, using ms and mx
_ noBackground() if you're covering everything
_ converting to/from ascii/decimal/hex/binary
DOCS / reference
_ adding lights
_ control of position/color of default lights
_ controlling camera movements
_ mcguffin sent some notes about this
_ multmatrix/identity
_ constants besides PI, TWO_PI
_ min/max with 3 parameters
_ if (a) ? 3 : 4
_ formatting printf-style things
_ audio input
_ audio synthesis
X _ just saying 'millis' in processingapplet, instead of getMillis()
_ keyPressed, keyReleased, mousePressed, mouseReleased
MISC / building
_ build a linux/x86 release
_ write converter for java bagel -> cpp version
_ include #ifdefs for c stuff
_ fix buzz.pl to not create ../../bagel
_ how to use ssh identity file to maintain auth for brancusi
_ write dist.bat for releases
_ don't forget to update 'export' dir with processing releases
_ write code for automatic macintosh releases
MISC / code tidbits for scrapbook
_ delayUntil would be nice to have
_ but at some point there has to be a cutoff
_ have a library of useful code that people can add to programs
_ otherwise things are too simple, and env is a crutch
_ quicksort should probably just be made into 'sort' class
_ it's the only one ever used
_ stringutils.split is a useful one
_ readFileLines et al
_ translateMiddle() ? to move to the middle of the screen?
_ perlin noise function
_ read table/csv formatted data into a matrix
_ pseudo-database format version of this that stores indexes to file
_ rather than loading the whole thing at once
////////////////////////////////////////////////////////////////////
LANGUAGE
foreach String line (lines)
foreach (String line = lines)
foreach (String line, lines)
foreach (String line) of lines
..would translate to..
for (int i = 0; i < lines.length; i++) {
String line = lines[i];
}
for (int i = 0..10) or for (int i, 0..10)
foreach (int i) of 0..10
for (int i = start..stop)
..translating to..
for (int i = 0; i < 10; i++)
for (int i = start; i < stop; i++)
emit(arrayImageX) or printvar? or vprint?
..would translate to..
println("arrayImageX = " + arrayImageX);
emit(arrayImageX, arrayImageY)
..would translate to..
println("arrayImageX, arrayImageY = " + arrayImageX + ", " + arrayImageY)
////////////////////////////////////////////////////////////////////
BXSocket, BXServerSocket
BXNetwork
BXSerial
> - playback of samples :
> - methods: startSound (loop_num, start_ms, end_ms) , stopSound(),
> volume() , pan()
> - properties: duration
> - formats: wav ( mp3 would be nice for compression )
> - events: onSoundEnd(), onSoundLoop()
>
> - synthesis (generating waves, filtering waves) would be wonderful to have
> as well, but i think that samples should come first.
BXSound, BXSampler or BXAudio
play aiff or mp3 sound with a single command
play buffer of samples with a single command
full class allows play/pause/more advanced loading
BXMovieInput/Output or BXVideo or BXQuickTimeOutput/Input
BXMovie and BXCamera?
BXImageIO, BXTiffImage
BXDataFile (csv or tab separated data)
BXDataMatrix
BXDatabase, BXDatabaseCache (keeps queries to fill out table)
MISC / things that break often/things to test
_ handling of key events (both as applet and in application)
_ per-vertex coloring for different kinds of shapes
_ that each shape type works as expected
_ what if one short or one too many vertices?
_ transforms are affecting geometry
_ i.e. are line and point working in 3D?
_ why did i think that z was backwards from gl?
things noticed while casey watched him using the software
X _ if no 0 before decimal place in a number it breaks
X _ display window should have separate close box
X _ save window positions on closing (due to crashing)
X _ title of the file should be shown
X _ needs to be a menubar
_ text editor is quite bad (hiding cursor thing)
biggest problems from french workshop
_ syntax more difficult than expected: semicolons and braces
_ part is translation issue--wasn't a quick fix
_ curly braces weren't on the keyboard
_ encouraging people to indent their code for clarity
_ slow to understand 'blocks'
_ translation issue but could be aided by visual cues in editor
_ might be better to use braces on separate lines to reinforce
_ couldn't enforce people working on specific exercises
_ too many cubes.. people playing with 3d before understanding it
_ would be nice to have examples for all concepts on site
_ or in a small printed book that serves as a reference
_ courseware not complete--difficult to collect assignments
questions to resolve
X _ is it necessary to have fullscreen option on toolbar anymore?
_ what's better than POLYGON_CONVEX and POLYGON_CONCAVE?
_ should we use jdk 1.3 or msft vm?
teaching 3D
_ expectation for 3D objects is that they begin in the center
_ rather than a translate(W/2, H/2) then draw rotating cube
JAVA BUGS
_ cursor disappears in textarea and doesn't reappear until re-entry
_ windows: jre 1.3.1_03 through 1.4.0_01
UNSORTED
_ make processing useful/usable
_ start working on writing pdf files
_ loading images/files from same dir as .pde file
_ option to use jikes
_ use external editor or write a usable one
_ write simple class for lcd panel
_ build adapter to plug directly into db9 serial port
_ figure out characters used on screen by default (check web)
_ make unicode converter from unicode char -> lcd screen bytes
_ hook up lcd screen to power/serial port to test
_ code to reprogram lcd screen
_ look through rabbit api
_ look into integration of cmd line compiler
_ check out flash for its text editor
_ write function to swap different names for Proce55ing
_ use for window title
_ simple app that does swapping of letters as an animation
dammit we need a text editor.
gonna get sick of people bitching about it.
also an interesting possibility (for tech-minded only)
use terminal emulator, and run iostream from process
use pooterm stuff for the emulation window
key commands would conflict
but could use emacs under osx, linux
use nano (maybe emacs?) under windows
and nothing for macos9
BUILDING P5
-> where to install jikes, jre, others?
jre may need to be back in cvs, but annoying for dist
because of all the CVS directories that it makes
cvs co processing
cd processing
cvs update -P
# optional, if you're only doing java dev
rm -rf web
need to have rt.jar from jdk 1.1 and comm.jar in the CLASSPATH
to build bagel.. just gotta be that way, it's too messy otherwise
need cygwin: zip, unzip, perl
little guys: rm, cp, mv, tcsh
build jikes for cygwin, use version 1.14, later than that has bugs
./configure, make, make install
add $cygwin/usr/local/bin to path
dist directories contain only the files specific to that platform
(those are the ones checked into cvs)
when dist.sh is run:
1) a copy of the dist dir is created, renamed 'processing-nnnn'
2) the remaining files are added (buttons.gif, pde.properties)
3) files are lf converted (i.e. notes.txt)
_ comm.jar now needs to be in CLASSPATH for build environment
_ macos may be superior platform for building
_ retain unix file permissions for linux
_ resource fork goodness for the mac
_ hhmmm
_ for jgl version of bagel, jgl.jar needs to be in classpath
////////////////////////////////////////////////////////////////////
//FILE
New Open (works like standard open for most programs and pops up window)
Open Recent
Save
Save as
Export
-----
Proce55ing.net
Reference
-----
Quit
//CONTROL (this is the terminology of Flash for these items)
Run
Present
Stop
-----
Step Forward (farway future)
Step Backware (faraway future)
//CODE or Program
History
Clear History
Beautify
Use External Editor
-----
Serial Port
//SKETCHES or SKETCHBOOK
(Default items in a list)
Examples >
The "open" button on the toolbar then becomes an "open sketch" button and it acts just as is
currently does.
there could also be a menu:
ENVIRONMENT
Serial Port
Use External Editor
////////////////////////////////////////////////////////////////////
jdk 1.3 packages
java.applet
java.awt
java.awt.color
java.awt.datatransfer
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.im
java.awt.im.spi
java.awt.image
java.awt.image.renderable
java.awt.print
java.beans
java.beans.beancontext
java.io
java.lang
java.lang.ref
java.lang.reflect
java.math
java.net
java.rmi
java.rmi.activation
java.rmi.dgc
java.rmi.registry
java.rmi.server
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.util
java.util.jar
java.util.zip
javax.accessibility
javax.naming
javax.naming.directory
javax.naming.event
javax.naming.ldap
javax.naming.spi
javax.rmi
javax.rmi.CORBA
javax.sound.midi
javax.sound.midi.spi
javax.sound.sampled
javax.sound.sampled.spi
javax.swing
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
javax.swing.table
javax.swing.text
javax.swing.text.html
javax.swing.text.html.parser
javax.swing.text.rtf
javax.swing.tree
javax.swing.undo
javax.transaction
org.omg.CORBA
org.omg.CORBA_2_3
org.omg.CORBA_2_3.portable
org.omg.CORBA.DynAnyPackage
org.omg.CORBA.ORBPackage
org.omg.CORBA.portable
org.omg.CORBA.TypeCodePackage
org.omg.CosNaming
org.omg.CosNaming.NamingContextPackage
org.omg.SendingContext
org.omg.stub.java.rmi
jdk 1.4 packages
java.applet
java.awt
java.awt.color
java.awt.datatransfer
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.im
java.awt.im.spi
java.awt.image
java.awt.image.renderable
java.awt.print
java.beans
java.beans.beancontext
java.io
java.lang
java.lang.ref
java.lang.reflect
java.math
java.net
java.nio
java.nio.channels
java.nio.channels.spi
java.nio.charset
java.nio.charset.spi
java.rmi
java.rmi.activation
java.rmi.dgc
java.rmi.registry
java.rmi.server
java.security
java.security.acl
java.security.cert
java.security.interfaces
java.security.spec
java.sql
java.text
java.util
java.util.jar
java.util.logging
java.util.prefs
java.util.regex
java.util.zip
javax.accessibility
javax.crypto
javax.crypto.interfaces
javax.crypto.spec
javax.imageio
javax.imageio.event
javax.imageio.metadata
javax.imageio.plugins.jpeg
javax.imageio.spi
javax.imageio.stream
javax.naming
javax.naming.directory
javax.naming.event
javax.naming.ldap
javax.naming.spi
javax.net
javax.net.ssl
javax.print
javax.print.attribute
javax.print.attribute.standard
javax.print.event
javax.rmi
javax.rmi.CORBA
javax.security.auth
javax.security.auth.callback
javax.security.auth.kerberos
javax.security.auth.login
javax.security.auth.spi
javax.security.auth.x500
javax.security.cert
javax.sound.midi
javax.sound.midi.spi
javax.sound.sampled
javax.sound.sampled.spi
javax.sql
javax.swing
javax.swing.border
javax.swing.colorchooser
javax.swing.event
javax.swing.filechooser
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
javax.swing.table
javax.swing.text
javax.swing.text.html
javax.swing.text.html.parser
javax.swing.text.rtf
javax.swing.tree
javax.swing.undo
javax.transaction
javax.transaction.xa
javax.xml.parsers
javax.xml.transform
javax.xml.transform.dom
javax.xml.transform.sax
javax.xml.transform.stream
org.ietf.jgss
org.omg.CORBA
org.omg.CORBA_2_3
org.omg.CORBA_2_3.portable
org.omg.CORBA.DynAnyPackage
org.omg.CORBA.ORBPackage
org.omg.CORBA.portable
org.omg.CORBA.TypeCodePackage
org.omg.CosNaming
org.omg.CosNaming.NamingContextExtPackage
org.omg.CosNaming.NamingContextPackage
org.omg.Dynamic
org.omg.DynamicAny
org.omg.DynamicAny.DynAnyFactoryPackage
org.omg.DynamicAny.DynAnyPackage
org.omg.IOP
org.omg.IOP.CodecFactoryPackage
org.omg.IOP.CodecPackage
org.omg.Messaging
org.omg.PortableInterceptor
org.omg.PortableInterceptor.ORBInitInfoPackage
org.omg.PortableServer
org.omg.PortableServer.CurrentPackage
org.omg.PortableServer.POAManagerPackage
org.omg.PortableServer.POAPackage
org.omg.PortableServer.portable
org.omg.PortableServer.ServantLocatorPackage
org.omg.SendingContext
org.omg.stub.java.rmi
org.w3c.dom
org.xml.sax
org.xml.sax.ext
org.xml.sax.helpers