mirror of
https://github.com/processing/processing4.git
synced 2026-02-03 13:49:18 +01:00
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.