0043 o arrow keys don't work in the textarea.. known issue X add note to release notes web / docs a _ finish writing 'readme.txt' a _ change download/index.html to not describe dates but process a _ "this is alpha, we're heading to beta with series of sm releases" a _ document serial a bit more in release notes a _ how do we encourage/point to updates? a _ auto updater? check for releases page in menu? //////////////////////////////////////////////////////////////////// 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 _ images drawn from center don't work for simage() b _ currently calling slower image routine BAGEL / high & time consuming 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 _ implement clipping planes and clipping of objects b _ clipping [may be needed for current genome browser project] 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 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 _ curveMode to tweak the s parameter of catmullrom _ 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 _ setting accuracy of curve segments _ 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 //////////////////////////////////////////////////////////////////// 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 BXSocket, BXServerSocket BXNetwork BXSerial 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 co bagel cd bagel rm -rf jgl rm -rf cpp cd .. rm -rf web (optional, if you're only doing java dev) cvs update -P (prune empty directories) need to have 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 ./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