Files
processing4/processing/todo.txt
2003-05-28 00:06:46 +00:00

1336 lines
49 KiB
Plaintext

0055
X incorporated (but not yet tested) net code
X how to include sign with nf()
X whether to include room, and whether + or ' '
X use nfs (number format signed), with a bool for + or spc
X does a[3] == Float.NaN work? (for testing with splitFloats)
X no, if NaN, then comparison will always return false
X sort() functions for arrays of ints, floats, doubles, and Strings
X add casey to sourceforge with admin privileges as 'reas'
X fix wheel mouse handler so that it works under jdk 1.3
X no difference between 1.3 and 1.4 code
X add WheelHandler to cvs
X video
X checkin video code to cvs
X video integration (need to work with dist.sh for it)
X how to get qtjava into the classpath on windows runner
X incorporate second set of code for file i/o
o video capture tested and running on macos9, macosx, windows
o video file reading tested and running on macos9, macosx, windows
o net code tested with client/server examples
o sound code tested and running on macos9, macosx, windows
X constrain() still in the motion04 sketch
X http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1050131287
X why is every other pixel missing from mouse events?
X make a note about mouse movement skipping two pixels on windows
X need to set mouse properties for higher precision
X we actually recommend using java version 1.3 on the mac
_ linux version doesn't work on rh9.. update the jvm
_ writeBytes, writeStrings (actually saveBytes/saveStrings)
_ kill video, net, etc on closing applet
_ some flag to know whether applet is online or not
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051758365;start=0
mac
_ modify classpath to use 1.4 for compiling
_ modify make.sh to include JDK14 flag
_ double-check to see if wheel mouse is working
_ video: get qtjava stuff working, modify make.sh to include paths
_ also run.sh, the classpath on Proce55ing.app
_ had to disable MRJFileUtils stuff on osx at last minute before 53
_ seems that file names changed between 1.3 and 1.4
_ need more comprehensive list of 'known bugs'
_ present mode, click background window and front window hides
_ wasn't present in jdk 1.3, something changed in 1.4
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1050163961
_ file://localhost/D:/jdk-1.4.1_02/docs/api/java/awt/doc-files/FocusSpec.html
_ repair lines (even if slow)
_ single pixel lines have no alpha and no z
_ fix all the random line types to support alpha
_ smooth images drawing strangely (missing first line of pixels)
_ also smoothed even if not distorted
_ aliased and anti-aliased images don't line up
_ text (text04) marching around strangely
_ problems with u/v are likely to also be there for colors
_ u/v should be affected by w for proper perspective
_ nonsmooth frame around circle gets drawn 8x away
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1050451728
_ texture weirdness at 90 degree angles
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1050650262
_ sphere() and other polygons don't connect flush with one another
_ could hack by making each slightly larger than necessary
_ should image(img, x, y, alpha) work instead of using fill?
_ or maybe another word for fill/stroke.. apply? colorize?
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1050323800
DATA TIDBITS (for my own work, but also generally useful)
_ split to take strings (ie. for ", ")
_ versions of loadStream/loadBytes etc that use streams and/or urls
_ file output, save strings or pile of bytes
_ quicksort should probably just be made into 'sort' class
_ it's the only one ever used
_ can this be done using an inner class?
_ 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
_ more advanced splitting of files into rows/cols uses another class
_ other class also has concept for random access of lines
_ by storing the line positions, can access without loading all
_ into memory because some files will be too large
_ need some model for i/o that makes more sense
_ getting whole words from serial, network, and files
_ or buffers of specific length with a sync byte
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
GRAPHICS LIBRARY
A hybrid of OpenGL (3D Graphics) and some aspects of Postscript (Fill, Stroke)
The graphics library is called Bagel, which is an internal name.
BAGEL / Bugs
b _ bezier is broken for > 4 points
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042201137
b _ image(img, x, y) in CENTER_DIAMETER is actually center radius
b _ should make sure that x, y just makes it proper size
b _ simage() is screwy..
b _ its invocation is broken (image_mode can't be two things at once)
b _ doesn't actually use image_mode for placement
b _ also doesn't support RGBA
BAGEL / Graphics API Additions
b _ hiding the cursor. noCursor(), cursor()
b _ add keyCode to BApplet (quick addition)
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=post;num=1043834995;title=Post+reply;start=
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1051285219
b _ perlin noise 1D. noise()
b _ images and pixel copying (api for this?)
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 _ resize of bimage, make a copy of image?
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1050328581
b _ getPixel() and other fxns for BImage
b _ curves
b _ curveMode(), curveMode to tweak the s parameter of catmullrom
b _ setting accuracy of curve segments
b _ right now it's hardwired at 20, should be adjustable
b _ function to evaluate bezier or catmullrom points
b _ used heavily in genome valence, asked about on the bboard
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1053449577;start=0
b _ background(BImage)
b _ also creating background image inside setup()
b _ make bagel usable on its own as a drawing surface
b _ needs to be used as a component, without applet
b _ but retain functionality, ie. image i/o
b _ exports pixels or a BImage or does MemoryImageSource itself
b _ move math functions into utility library associated
b _ with bagel, because those will be useful on other bagel platforms
b _ pApplet will call BagelMath.whatever, so still looks like cos()
b _ light(x, y, z, c1, c2, c3, TYPE)
b _ also BLight with same constructor, and on() and off() fxn
2 _ drawMode() for MULTIPLY and ADD
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051208333
BAGEL / Rendering
b _ anti-aliasing. smooth(), noSmooth()
b _ need to verify that this works consistently throughout
b _ alpha. fill(r, g, b, a), stroke(r, g, b, a),
b _ need to verify that this works consistently throughout
b _ shape.. non-homogenous colors for beginShape()
b _ currently disabled b/c homogenousColors not set false for vertices
b _ and code not written for curve vertices
b _ picking
b _ what is the API for 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
ca b _ lines
ca b _ rewrite line and stroke code, it's a buggy mess
ca b _ lines become 2 pixels thick after a 3D transform
ca b _ better handling of single-pixel special case
ca b _ flat_line_retribution is a hack, can go away
ca b _ setting stroke width on circle makes odd patterns
ca b _ line endcaps and line joins. strokeMode()
ca b _ lower priority, but at least leave room
ca b _ make sure line() commands don't try to have a fill
ca b _ box is not opaque
ca b X problem is that lines are drawn second
ca b X one pixel lines have no z value.. argh
ca b _ bug re: 3d depth sorting on lines
ca b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1043894019;start=0
ca b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042004618
ca b _ translate(58, 48, 0);
ca b _ rotateY(0.5);
ca b _ box(40);
ca b _ concave/complex polygon
ca b _ eventually POLYGON auto-detects convex/concave polygon
ca b _ also add POLYGON_CONVEX and POLYGON_CONCAVE
ca b _ clipping objects (clipping planes?)
ca b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1052313604;start=0
ca b _ things are flying into the camera and halting apps
ca b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042699742
ca b _ NullPointerException apparently when things way offscreen
ca b _ i.e. glyphrot with scale set to 4
ca b _ or at least that things get ridiculously slow
ca b _ clipping issues here.. but also something in scan converter
ca b _ not clipping areas from offscreen
ca b _ huge geometry slows things way down
ca b _ get font things sewn up
ca b _ create a simple generator for grayscale bdf fonts
ca b _ document the change and make several of them
ca b _ font smoothing (unless hint SMOOTH_IMAGES enabled) is broken
1 _ font support is overkill and sucks
1 _ need fast 2D text that's not affected by the transforms
1 _ also needs to look good, not squished from texture weirdness
1 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051806272
b _ circles and spheres
b _ bresenham (flat) oval function
b _ finish fill mode of flat circle function
b _ stroked version of sphere is just a circle (?)
b _ setting accuracy of circles/sphere
b _ opengl export / rendering mode
b _ currently implemented, but somewhat broken
b _ finish this once all the line code is done
bf b _ illustrator export / rendering mode
bf b _ also postscript or pdf export?
bf b _ version of Illustrator.java that uses bagel api
bf b _ sorting of polygons/lines on simple painters algorithm
bf b _ better lighting model to show darkness at various depths
bf b _ maybe just ultra-high res bitmaps from gl
bf b _ version of ProcessingApplet that replaces g. with ai. or pdf.
b _ getting current fill color and stroke color
b _ stroke() with no params?
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1053002041;start=0
BAGEL / Details
b _ cartesian/polar conversion
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1053354853
b _ make zbuffer available instead of g.zbuffer
b _ getting mouse movement outside the window
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1051916278;start=0
b _ transparent gif images don't retain transparency (oy)
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=general;action=display;num=1044908359;start=0
b _ gaps in lines for pmouseX, mouseX
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1044438078;start=0
b _ too many push() will silently stop the applet inside a loop
b _ test winding polygons in different directions
b _ test lighting to see how it compares with gl
b _ better lockout inside beginShape() to keep other things from happening
b _ is quad strip broken or not behaving as expected?
b _ may be correct, it worked for nik
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
b _ images drawn from center don't work for simage()
b _ currently calling slower image routine
b _ p5 classes into packages (bagel especially)
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1052908285;start=0
2 _ keypressed is not persistent
2 _ key repeat in os vs. how java handles it
2 _ search java faq for info about getting around it
BAGEL / Future
2 _ nicer/simpler api for moving the camera around
2 _ better api for fonts
2 _ fixed fonts are screwed, should only work at screen resolution
2 _ getStream for the filename doesn't work for directories
2 _ getfont("fonts/blah.fbf") refers to blah.raw, but that
2 _ also needs to be searched for in the fonts/ dir..
2 _ try with 1.4 frame buffer stuff to see if it's faster
2 _ write shearing function
2 _ adaptive sizing of circle segmenting based on rendered size
2 _ rather than requiring a fixed amount
2 _ have a few settings cached
2 _ optimize rotation functions
2 _ update/noUpdate() could also be done to force explicit updates only
2 _ for ui-type applications that don't need to continually redraw
2 _ instead use void update() as a function like loop and draw
2 _ third mode for interactive apps that have to be queried
2 _ shouldn't do so much work (redrawing in loop) if waiting for input
2 _ mode for when no full animation taking place
2 _ otherwise machine is continually maxed out while app is running
2 _ way to screen grab at higher resolution
2 _ method for rendering at higher res and then scaling down
2 _ (even if this causes signficant performance hit)
2 _ look at GLUT for other needed shapes
2 _ export to static flash-based graphics
2 _ build in second matrix type: 2d affine
2 _ write code for reading uncompressed b/w tiff images
2 _ incorporate for fixed width fonts
2 _ fast(er?) version of bagel that just uses java graphics
2 _ but leaves out many features
2 _ setting a fill color when drawing an image should affect the image
2 _ or maybe image.setColor or setTone to mix a specific color in
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
VIDEO
VIDEO / CAPTURE - Bagel Standard Extension by Hernando
hb b _ beginVideo()
hb b _ endVideo()
hb b _ videoMode()
hb b _ videoEvent();
hb b _ video[]
bf b _ incorporate hernando's code
bf b _ add qt java libs to build process
b _ do same as video capture but running through movie file
VIDEO / Output - something like screengrab, employs qtjava
b _ quicktime exporter or image sequence export
b _ fairly quick--just use experimental code from dbn
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
SOUND / Bagel Standard Extension by Carlos
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
PDE - PROCESSING DEVELOPMENT ENVIRONMENT
PDE / General
b _ be able to draw something inside setup (?)
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1044689650;start=0
PDE / Pre-preprocessor
Currently using Oro for search and replace preprocessor.
Future plans to use Javacup for preprocessor and Jikes for compiler.
bf b _ separate compiler from other kjc-specific code
bf b _ change writeJava/start functions to be combined in kjc
bf b _ but the rest inside PdeEditor that takes care of launching/placing
_ setup( ){} has an error, setup(){} does not
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1045059758;start=0
_ setup (200, 200) causes the default size to be used but setup(200, 200) works fine
_ no longer require size() to come first.
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1038368420
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1028560140
_ compiler barfs on: float[] moo = new int[10];
_ although no error comes through to p5 (benelek)
_ int() doesn't work inside other functions
_ argh, need a real parser
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1052994613
_ something about the second line of this turns things to mush
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1051654054;start=0
println("3");
println("4");
println("5");
_ switch to java cup (one day's work)
_ subst Image -> BImage, Font -> BFont
_ contextual syntax highlighting based on grammar
_ probably want to include everything that's in java.lang and maybe others
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1045665326
PDE / Compiler
b _ see if newer javac forces a System.exit() or if it can be avoided
b _ wire-in jikes as another compiler
b _ write handlers for jikes-style of error messages
PDE / KJC Compiler
most of these items can be removed if kjc is dropped
b _ another kjc bug
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1048025370;start=0
b _ when missing a closed brace, often has compiler error
b _ Jordan J message in email and bugs list
b _ can't used random() inside constructor.. (Glen Murphy)
b _ maybe related to problems loading images in constructors
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1039411135
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1038807934
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1029289775
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1047649496;start=0
b _ weird comments bug (external file)
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1040466898
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 _ Compiler.disable() message is weird and doesn't always work
b _ probably just remove it for now
PDE / Runtime (includes classloading)
_ environment locks up when error stream isn't for the class
_ this happens when it's another thread (i.e. image fetcher)
_ exceptions in KjcEngine (formerly 'ex found in run') should be cleaner
_ focus not properly set in present mode
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1048069821
_ for 'java' mode, try run using external vm
_ would need to get error output stream from app.. argh
_ only allow under win/osx/linux
_ not clear how to kill the process.. does that work w/ 1.3?
_ 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
_ 'public class' thing to make things available to all sketches
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1050571290
_ class unloading not happening in java mode
_ need to add randomizer to even non-self gen'd classes
_ or figure out how to unload old classes.. grr
_ lockup when something missing from classpath on dynamic load
_ but makes no error.. peditorconsole probably swallowing it
_ ability to include other code from sketchbook directory
_ compile entire sketchbook on startup, check for new files on compile?
PDE / Export
b _ export to .pde file rather than java
b _ or at least link to that from the web page
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1046250912
b _ add manifest.mf to exported applets so that applications will work
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1045983103;start=0
b _ ability to export 'applications' (not just applets)
b _ lock feature for present mode (part of export to application?)
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
PDE / Editor
if you dream it, you can do it.
b _ find/replace
b _ ctrl-f for find, g for find next, h for next occurrence of selected
b _ "look up in reference" function for selecting keywords
? _ context menu cut/copy/paste
? _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1052447215;start=0
2 _ features asked for on the bboard
2 _ line numbers like bbedit
2 _ command to comment-out the current selection
2 _ syntax coloring
2 _ split screen
2 _ collapsable functions, or quick access to functions
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051301511
PDE / Details
b _ background of menus on winxp is white
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1051303115
b _ SystemColor doesn't differentiate between menu background and top
b _ probably fixed in swing, but we're using java.awt.Menu
b _ test by rewriting with java.awt.Menu
b _ improve the console
b _ clear console each time 'run' gets hit
b _ don't actually clear, just advance by the number of lines visible
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051540041;start=0
b _ maybe it needs to be a textarea?
b _ printing of objects, esp when null, in jdk 14 seems to crash
b _ this may have been fixed
b _ exception when trying to write to stdout
b _ may need horizontal scroller, or text wrap
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1050328811;start=0
b _ can't copy text from console directly
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1050328811
2 _ make console like director messagewindow..
2 _ ability to type commands and try functions
b _ rename doesn't set focus to renamer area
b _ rename sketch 'can't rename' error (file being kept open)
b _ open sketch, make a change, save, run, rename -> error
b _ beautify() ignores colons for case statements
b _ need to tie this to the parser instead
b _ need to check if volume is read-only, notify and quit if it is
b _ people are trying to run off the disk image
b _ need to pay attention to when running from read-only drive
b _ reported by brandenberg
b _ "p5 will launch from the disk image, but will
b _ not draw the sketch name bar doesn't appear"
b _ p5 becomes a memory hog (benelek and glen murphy)
b _ even without sketches open, perhaps not gc'ing properly
b _ objects probably not getting finalized
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1050134854;start=0
_ save last-used serial to sketch.properties on quit
_ size() has memory limitations (pitaru)
_ catch OutOfMemoryError inside size() and let the user know
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1038847001
_ 'save as' from examples puts into examples dir.. :(
_ make it default to the user's sketch dir
_ verify editor buttons working properly
_ is play button 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
_ popup menu for sketches doesn't unhighlight if no sketch selected
_ if export fails (compile error) need deselect
_ only copy data files into build dir when there are changes
_ make sure the still relevant files aren't removed
_ setLastModified on the files after copying (jdk13)
_ better handling of AccessControlException in applets
_ on loadImage and loadStream
_ exceptions in draw() apps aren't caught
_ the program resize(200, 200); just does nothing (doesn't complain)
_ 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?
_ sketches can't be named starting with numbers (D.YOO)
_ either provide an error message or explanation for this
_ or allow the sketch name to be separte from the class/folder names
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1033674118
_ break out BSerial as separate object like BVideo
_ BSerial.flush and BSerial.available
PDE / Details (low priority)
_ menu weirdness (benelek)
_ when u've got a menu open, move a cursor over the text area
_ and back over the menu, the text-area cursor type remains.
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1043667859
_ scroll bar has some painting weirdness with jedit textarea
_ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1042351684
PDE / features
b _ some notion of plugins for pde
b _ color picker or other things written by folks
b _ add all .jar files in lib/plugins on startup
b _ make some kind of internal color picker
b _ could be a separate window that's always around if needed
b _ highlight a word and jump to it inside the reference
b _ shortcut to walk through history, ala photoshop (ctrl-alt-z)
b _ may need to start putting properties somewhere besides lib
b _ home directory (or preferences folder under macos9)
b _ will need doubles for genomics work. ugh.
b _ this is just enable/disable float stuff
b _ put screenshots into sketch folder
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1046185738;start=0
b _ external editor -> add a command to launch
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1043734580;start=0
b _ event to explorer to open 'parts' directory of project
b _ expose access to oro api, perhaps as a plugin
b _ regexps: http://javaregex.com/cgi-bin/pat/tutorial.asp
2 _ menu option to change username/login
2 _ if new user, offer to rename 'default' if it contains things
2 _ user name is changed by clicking and typing
2 _ after user hits 'enter', checks to see if user exists
2 _ if not, pops up message asking if they want to change
2 _ message goes in same spot as error/status label (turns yellow?)
2 _ if user says 'no', then
2 _ method of collapsing history for useful versions
2 _ archive associated files as well.. data/etc
2 _ see about setting up simple bug tracker/feature system
2 _ // We can use sourceforge for bug tracking... (reas)
2 _ queue for people reporting things externally
2 _ bugzilla but simpler
2 _ would also be nice for people to be able to vote on features
2 _ run java code besides processing applets
2 _ if not processing applet, look for a main(), no main give an error
2 _ dbn2p5 converter.. ooh!
2 _ tweak updater a little bit so it's more likely to work
2 _ use numbered versioning?
2 _ give updater feedback (progress dialog, error msg)
2 _ error messages with link to what's wrong
2 _ lots of ui ideas from adrien in the bbedit
2 _ some ui stuff from fdb
2 _ rename the button options to verbs
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1032909986
PDE / science fiction
features to be implemented by 2048
3 _ toggle for showing a function name each time its hit
3 _ toggle for showing line numbers within a function
3 _ i'm here messages, tie in with breakpoints for debugger
3 _ lightweight debugger, doesn't slow down, runs in back
3 _ toggle to show attr/value for some var in simple way
3 _ comments as debugging descriptors, output to console, shown in context
3 _ comments as naming for shapes drawn after it,
3 _ or some other model of naming based on inserted text with "" or // or #
3 _ could fit nicely with printf-style statements and comments
3 _ comments would contain descriptions //!blah for printing and formatting
3 _ sketchbook - doodling/scribbling area..
3 _ since wacom tablet easily accessible
3 _ look into maxx programming
3 _ single or multi-file cvs, not based on directories
3 _ i.e. i want illustrator.java for a project
3 _ version # stored in .java file
3 _ if a new version is available, asks 'do you want to update?'
3 _ multi-file: quicksort + sortable
3 _ check out interface builder for interesting tidbits
3 _ write converter for java bagel -> cpp version
3 _ include #ifdefs for c stuff
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
DISTRIBUTION
How the environment gets packed up, downloaded, and installed.
DISTRIBUTION / General
b _ need to purge 55 spelling from lots of things
b _ window title code, name of .exe and .app files
b _ people like downloadable reference + net isn't cheap everywhere
b _ need document icons
b _ beta release will include source code
b _ write notes about running p5 on another platforms
b _ this was some feedback from running on bsd:
b _ /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
b _ need to use the 1.3 vm, and get a fake platform name
b _ otherwise, goes looking for lib/pde_.properties or something
DISTRIBUTION / Windows
b _ need splash screen, startup takes a long time
b _ file association for .pde files
b _ windows 95/98/ME seems to be broken
b _ ME doesn't seem to like the .exe, but run.bat worked ok
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1028990066
b _ lockup/freezes (mKoser and zeitgeist)
b _ jre icon not appearing in the systray
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1030538508
DISTRIBUTION / Mac OS
b _ reference doesn't launch on mac (mKoser)
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1038424448
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..
DISTRIBUTION / Mac OS 9
b _ make sure editor window is front so that error line highlights
b _ set file type for html files
b _ why is bbedit the type for the other files? make simpletext
DISTRIBUTION / Mac OS X
b _ report of a problem with the rxtx installer being bad
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1048517796;start=0
b _ remove 'quit' from file menu
b _ Event.consume() doesn't work on entry fields
b _ manifests itself in sketch naming, can't be constrained
b _ may not be the case under swing?
b _ escape key not quitting presentation mode
b _ no events seem to be coming through at all
b _ splash screen
b _ select all (apple-a) on azerty keyboard is quitting the app
b _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1032909986;start=0
b _ tweak for java 1.4
b _ need to add a line to the properties file
b _ include a note about this in the readme, include url for download
b _ connect.apple.com
b _ bug on p5 bboard: http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1037829938;start=0
running 1.4 from the command line:
/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Commands/java
Info.plist, setting JVMVersion
* 1.3.1 - only use JDK 1.3.1, even if later versions are available.
* 1.3* - use any version of JDK 1.3.x. Do not use JDK 1.4 even if it's dflt.
* 1.3+ - use the latest JDK version from JDK 1.3 onward, up to default JDK.
* 1.4+ - use JDK 1.4 or later, even if an earlier JDK is the default.
DISTRIBUTION / Linux
b _ splash screen
b _ test serial with ibm vm and all
b _ look for jdk 1.4 to use instead of 1.3
b _ make sure javacomm gets in there
b _ test it a little more to make sure it works (cygwin x sucks)
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
casey -- this is a bunch of crap that i've scribbled down as i've
thought of it.. maybe they should be moved to your list or removed if
they're not useful?
DOCS
_ mention connection to java and docs on getting started in java
_ make clear that setup is just for setup
_ but should also in the future allow to create static image
_ notes on debugging
_ run with java -Xint blahblah (turns off jit)
// I don't know where this should live, on BBS? What do you think
_ 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
_ 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
_ 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
_ 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 objectXYZ() and screenXYZ()
_ 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
_ fixed width font format as technote and how to use
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
LANGUAGE
Adding to the API for advanced users, supporting concise coding
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)
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
EXTENSIONS
Scribblings for future API...
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)
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
MISCELLANEOUS NOTES
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?
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
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
_ 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
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
for jgl version of bagel, jgl.jar needs to be in classpath
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
(C)BAGEL WORK
The C Language version of the Bagel Graphics Library
bagel engine: memoryimagesource, opengl, illustrator, postscript, pdf
bagel to run on j2me / phones
output to multiple languages: java -> c++ conversion
cbagel engine: memory array, opengl bindings
_ 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
_ get gcc tied into processing
_ java disassembly inside p5
_ and assmebling it back again
_ 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
////////////////////////////////////////////////////////////////////
MENU PROPOSALS
// File
New
Open
Save
Save as
Export Web
Export Application
-----
Proce55ing.net
Reference
-----
Quit
// Edit
Undo
Redo
-----
Cut
Copy
Paste
-----
Find
Replace
-----
Select All
// Control
Run
Present
Stop
-----
Step Forward (farway future)
Step Backward (faraway future)
// Sketch
History
Clear History
Beautify
// Environment
Serial Port
Use External Editor
////////////////////////////////////////////////////////////////////
JAVA PACKAGES
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