Replacing Processing's text files with Arduino's (e.g. todo.txt)

This commit is contained in:
David A. Mellis 2009-06-01 21:06:59 +00:00
parent 73d7333ebd
commit 24b5abc79d
7 changed files with 984 additions and 7878 deletions

View File

@ -44,14 +44,6 @@ else
echo Extracting avr tools...
unzip -q -d "$RESOURCES/hardware" dist/tools-universal.zip
LIBRARIES=$RESOURCES/libraries/
cp -rX ../../net "$LIBRARIES"
cp -rX ../../opengl "$LIBRARIES"
cp -rX ../../serial "$LIBRARIES"
cp -rX ../../video "$LIBRARIES"
cp -rX ../../pdf "$LIBRARIES"
cp -rX ../../dxf "$LIBRARIES"
fi

5649
done.txt

File diff suppressed because it is too large Load Diff

View File

@ -1,212 +0,0 @@
future things that we'd like to do but may never get to
PRIORITIES
ed
_ quality of compiler errors + multiple errors
X additional class files.. .java or .pde
X find/replace
juha
_ documenting how the environment works / is set up
amit
X find/replace
X println speed improvements
_ 'debug' that shows a variable (rather than many many println)
X tabs for multiple files
zach
2 _ setting breakpoints / stepping through
2 _ useful as understanding for how program works
2 _ tracing like director
schoenerwissen
2 _ tracing variables
2 _ bspace object
b X 7 day search on discourse board
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
2 _ colorMode(CMYK)
2 _ just does 1-r/1-g/1-b inside
2 _ http://en.wikipedia.org/wiki/CMYK_color_model#Converting_between_RGB_and_CMYK
2 _ http://processing.org/discourse/yabb/YaBB.cgi?board=Tools;action=display;num=1082055374;start=0
CORE / Fonts
2 _ textTracking()
2 _ sbit font support
2 _ both reading and building sbit fonts
CORE / PGraphics3
2 _ picking
2 _ what is the API for picking?
2 _ ability to write data other than image into the buffer
2 _ user can introduce new kinds of buffers at will (!)
2 _ lists of names of objects, or the 'line number' buffer
2 _ but how to determine *where* on object the hit occurs
2 _ materials and shading
2 _ nicer/simpler api for moving the camera around
2 _ cartesian/polar conversion
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1053354853
2 _ thread includes code for the 2D case
2 _ alter strokeWidth in LINE_STRIP
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1053795842;start=0
2 _ keypressed is not persistent
2 _ key repeat in os vs. how java handles it
2 _ search java faq for info about getting around it
2 _ drawMode() for MULTIPLY and ADD
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051208333
2 _ better api for fonts
2 _ try with 1.4 frame buffer stuff to see if it's faster
2 _ write shearing function
2 _ optimize rotation functions
2 _ update/noUpdate() could also be done to force explicit updates only
2 _ for ui-type applications that don't need to continually redraw
2 _ instead use void update() as a function like loop and draw
2 _ third mode for interactive apps that have to be queried
2 _ shouldn't do so much work (redrawing in loop) if waiting for input
2 _ mode for when no full animation taking place
2 _ otherwise machine is continually maxed out while app is running
2 _ way to screen grab at higher resolution
2 _ method for rendering at higher res and then scaling down
2 _ (even if this causes signficant performance hit)
2 _ look at GLUT for other needed shapes
2 _ export to static flash-based graphics
2 _ build in second matrix type: 2d affine
2 _ write code for reading uncompressed b/w tiff images
2 _ incorporate for fixed width fonts
2 _ fast(er?) version of bagel that just uses java graphics
2 _ but leaves out many features
2 _ setting a fill color when drawing an image should affect the image
2 _ or maybe image.setColor or setTone to mix a specific color in
PDE / see you next year
not necessary for 1.0 release
2 _ better api for plugins
2 _ jedit guide might be useful: http://plugins.jedit.org/building.php
2 _ comments -> embedding in applet text? (ala javadoc)
2 _ http://processing.org/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1076967353
2 _ would this help casey with the examples?
2 _ type-ahead/teaching functions
2 _ very useful for learning to program
2 _ editor features asked for on the bboard
2 _ line numbers like bbedit
2 _ command to comment-out the current selection
2 _ split screen
2 _ collapsable functions, or quick access to functions
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_Software;action=display;num=1051301511
2 _ make console like director messagewindow..
2 _ ability to type commands and try functions
2 _ menu option to change username/login
2 _ if new user, offer to rename 'default' if it contains things
2 _ user name is changed by clicking and typing
2 _ after user hits 'enter', checks to see if user exists
2 _ if not, pops up message asking if they want to change
2 _ message goes in same spot as error/status label (turns yellow?)
2 _ if user says 'no', then
2 _ method of collapsing history for useful versions
2 _ archive associated files as well.. data/etc
2 _ see about setting up simple bug tracker/feature system
2 _ // We can use sourceforge for bug tracking... (reas)
2 _ queue for people reporting things externally
2 _ bugzilla but simpler
2 _ would also be nice for people to be able to vote on features
2 _ run java code besides processing applets
2 _ if not processing applet, look for a main(), no main give an error
2 _ dbn2p5 converter.. ooh!
2 _ tweak updater a little bit so it's more likely to work
2 _ use numbered versioning?
2 _ give updater feedback (progress dialog, error msg)
2 _ error messages with link to what's wrong
2 _ lots of ui ideas from adrien in the bbedit
2 _ some ui stuff from fdb
2 _ rename the button options to verbs
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1032909986
PDE / science fiction
features we love, but probably won't be implemented 2048
2 _ code as columns (screen is wide, code is not)
3 _ toggle for showing a function name each time its hit
3 _ toggle for showing line numbers within a function
3 _ i'm here messages, tie in with breakpoints for debugger
3 _ lightweight debugger, doesn't slow down, runs in back
3 _ toggle to show attr/value for some var in simple way
3 _ comments as debugging descriptors, output to console, shown in context
3 _ comments as naming for shapes drawn after it,
3 _ or some other model of naming based on inserted text with "" or // or #
3 _ could fit nicely with printf-style statements and comments
3 _ comments would contain descriptions //!blah for printing and formatting
3 _ sketchbook - doodling/scribbling area..
3 _ since wacom tablet easily accessible
3 _ look into maxx programming
3 _ single or multi-file cvs, not based on directories
3 _ i.e. i want illustrator.java for a project
3 _ version # stored in .java file
3 _ if a new version is available, asks 'do you want to update?'
3 _ multi-file: quicksort + sortable
3 _ check out interface builder for interesting tidbits
3 _ write converter for java bagel -> cpp version
3 _ include #ifdefs for c stuff
PDE / Pre-preprocessor & Compiler
Currently using Oro for search and replace preprocessor,
but Dan Mosedale is moving us to ANTLR
2 _ for int i for 0 to b.length
2 _ for i from 0 upto b.length
2 _ actionscript has nice hastables.. as does perl/python
2 _ would be nice to get better implementation in there
2 _ additional data conversions to avoid this syntax:
2 _ Integer.toString(), Integer.parseInt()
2 _ works like class casting: int(23.4) same as ((int) 23.4)
2 _ String(1234) -> translates to String.valueOf(1234);
2 _ works for all data types that support valueOf
2 _ i.e. valueOf(Object) returns null or Object.toString()
2 _ int("1234") -> Integer.parseInt("1234")
2 _ float("1234.35") -> (new Float("1234.35").floatValue())
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Syntax;action=display;num=1060940705
2 _ (blah, blah, blah) = split(blah, "\t")
2 _ 'like php's "explode" function'
2 _ http://www.php.net/manual/en/function.explode.php
2 _ example 2 is the more interesting one...
2 _ list($user, $pass, $uid, $gid, $gecos..) = explode(":", $data);
2 _ also see the inverse of that:
2 _ http://www.php.net/manual/en/function.implode.php
2 _ foreach implementation, ala java 1.5 spec
2 _ http://jcp.org/aboutJava/communityprocess/jsr/tiger/enhanced-for.html
2 _ for (String s : c) { ... }
2 _ or example for sum of int array:
2 _ int sum = 0; for (int e : a) { sum += e; }
2 _ for (int i = 0; i < 10; i++) -> for (int i < 10) (?)
2 _ what's a better method for this?
2 _ check through all the examples to look for other themes
2 _ contextual syntax highlighting based on grammar
2 _ everything that's in java.lang plus more is too much for keywords
2 _ http://proce55ing.net/discourse/yabb/YaBB.cgi?board=Proce55ing_software_bugs;action=display;num=1045665326

View File

@ -1,7 +1,11 @@
this file includes licensing information for parts of processing.
this file includes licensing information for parts of arduino.
the gnu general public license covers the main body of the processing code
(in general, all the stuff inside the 'app' subfolder).
first, the gnu general public license, which covers the main body
of the processing/arduino code (in general, all the stuff inside the 'app'
and 'core' subfolders).
next, the gnu lesser general public license that covers the arduino core
and libraries.
.....................................................................
@ -287,218 +291,463 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
.....................................................................
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
the original document can be found at:
http://oss.software.ibm.com/developerworks/opensource/license10.html
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
IBM Public License Version 1.0
Preamble
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS IBM
PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
1. DEFINITIONS
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
"Contribution" means:
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
a) in the case of International Business Machines Corporation ("IBM"),
the Original Program, and
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
b) in the case of each Contributor,
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
i) changes to the Program, and
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
ii) additions to the Program;
where such changes and/or additions to the Program originate from and
are distributed by that particular Contributor. A Contribution
'originates' from a Contributor if it was added to the Program by such
Contributor itself or anyone acting on such Contributor's
behalf. Contributions do not include additions to the Program which:
(i) are separate modules of software distributed in conjunction with
the Program under their own license agreement, and (ii) are not
derivative works of the Program.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
"Contributor" means IBM and any other entity that distributes the
Program.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
"Licensed Patents " mean patent claims licensable by a Contributor
which are necessarily infringed by the use or sale of its Contribution
alone or when combined with the Program.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
"Original Program" means the original version of the software
accompanying this Agreement as released by IBM, including source code,
object code and documentation, if any.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
"Program" means the Original Program and Contributions.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
"Recipient" means anyone who receives the Program under this
Agreement, including all Contributors.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
2. GRANT OF RIGHTS
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
a) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free copyright
license to reproduce, prepare derivative works of, publicly display,
publicly perform, distribute and sublicense the Contribution of such
Contributor, if any, and such derivative works, in source code and
object code form.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
b) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free patent
license under Licensed Patents to make, use, sell, offer to sell,
import and otherwise transfer the Contribution of such Contributor, if
any, in source code and object code form. This patent license shall
apply to the combination of the Contribution and the Program if, at
the time the Contribution is added by the Contributor, such addition
of the Contribution causes such combination to be covered by the
Licensed Patents. The patent license shall not apply to any other
combinations which include the Contribution. No hardware per se is
licensed hereunder.
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
c) Recipient understands that although each Contributor grants the
licenses to its Contributions set forth herein, no assurances are
provided by any Contributor that the Program does not infringe the
patent or other intellectual property rights of any other entity. Each
Contributor disclaims any liability to Recipient for claims brought by
any other entity based on infringement of intellectual property rights
or otherwise. As a condition to exercising the rights and licenses
granted hereunder, each Recipient hereby assumes sole responsibility
to secure any other intellectual property rights needed, if any. For
example, if a third party patent license is required to allow
Recipient to distribute the Program, it is Recipient's responsibility
to acquire that license before distributing the Program.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
d) Each Contributor represents that to its knowledge it has sufficient
copyright rights in its Contribution, if any, to grant the copyright
license set forth in this Agreement.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
3. REQUIREMENTS
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
A Contributor may choose to distribute the Program in object code form
under its own license agreement, provided that:
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
a) it complies with the terms and conditions of this Agreement; and
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
b) its license agreement:
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
i) effectively disclaims on behalf of all Contributors all warranties
and conditions, express and implied, including warranties or
conditions of title and non-infringement, and implied warranties or
conditions of merchantability and fitness for a particular purpose;
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
ii) effectively excludes on behalf of all Contributors all liability
for damages, including direct, indirect, special, incidental and
consequential damages, such as lost profits;
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
iii) states that any provisions which differ from this Agreement are
offered by that Contributor alone and not by any other party; and
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
iv) states that source code for the Program is available from such
Contributor, and informs licensees how to obtain it in a reasonable
manner on or through a medium customarily used for software exchange.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
When the Program is made available in source code form:
a) it must be made available under this Agreement; and
b) a copy of this Agreement must be included with each copy of the
Program.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
Each Contributor must include the following in a conspicuous location
in the Program:
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
Copyright 2003, International Business Machines Corporation and
others. All Rights Reserved.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
In addition, each Contributor must identify itself as the originator
of its Contribution, if any, in a manner that reasonably allows
subsequent Recipients to identify the originator of the Contribution.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
4. COMMERCIAL DISTRIBUTION
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
Commercial distributors of software may accept certain
responsibilities with respect to end users, business partners and the
like. While this license is intended to facilitate the commercial use
of the Program, the Contributor who includes the Program in a
commercial product offering should do so in a manner which does not
create potential liability for other Contributors. Therefore, if a
Contributor includes the Program in a commercial product offering,
such Contributor ("Commercial Contributor") hereby agrees to defend
and indemnify every other Contributor ("Indemnified Contributor")
against any losses, damages and costs (collectively "Losses") arising
from claims, lawsuits and other legal actions brought by a third party
against the Indemnified Contributor to the extent caused by the acts
or omissions of such Commercial Contributor in connection with its
distribution of the Program in a commercial product offering. The
obligations in this section do not apply to any claims or Losses
relating to any actual or alleged intellectual property
infringement. In order to qualify, an Indemnified Contributor must: a)
promptly notify the Commercial Contributor in writing of such claim,
and b) allow the Commercial Contributor to control, and cooperate with
the Commercial Contributor in, the defense and any related settlement
negotiations. The Indemnified Contributor may participate in any such
claim at its own expense.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
For example, a Contributor might include the Program in a commercial
product offering, Product X. That Contributor is then a Commercial
Contributor. If that Commercial Contributor then makes performance
claims, or offers warranties related to Product X, those performance
claims and warranties are such Commercial Contributor's responsibility
alone. Under this section, the Commercial Contributor would have to
defend claims against the other Contributors related to those
performance claims and warranties, and if a court requires any other
Contributor to pay any damages as a result, the Commercial Contributor
must pay those damages.
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
5. NO WARRANTY
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
responsible for determining the appropriateness of using and
distributing the Program and assumes all risks associated with its
exercise of rights under this Agreement, including but not limited to
the risks and costs of program errors, compliance with applicable
laws, damage to or loss of data, programs or equipment, and
unavailability or interruption of operations.
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
6. DISCLAIMER OF LIABILITY
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
7. GENERAL
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
If any provision of this Agreement is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this Agreement, and without further
action by the parties hereto, such provision shall be reformed to the
minimum extent necessary to make such provision valid and
enforceable.
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
If Recipient institutes patent litigation against a Contributor with
respect to a patent applicable to software (including a cross-claim or
counterclaim in a lawsuit), then any patent licenses granted by that
Contributor to such Recipient under this Agreement shall terminate as
of the date such litigation is filed. In addition, If Recipient
institutes patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Program
itself (excluding combinations of the Program with other software or
hardware

606
misc.txt
View File

@ -1,606 +0,0 @@
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
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

348
readme.txt Normal file
View File

@ -0,0 +1,348 @@
Arduino is an open-source physical computing platform based on a simple i/o
board and a development environment that implements the Processing/Wiring
language. Arduino can be used to develop stand-alone interactive objects or
can be connected to software on your computer (e.g. Flash, Processing, MaxMSP).
The boards can be assembled by hand or purchased preassembled; the open-source
IDE can be downloaded for free.
For more information, see the website at: http://www.arduino.cc/
or the forums at: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl
To report a bug or a make a suggestions, go to:
[hardware] http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=hwbugs
[software] http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=swbugs
INSTALLATION
Detailed instructions are in reference/Guide_Windows.html and
reference/Guide_MacOSX.html. For Linux, see the Arduino playground:
http://www.arduino.cc/playground/Learning/Linux
If you are using a USB Arduino, you will need to install the drivers for the
FTDI chip on the board. These can be found in the drivers/ directory.
* On Windows, plug in the Arduino board and point the Windows Add Hardware
wizard to the drivers/FTDI USB Drivers sub-directory of the Arduino
application directory.
* On the Mac, mount the FTDIUSBSerialDriver_v2_1_9.dmg (on PPC Macs) or the
FTDIUSBSerialDriver_v2_2_9_Intel.dmg (on Intel Macs) disk image and run the
included FTDIUSBSerialDriver.pkg. You will need to restart your computer.
* On Linux, drivers are included in kernel versions 2.4.20 or greater.
CREDITS
Arduino is an open source project, supported by many.
The Arduino team is composed of Massimo Banzi, David Cuartielles, Tom Igoe,
Gianluca Martino, and David A. Mellis.
Nicholas Zambetti has contributed from the beginning.
Yaniv Steiner and Giorgio Olivero have been supporting the project and are
working at using it with the Instant Soup platform.
Arduino uses the GNU avr-gcc toolchain, avrdude, avr-libc, and code from
Processing and Wiring.
UPDATES
0016 - 2009.05.30
[documentation / examples]
* New communication examples (w/ corresponding Processing and Max/MSP code) by
Tom Igoe.
[core / libraries]
* Adding support for the Arduino Pro and Pro Mini 3.3V / 8 MHz w/ ATmega328.
* Adding support for the LilyPad Arduino w/ ATmega328.
* Adding write(str) and write(buf, size) methods to Print, Serial, and the
Ethernet library Client and Server classes. This allows for more efficient
(fewer packet) Ethernet communication. (Thanks to mikalhart.)
* Improvements to the way the Ethernet library Client class connects and
disconnects. Should reduce or eliminate failed connections and long
timeouts. (Thanks to Bruce Luckcuck.)
* Optimizing the timer0 overflow interrupt handler (used for millis() and
micros()). Thanks to westfw and mikalhart.
* Fixing bug that limited the bit() macro to 15 bits. Thanks to Paul Badger.
* Adding ARDUINO version constant (thanks to prodding from mikalhart).
[environment]
* Ordering the items in the Tools > Board menu.
* Adding "Copy as HTML" command to the Tools menu.
* Eliminating (maybe) the occasional "Couldn't determine program size" errors.
Thanks to the Clever Monkey.
* Moving selection of Linux look-and-feel into the arduino script so it can
be changed by users. Thanks to Eberhard Fahle.
[tools]
* Adding automatic dependency generation to the Makefile. (Lars Immisch)
0015 - 2009.03.26
[core / libraries]
* Adding support for the Arduino Mega (ATmega1280).
[environment]
* Reinstating use of core.a library in the build process, slightly shrinking
compiled sketch sizes. (Thanks to William Westfield.)
* Fixing bug in copy for forum (thanks to eried).
0014 - 2009.03.07
[core / libraries]
* Fixing bug that prevented multiple outgoing Client connections with the
ethernet library.
[environment]
* Clarifying ATmega168 vs. ATmega328 in the Tools > Boards menu.
[tools]
* Updating the Mac OS X AVR tools to AVR MacPack 20081213. This includes
avr-gcc 4.3.2, which should fix problems with functions called from
within interrupts.
0013 - 2009.02.06
[documentation / examples]
* Adding examples for Parallax Ping Sensor and Memsic 2125 accelerometer.
[core / libraries]
* Adding support for the ATmega328. The upload speed is 57600 baud, so you
may need to edit boards.txt or reburn your bootloader if you bought an
ATmega328 w/ bootloader from adafruit or other supplier.
* Adding support for printing floats to Print class (meaning that it works
in the Serial, Ethernet, and LiquidCrystal classes too). Includes two
decimal places.
* Added word, word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(),
lowByte(), and highByte(); see reference for details.
* Working around problem that caused PWM output on pins 5 and 6 to never go
to 0 (causing, for example, an LED to continue to glow faintly).
* Removing cast macros, since function-style casts are a feature of C++. This
should fix contributed libraries that broke in Arduino 0012.
* Modifying pulseIn() to wait for a transition to start timing (i.e. ignoring
any pulse that had already started when the function was called).
* Fixing bug in random() that limited the ranges of values generated. Thanks
to Mikal Hart.
* Modifying delay() to pause for at least the given number of milliseconds.
* Fixing bug in Ethernet library that interfered with use of pins 8 and 9.
* Originating each outgoing network connection from a different port (in the
Client class of the Ethernet library). Thanks to Paul and joquer.
* Updating ATmega168 bootloader to work with standard distributions of avrdude
(responding to signature requests made with the universal SPI command) and
correctly store EEPROM data. Thanks to ladyada.
[environment]
* Omitting unused functions from compiled sketches, reducing their size.
* Changing compilation process to allow for use of EEMEM directive (although
not yet uploading EEPROM data).
0012 - 2008.09.18
* Added Arduino Nano to the boards menu.
* Arduino Pro or Pro Mini (8 MHz) to the boards menu.
* Added Firmata library by Hans Steiner and others. This provides a standard
protocol for communicating with software on the computer.
* Added an Ethernet library for use with the Arduino Ethernet Shield.
* Added a Servo library based on the work of Jim Studt.
* Added a LiquidCrystal library based on the work in the playground. It
supports both 4- and 8-bit modes.
* Improved millis(): it now overflows after 49 days instead of 9 hours, but
now uses slightly more processing power.
* Fixed reversing direction bug in Stepper library. (Thanks to Wayne Holder.)
* Moved insertion of #include <WProgram.h> to after any comments and #include
statements in the main sketch file. This means that an #include <stdlib.h>
now works.
* Upgraded to newer versions of avr-gcc (4.3.0) and avr-libc (1.6). This
provides support for newer Atmel chips, but may increase the size
of sketches.
* Allowing per-board specification of the upload.using preference, allowing
upload via bootloader to some boards and via a programmer to others.
* Added return values to some functions in the Wire library to allow for
better error handling.
* Fixed random() to work with long values.
* Creation of an abstract Print base-class to allow Serial, SoftwareSerial,
and LiquidCrystal to share code for print() and println().
* Incorporated ladyada's watchdog timer mods to the bootloader source, but
only compiling them in for the Pro and Pro Mini (because they are included
in the bootloader being burned on the boards by SparkFun).
0011 - 2008.03.28
* Fixed Find in Reference.
* Added map() function for mapping values from one range to another.
* Added analogReference() function.
* Added interrupts() and noInterrupts() functions.
* Added degrees() and radians() functions.
* Added timeout parameter (in microseconds) to pulseIn(); default is 1 second.
* Support for uploading sketch using a programmer.
* Improved detection of functions that need prototyping.
* Placing function prototypes after #include's and #define's.
* No longer moving #include statements to the top of the sketch.
* Can now drag .pde files onto the Arduino dock icon on Mac OS X.
Thanks to Peter Sgouros.
* New script for downloading the reference from Tom Pollard. Thanks Tom!
* Miscellaneous Mac OS X and other patches from Wim Lewis. Thanks Wim!
* Updated Mac OS X FTDI drivers.
0010 - 2007.10.11
* Support for the LilyPad Arduino.
* Vista support.
* Mac OS X universal distribution.
* Printing!
* Copy for discourse.
* New Board menu replaces the Microcontroller menu.
* New Burn Bootloader menu offers a choice of programmers.
* New and improved keyboard shortcuts.
* Fixed some find/replace bugs.
* Better auto-format.
* Improved error messages when uploading.
* Support for COM10 and higher on Windows.
* Fixed automatic refresh of the Serial Port menu under Windows.
* Quaqua look-and-feel on Mac OS X.
* Reorganization of the Arduino application directory.
0009 - 2007.08.06
* Added support for the Arduino Diecimila.
* Switched to using avrdude (instead of uisp) for uploading sketches.
* Added the ability to burn NG and Diecimila bootlaoders (with an AVRISPmkII).
* Fixed a bug in SoftwareSerial (a hardware serial function was being called
instead of the software serial equivalent). Thanks to brianbr for the
report and fix.
0008 - 2007.06.09
* Updated examples (in distribution and on the website).
* Added an EEPROM library (see reference for details).
* Added a Stepper motor library (see reference).
* Patched to reduce binary sketch sizes by building the Arduino core as
a library (.a) file - now only the needed parts of the core are linked into
a sketch. Originally written by Nicolas Roland, revised by Don Cross.
* Fixed bug in Serial.available(). Report and fix by Don Cross.
* Now recompiling libraries when switching microcontrollers. Report by
Julian Bleecker; fix by Nicholas Zambetti.
* Cleaned up core functions: moved pin definitions into program space to save
RAM, and other minor improvements. Contributed by Jim Studt.
* Lots of reference additions and fixes from Paul Badger.
* Changed default microcontroller to ATmega168 from ATmega8.
* Removed the delay from analogRead().
* Activating TWI/I2C pullup resistors on the ATmega168 (in addition to the
ATmega8).
0007 - 2006.12.25
* Smaller core (about 3.5 KB instead of 4.5 KB).
* Added a SoftwareSerial library (thanks to Antonio, Heather Dewey-Hagborg, and
bigengineer for their help).
* Implemented a Serial.flush() routine; see reference for details.
* Digital pins 0 and 1 can be used for i/o until a call to Serial.begin().
* Replaced avr-lib's uart routines with custom code for handling serial
communication and modified C++ serial commands to call the C serial commands;
the code may behave slightly differently in border cases (e.g. non-standard
speeds, or on overflow).
* Added attachInterrupt() and detachInterrupt() functions for handling of
external interrupts on pins 2 and 3.
* Implemented shiftOut() routine; see reference for details.
* Defining binary constants: e.g. B1010 is 6.
* Mac versions no longer require running of the macosx_setup.command script.
* Windows version comes with the FTDI USB drivers already unzipped.
* New Linux binary distribution (still requires some programs to be
pre-installed).
0006 - 2006.10.21
* Mac version no longer requires Java 1.5, meaning it should run on 10.3.9.
* Added support for analog inputs 6 and 7 and pwm on pins 5 and 6 on the
on the ATmega168 used in the Arduino Mini (extra analog inputs not available
in DIP ATmega168s).
* You now select the baud rate for the serial monitor from within the editor
status bar when the serial monitor is running instead of from the Tools menu.
* Pressing enter within the serial monitor edit box no longer appends a newline
to the message sent to the board.
* Included the Wire (TWI) library from Wiring.
* Updated the reference.
0005 - 2006.09.26
* Applied patch from Hans Steiner to improve Linux support by searching for avr
tools in the user's path instead of expecting them at a fixed location.
* Added an upload.verbose preference for help in debugging.
* ATmega168 support!
* New Wiring-compatible randomSeed(), random(max) and random(min, max) functions
(except operating on longs instead of floats).
* Fixed bug that sometimes caused uploading of old versions of a sketch.
* Serial monitor nows include an interface to send messages to the Arduino
board. Pressing return appends a newline, pushing the send button doesn't.
* Now displaying "burning bootloader..." and "compiling..." status messages.
0004 - 2006.04.26
* Main sketch is now compiled as C++ (instead of C).
* Updated avr toolchain.
* printInteger(), printHex(), etc. now handle longs.
* millis() fixed (now overflows after days, not minutes)
* Fixed path to java in Windows run.bat.
* Added Matrix and Sprite libraries (written with Nicholas Zambetti).
* PWM now working on pin 11 (in addition to pins 9 and 10).
* Slowed PWM frequency (on all three PWM pins) to 1KHz.
* Now give an error if compiled sketch is too big.
* Fixed abs(), min(), max(), and constrain() macros.
* Added menu items to the IDE to burn bootloader.
* Now display binary sketch size on upload, and give error if too big.
* Added C++ serial library.
* Resynced with Processing/Wiring IDE code (improved auto-format, faster logging
to serial monitor console, other bug fixes)
* New library system.
* Updated to latest version of the RXTX serial library; Mac users will need to
rerun macosx_setup.command.
0003 - 2006.01.16
API Changes
* Reversed the analog input pins to correspond to newer boards. This means
a call, for example, to analogRead(0) must be changed to analogRead(5) in
order to read the same physical pin.
* Added a printNewline() function (which sends '\n' = ASCII 10).
New Stuff
* Reference is included (features native to C not yet documented).
* Serial monitor added (click the toolbar button to turn it on or off). Baud
rate is controlled by the Serial Monitor Baud Rate Menu, defaults to 9600.
Icon and implementation from Wiring.
* Serial port menu now automatically refreshes when opened.
* New blue color scheme and icons courtesy of Noah Shibley (colors are hardcoded
into the source to ensure consistency with image files).
* Keyspan and FTDI USB drivers included with Mac and Windows distributions.
Bug Fixes
* millis() now updates every millisecond instead of every second.
* Bootloader included with Windows distribution (it was already in the Mac
dist).
* Updated icon of the Windows executable.
* Now flushing the serial port before uploading (should fix some errors).
* Improved accuracy of the delayMicroseconds() function.
Other
* Upload rate no longer selectable from a menu within the IDE. Instead, edit
the serial.download_rate item in the preferences.txt file.
* Created Xcode project for building Arduino on the Mac (doesn't yet regenerate
the grammar files or package the distribution); active target should be "App".
* Removed unused or unimplemented items from menus.
0002 - 2005.10.05
* New build process no longer uses makefiles; now controlled by preferences.txt.
* core/ replaced with targets/; can now link against Wiring libraries.
* Replaced print() with printString, printInteger, printHex, printByte, etc.
* Added menu for selecting serial port speed.
* Updated icon.
* Bootloader shrunk to less than 1 KB; fuses updated accordingly.
* Added serialRead(), serialAvailable(), and delayMicroseconds().
0001 - 2005.08.25
* This is the first released of the unified IDE + language library
it's a terrible hack... but it works. at the moment it's in alpha stage
but it can be used to work.
* The processing preprocessor is included but not used.

1458
todo.txt

File diff suppressed because it is too large Load Diff