-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmisc.txt
executable file
·606 lines (507 loc) · 15.6 KB
/
misc.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
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