mirror of
https://github.com/processing/processing4.git
synced 2026-02-11 09:39:19 +01:00
424 lines
17 KiB
Plaintext
424 lines
17 KiB
Plaintext
PROCESSING DEVELOPMENT ENVIRONMENT
|
|
|
|
(c) 2001-04 Ben Fry and Casey Reas
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
FREQUENTLY ASKED QUESTIONS, INFO ABOUT PLATFORMS, & DEVELOPER SOAPBOX
|
|
|
|
'revisions.txt' contains more information about the specific updates
|
|
and fixes in this release.
|
|
|
|
'bugs.txt' has up-to-the-second information about our favorite bugs.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
HOW DO I GETTING STARTED?
|
|
|
|
double click the 'Processing' application, and select something from
|
|
the examples menu: File -> Open -> Examples. hit the 'run' button
|
|
(which looks like the play button on a vcr or tape deck).
|
|
|
|
lather, rinse, repeat as necessary.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
WHAT'S WITH THE VERSION NUMBERS?
|
|
|
|
this is not 1.0 software.. it's buggy and may kill people. that's part
|
|
of why we make everyone sign up to download, so that we know that care
|
|
enough to bother.
|
|
|
|
at least until the final "1.0" version, we'll be using four digit
|
|
numbers for the release. we're calling revision "0043" the first
|
|
"alpha", which for us means "first publicly consumable app that can
|
|
be used by early adopters". later revisions (like this one) will
|
|
simply be numbered.
|
|
|
|
the numbered releases aren't heavily tested, so don't be surprised
|
|
if/when something breaks.. just report the problem and go back to the
|
|
previous numbered release until there's a fix.
|
|
|
|
there will be a few more numbered releases leading up to a beta
|
|
release. beta means that all the features are in, but not all the bugs
|
|
are out. there are several known issues with the alpha release (thin
|
|
lines, lack of alpha transparency, etc) that will need to be sorted
|
|
out for beta.
|
|
|
|
additional numbered releases will follow, leading up to 1.0, a
|
|
version that we can actually proud of and that has a minimum number
|
|
of bugs. hopefully this is not a *long* ways off, but...
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
I FOUND A BUG!
|
|
|
|
haven't we all?
|
|
|
|
NOTE! avoid the urge to just email us, especially sending mail to ben
|
|
or casey directly. while you may prefer the privacy of an email, it's
|
|
much quicker for you to ask the whole gang, who are super helpful. we
|
|
also what we use to keep track of bugs, so we may just ask you to use
|
|
the bboard anyway.
|
|
|
|
first, read the bug.txt file to see if your problem is found there.
|
|
|
|
next, check the bboard to see if something related has been reported,
|
|
or if there is already a workaround.
|
|
|
|
best method is to post to the bulletin board at:
|
|
http://processing.org/discourse/
|
|
we prefer for you to use the bboard for bugs, since:
|
|
- we like to use the bboard as a way to track bugs and get feedback
|
|
- casey and ben can't always respond quickly to email
|
|
- and there are several knowledgeable people on the bboard
|
|
if you want to go straight to the bugs page, it's:
|
|
http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs
|
|
|
|
when reporting this "bug" please include information about
|
|
1. the revision number (i.e. 0070)
|
|
2. what operating system you're using, on what kind of hardware
|
|
3. a copy of your code--the smallest possible piece of code that will
|
|
produce the error you're having trouble with.
|
|
4. details of the error, which may be the last few lines from
|
|
the files stdout.txt or stderr.txt from the 'lib' folder.
|
|
|
|
for stranger errors during compile time, you can also look inside the
|
|
"build" folder inside "lib", which is an intermediate (translated into
|
|
java) version of your code.
|
|
|
|
the more details you can post, the better, because it helps us figure
|
|
out what's going on. useful things when reporting:
|
|
|
|
- we want the minimum amount of code that will still replicate the
|
|
bug. the worst that can happen is we get a report that says
|
|
"problem!" along with a three page program. sure, everyone likes a
|
|
puzzle, but simpler code will receive a faster response.
|
|
|
|
- occasionally we may need you to pack up a copy of your sketchbook or
|
|
something similar so that we can try and replicate the weirdness on
|
|
our own machine. rest assured, we have no interest in messing with
|
|
your fancy creations or stealing your ideas. the p5 team is a pair
|
|
of straight-laced boys who hail from the midwestern u.s. who were
|
|
brought up better than that. and as we often lack enough time to
|
|
build our own projects, we have even less time to spend figuring out
|
|
other peoples' projects to rip them off.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
PLATFORMS
|
|
|
|
the processing development environment is tested most heavily on:
|
|
|
|
1. Mac OS X 10.3
|
|
1. Windows XP
|
|
3. Fedora Core (Linux)
|
|
|
|
windows is by far the superior platform for running java
|
|
applications. it's not because we like windows the best but that's
|
|
just how it is. the vm for mac os x is really quite good (especially
|
|
when compared to apple's previous efforts), but it's still clunky and
|
|
behind. we think os x will be a great bet for the future, and apple is
|
|
putting all their feeble weight behind it, hopefully it will evolve
|
|
somewhere.
|
|
|
|
developing the version for mac os 9 was a big headache, we badly
|
|
wanted to support it, since so many people use it, but it had to be
|
|
discontinued for lack of time to work on it.
|
|
|
|
windows 95/98/ME is a piece of crap, but since lots of people (are
|
|
often forced to) use it, we'll do our best to support it. early alpha
|
|
versions seem to be having trouble with 95/98/ME, so if possible, we
|
|
*strongly* recommend using Windows 2000 or XP.
|
|
|
|
for the linux version, you guys can support yourselves. if you're
|
|
enough of a hacker weenie to get a linux box set up, you oughta know
|
|
what's going on. for lack of time, we won't be testing extensively
|
|
under linux, but would be really happy to hear about any bugs or
|
|
issues you might run into. actually, we don't get happy that you're
|
|
having issues, but if you're going to have issues, we're happy that
|
|
you tell us about them, so we can fix them.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
MAC OS X
|
|
|
|
the most current release has only been tested on Mac OS X 10.3.5.
|
|
your mileage may vary if you're running something else. actually, your
|
|
mileage will vary no matter what, because who knows what this software
|
|
is gonna do. you're playing with free, alpha software. get psyched!
|
|
|
|
minimum requirements.. processing requires at least Mac OS X 10.1.
|
|
if you're running anything older than 10.2, you'll need "Java 1.3.1
|
|
Update 1", the latter of which is available as a free update from
|
|
the "Software Update" control panel. it can also be downloaded from
|
|
http://www.apple.com/downloads/macosx/apple/ or from:
|
|
http://www.apple.com/downloads/macosx/apple/java131.html
|
|
for what it's worth, we don't test processing under mac os x 10.1
|
|
and we don't recommend it at all. nor do we particularly recommend
|
|
10.2, if you can avoid it. and if you're running 10.4, processing is
|
|
the least of your worries.
|
|
|
|
mouse wheel support only works if you're using java 1.4. the latest
|
|
version of java will be available via the software update control
|
|
panel.
|
|
|
|
serial port.. we use rxtx (version 2.1_6) to handle serial i/o, which
|
|
is included with the processing release. unlike previous releases
|
|
(anything before 57), it no longer requires separate installation.
|
|
however, if this is the first time you're using rxtx, you'll need to
|
|
make your way to the "libraries" folder, find "serial", and inside,
|
|
run macosx_setup.command (double-click it and follow the instructions)
|
|
to make sure that things are properly set up (a few permissions
|
|
need to be changed). if you're getting a "serial port is already in
|
|
use by another application" it's possible that you haven't run this
|
|
script. you may also need to reboot after running the script. on my
|
|
machine, i installed the keyspan driver for my usb-serial converter,
|
|
ran the script, and then rebooted in order for things to work. in the
|
|
past, i've used a keyspan 28X dual port adapter, and the selection i
|
|
use on the serial port menu reads "/dev/cu.USA28X21P1.1". you'll
|
|
probably have something similar. don't mind the frightening names.
|
|
|
|
another note on serial port.. tom igoe was kind enough to note that
|
|
you'll be in a world of hurt if you disconnect your serial adapter
|
|
while a sketch is running--it'll prolly freeze the machine and require
|
|
a forced reboot. (while this may seem nutty, you might run into it if
|
|
your adapter is plugged into your usb keyboard, and you have the
|
|
keyboard plugged into a monitor/keyboard switcher).
|
|
|
|
quitting presentation mode.. on other platforms, hitting the
|
|
'escape' key will quickly get you out of presentation mode. however,
|
|
there seems to be some key event weirdness under osx. we hope to find
|
|
a fix someday.
|
|
|
|
out of memory? right-click on processing, select "show package
|
|
contents", then edit "Info.plist" inside "Contents". change these lines:
|
|
<key>VMOptions</key>
|
|
<string>-Xms128M -Xmx256M</string>
|
|
to set to something higher than 128M and 256M (128 and 256 megabytes
|
|
of ram) as you need to / at your own risk.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
WINDOWS
|
|
|
|
winxp is used as the primary development platforms, so the release
|
|
will likely work best there.
|
|
|
|
win95/98/me seem to have some trouble, but we think it's just with
|
|
the .exe that we use, so that'll get fixed in the future. you can try
|
|
using the 'run.bat' file instead, and see if that works better.
|
|
|
|
the release is now split into 'standard' and 'expert' versions. the
|
|
basic release includes a working java vm, and is all set up and ready
|
|
to go. the advanced version is for people who already have java
|
|
installed (and don't want to deal with the 20MB download), and know
|
|
what they're doing enough that they can also install the serial port
|
|
code by hand. instructions on installing the serial code are in the
|
|
'serial' folder inside the 'expert' release.
|
|
|
|
out of memory? try adjusting the parameters in the file 'run.bat' and
|
|
use that to run instead of Processing.exe. short instructions can be
|
|
found inside that file.
|
|
|
|
mouse issues: by default, windows seems to skip every other pixel on
|
|
screen, causing weirdness for some drawing applications done with
|
|
p5. if you're seeing this, you can fix it by going to the windows
|
|
"mouse" control panel, the "pointer options" tab, and select "enhance
|
|
pointer precision." (this was actually tracked down by someone else in
|
|
the p5 community, whose name i have misplaced. if it was you, please
|
|
drop me a line so you can be properly cited. this kind of help is huge
|
|
for us, since we're such a small group!)
|
|
|
|
video.. if you want to use video input on the pc, you'll have to
|
|
have a device that's compatible with quicktime, or use something like
|
|
winvdig to make it work: http://www.vdig.com/WinVDIG/index.html
|
|
otherwise you'll get no video.
|
|
|
|
"hs_err_pid10XX.txt" error.. this is something within the java vm that
|
|
we can't fix. it's not clear what the problem is, but it seems to have
|
|
shown up with java 1.4.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
LINUX
|
|
|
|
the processing application is just a shell script, you can use this
|
|
as a guide to getting p5 to run with your specific configuration,
|
|
because who knows what sort of setup you have. this release was tested
|
|
on a redhat 9 box, and sun's jre 1.4.2 is included with the
|
|
download. replacing (or making a symlink to) the contents of the
|
|
'java' folder will let you tie in a preferred jvm for your machine.
|
|
|
|
serial.. this release uses rxtx-2.1_6 (just like macosx). you may get
|
|
error message spew to the console when starting the application saying
|
|
"Permission denied" and "No permission to create lock file" and to
|
|
read "INSTALL". this is because you need to add yourself to either the
|
|
uucp or lock group so that processing can write to /var/lock so it
|
|
doesn't get in a fight with other applications talking on the serial
|
|
port. supposedly, adding yourself to one of these groups will work
|
|
(didn't for me, but i'm a little clueless) or running processing as
|
|
root will get rid of the errors (not a great solution).
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
WHAT IS THE SKETCHBOOK?
|
|
|
|
we think most "integrated development environments" (microsoft visual
|
|
studio, codewarrior, jbuilder) tend to be overkill for the type of
|
|
audience we're targeting with Processing. for this reason, we've
|
|
introduced the 'sketchbook' which is a more lightweight way to
|
|
organize projects. as trained designers, we'd like the process of
|
|
coding to be a lot more like sketching. the sketchbook and the
|
|
'history' menu under 'sketch', are attempts in that direction.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
WHY JAVA? OR WHY SUCH A JAVA-ESQUE LANGUAGE?
|
|
|
|
We didn't set out to make the ultimate language for visual
|
|
programming, we set out to make something that was:
|
|
|
|
1) a sketchbook for our own work, simplifying the majority
|
|
of tasks that we undertake,
|
|
2) a teaching environment for that kind of process, and
|
|
3) a point of transition to more complicated or difficult
|
|
languages like full-blown Java or C++. (a gateway drug)
|
|
|
|
At the intersection of these points is a tradeoff between speed and
|
|
simplicity of use. i.e. if we didnt' care about speed, python or other
|
|
scripting languages would make far more sense. if we didn't care about
|
|
transition to more advanced languages, we'd get rid of the crummy
|
|
c-style (well, algol, really) syntax. etc etc.
|
|
|
|
Processing is not intended as the ultimate environment/language (in
|
|
fact, the language is just Java, but with another graphics api and
|
|
some simplifications), it's just putting together several years of
|
|
experience in building things, and trying to simplify the parts that
|
|
should be easier.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
HOW DO I USE EXTERNAL FILES?
|
|
|
|
if you want to use external files, like images or text files
|
|
or fonts, they should be placed in a folder called 'data' inside your
|
|
sketch folder.
|
|
|
|
|
|
|
|
starting with version 44, there are several functions that make
|
|
dealing with data in files much easier (loadFile, loadStrings,
|
|
splitStrings, etc) so file i/o should be fun!
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
WHY IS IT CALLED "PROCESSING"?
|
|
|
|
at their core, computers are processing machines. they modify, move,
|
|
and combine symbols at a low level to construct higher level
|
|
representations. Processing allows people to control these actions and
|
|
representations through writing their own programs.
|
|
|
|
the project also focuses on the "process" of creation rather than end
|
|
results. the design of the software supports and encourages sketching
|
|
and the website presents fragments of projects and exposes the
|
|
concepts behind finished software.
|
|
|
|
"Proce55ing" is the spelling we originally used for the url. even
|
|
though it's a combination of numbers and letters, it was simply
|
|
pronounced "processing." casey and i saved our pennies and had a can
|
|
drive so now we've acquired the processing.org domain name. as a
|
|
result we are no longer using the name "Proce55ing". when we see it
|
|
with the 55's it annoys us and we want to punch people in the face. or
|
|
punch ourselves in the face for using it in the first place. actually,
|
|
we don't care that much but we're trying to kill off the previous
|
|
naming. however, to make it more confusing, we still use "p5" as a
|
|
shortened version of the name.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
HOW MUCH DOES PROCESSING COST?
|
|
|
|
we think it's important to have Processing freely available, rather
|
|
than selling it for a million dollars under some godawful yearly
|
|
contract update scheme. to that end, we encourage people to distribute
|
|
the word widely and refer them to the site: http://processing.org
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
DO WE HAVE TO CITE PROCESSING? CAN WE DISTRIBUTE OUR SKETCHES?
|
|
|
|
we like it when people include a "built with processing" note with a
|
|
link back to the site, since it helps create interest / brings in more
|
|
people to the project. we don't/can't/shouldn't require it, but it
|
|
makes us happy because the project is free and this is our way of
|
|
getting advertising and generating interest.
|
|
|
|
|
|
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
|
|
|
|
|
IS PROCESSING OPEN SOURCE?
|
|
|
|
we plan for this project to be "open source", everyone's favorite
|
|
phrase that means that you'll be able to get your grubby little mitts
|
|
all over our code (all the code that's behind the processing
|
|
development environment and the graphics engine used in tandem with
|
|
it). we can't promise, since we're still working on getting the
|
|
licensing taken care of with our employers, but we think this should
|
|
likely happen soon.
|
|
|
|
the export libraries (internally known as 'bagel') will probably be
|
|
LGPL, which means they can be used as a library and included in your
|
|
project without you having to open up your code (though we encourage
|
|
people to share anyway).
|
|
|
|
more information about the gnu public license can be found here:
|
|
http://www.gnu.org/copyleft/gpl.html
|
|
|
|
processing also includes other open projects, namely the older version
|
|
of the oro matcher (http://www.savarese.org/oro/), the jikes compiler,
|
|
and the jedit syntax package. the oro tools are distributed under a
|
|
bsd style license as part of the apache jakarta project, and jikes is
|
|
covered by the ibm public license:
|
|
http://oss.software.ibm.com/developerworks/opensource/jikes/
|
|
|
|
we're sorry that our source code isn't available just yet, we're
|
|
cleaning and scrubbing it, it was a decision between getting the alpha
|
|
out to people to try versus taking a few more weeks to clean up the
|
|
project and deal with the technology licensing departments at
|
|
mit. these things are far more difficult and time consuming than
|
|
they initially appeared.
|
|
|
|
our plan is to have the code available with the first "beta" release,
|
|
which will be the first release that is publicly available and
|
|
downloadable from the site. |