Arduino/misc.txt

607 lines
16 KiB
Plaintext
Executable File

////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
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
buzz.pl
opt-in/opt-out #ifdef setup
rather than forcing people to use buzz.pl to compile. could pick
features that are opt-out, like net, that would have comments:
//#ifdef NET
//#endif
meaning that it would normally get compiled without any trouble
or similarly, could have other sections commented out that are opt-in,
that use #ifdefs to be enabled.`
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