diff --git a/app/src/processing/app/contrib/LocalContribution.java b/app/src/processing/app/contrib/LocalContribution.java index 20af38f22..621448000 100644 --- a/app/src/processing/app/contrib/LocalContribution.java +++ b/app/src/processing/app/contrib/LocalContribution.java @@ -40,7 +40,7 @@ import processing.app.*; public abstract class LocalContribution extends Contribution { static public final String DELETION_FLAG = "flagged_for_deletion"; - protected String id; // 1 + protected String id; // 1 (unique id for this library) protected int latestVersion; // 103 protected File folder; protected HashMap properties; @@ -69,7 +69,9 @@ public abstract class LocalContribution extends Contribution { try { version = Integer.parseInt(properties.get("version")); } catch (NumberFormatException e) { - e.printStackTrace(); + System.err.println("The version number for the “" + name + "” library is not set properly."); + System.err.println("Please contact the library author to fix it according to the guidelines."); + //e.printStackTrace(); } prettyVersion = properties.get("prettyVersion"); diff --git a/build/shared/revisions.txt b/build/shared/revisions.txt index 772659f8d..9905d8237 100644 --- a/build/shared/revisions.txt +++ b/build/shared/revisions.txt @@ -1,3 +1,104 @@ +PROCESSING 2.0b9 (REV 0217) 18 May 2013 + +The 2.0 interface has arrived! Mmm... pretty. + +We've removed Android and JavaScript modes from the default download. You +can easily install them by selected "Add Mode" from the Mode menu. They've +been removed because the changes have not kept pace with the rest of +Processing, and it was holding up the release of 2.0. As separate projects, +we hope it'll be easier for volunteers to get involved, rather than our +tiny, worn out development team. View the projects here: +https://github.com/fjenett/javascript-mode-processing +https://github.com/processing/processing-android + +There are also lots of goodies in the new data classes found in the +processing.data package that will make it much easier to handle data from +inside Processing. More documentation coming soon! + +We're hoping this is the last beta before 2.0, but we're still haggling +with one or two issues that could require a beta 10. That's a lot of beta. + +[ fixes ] + ++ Major OutOfMemoryError problem with images fixed by Andres! + http://code.google.com/p/processing/issues/detail?id=1353 + https://github.com/processing/processing/issues/1391 + ++ Lots of fixes for the library/mode/tool manager. + Repairing colors, layout, etc. along with lots of internal fixes. + ++ Fix MovieMaker, it was completely broken + https://github.com/processing/processing/issues/1669 + ++ processing-java dialog window was huge + https://github.com/processing/processing/issues/1748 + ++ Library with bad version number in version causes stack trace to print. + Added warning message about it with a pointer to the remedy. + ++ "New version available" mesage is showing HTML tags around it + https://github.com/processing/processing/issues/1684 + ++ "Update" not working in the manager + https://github.com/processing/processing/issues/1701 + ++ tint() with JAVA2D does not automatically refresh (with possible fix) + https://github.com/processing/processing/issues/1730 + ++ Lines not properly renderered in P3D when using ortographic projection + https://github.com/processing/processing/issues/1661 + ++ Fix JSON and get it working properly. Now official API. + https://github.com/processing/processing/issues/1660 + https://github.com/processing/processing/issues/1680 + ++ Plus dozens of other P2D/P3D fixes that Andres snuck in there. + +[ changes ] + ++ New images for modes. New design! + ++ Added loadJSONArray(), loadJSONObject. + ++ Hundreds of changes to the new data classes, sorting out their API, etc. + ++ Fix autoformat to indent like the p5 book/examples. Thanks pif! + http://code.google.com/p/processing/issues/detail?id=325 + https://github.com/processing/processing/issues/364 + ++ Removed netscape.javascript stuff that was only relevant for applets + ++ Change error message for libraries (especially serial) for 32- vs 64-bit + to clarify that the 32- or 64-bit version of Processing can be used instead. + ++ Rebuilt the internal Runner to use SocketAttach... This may bring up + a firewall message on some machines. Don't worry, it's safe (as long as + the message is showing up when you hit Run, that's expected). + ++ Add set(x, y) to PVector. + ++ Removed div() and mult() from PVector, since not a legit math operation. + https://code.google.com/p/processing/issues/detail?id=1506 + https://github.com/processing/processing/issues/1544 + ++ loadImage() with TGA causing images to be upside-down + https://github.com/processing/processing/issues/1682 + ++ Added getIntContent(), getFloatContent() to XML + ++ Table switch to CATEGORY instead of CATEGORICAL (not documented) + ++ removed createXML() and createTable()... just use 'new' for these + ++ Add official API for mouse wheel support + https://github.com/processing/processing/issues/1461 + http://code.google.com/p/processing/issues/detail?id=1423 + ++ Incorporated JDI changes from Manindra. This makes the download a little + larger, but is a step toward being able to have a simpler download that + only requires a JRE (and is therefore much smaller!) + + PROCESSING 2.0b8 (REV 0216) 24 February 2013 Dead bugs on the windscreen as we head down the road to 2.0. diff --git a/core/src/processing/core/PVector.java b/core/src/processing/core/PVector.java index 5cff06670..2a631449a 100644 --- a/core/src/processing/core/PVector.java +++ b/core/src/processing/core/PVector.java @@ -544,6 +544,7 @@ public class PVector implements Serializable { * @usage web_application * @param n the number to multiply with the vector * @brief Multiply a vector by a scalar or one vector by another + * @nowebref */ public void mult(float n) { x *= n; @@ -554,6 +555,7 @@ public class PVector implements Serializable { /** * @param v the vector to multiply by the scalar + * @nowebref */ static public PVector mult(PVector v, float n) { return mult(v, n, null); @@ -563,6 +565,7 @@ public class PVector implements Serializable { /** * Multiply a vector by a scalar, and write the result into a target PVector. * @param target PVector to store the result + * @nowebref */ static public PVector mult(PVector v, float n, PVector target) { if (target == null) { @@ -573,30 +576,6 @@ public class PVector implements Serializable { return target; } - public void mult(PVector v) { - x *= v.x; - y *= v.y; - z *= v.z; - } - - - /** - * @param v1 the x, y, and z components of a PVector - * @param v2 the x, y, and z components of a PVector - */ - static public PVector mult(PVector v1, PVector v2) { - return mult(v1, v2, null); - } - - - static public PVector mult(PVector v1, PVector v2, PVector target) { - if (target == null) { - target = new PVector(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z); - } else { - target.set(v1.x*v2.x, v1.y*v2.y, v1.z*v2.z); - } - return target; - } /** @@ -610,6 +589,7 @@ public class PVector implements Serializable { * @usage web_application * @param n the value to divide by * @brief Divide a vector by a scalar or one vector by another + * @nowebref */ public void div(float n) { x /= n; @@ -623,6 +603,7 @@ public class PVector implements Serializable { * @param v any variable of type PVector * @param n the number to divide with the vector * @return a new vector that is v1 / n + * @nowebref */ static public PVector div(PVector v, float n) { return div(v, n, null); @@ -633,6 +614,7 @@ public class PVector implements Serializable { * @param v any variable of type PVector * @param n the number to divide with the vector * @param target PVector to store the result + * @nowebref */ static public PVector div(PVector v, float n, PVector target) { if (target == null) { @@ -644,34 +626,6 @@ public class PVector implements Serializable { } - /** - * Divide each element of one vector by the elements of another vector. - */ - public void div(PVector v) { - x /= v.x; - y /= v.y; - z /= v.z; - } - - - /** - * Divide each element of one vector by the individual elements of another - * vector, and return the result as a new PVector. - */ - static public PVector div(PVector v1, PVector v2) { - return div(v1, v2, null); - } - - static public PVector div(PVector v1, PVector v2, PVector target) { - if (target == null) { - target = new PVector(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z); - } else { - target.set(v1.x/v2.x, v1.y/v2.y, v1.z/v2.z); - } - return target; - } - - /** * ( begin auto-generated from PVector_dist.xml ) * diff --git a/core/src/processing/data/StringList.java b/core/src/processing/data/StringList.java index 1807b4528..228ffc0f2 100644 --- a/core/src/processing/data/StringList.java +++ b/core/src/processing/data/StringList.java @@ -143,9 +143,17 @@ public class StringList implements Iterable { /** Remove all instances of a particular value */ public boolean removeValues(String value) { int ii = 0; - for (int i = 0; i < count; i++) { - if (data[i] != value) { - data[ii++] = data[i]; + if (value == null) { + for (int i = 0; i < count; i++) { + if (data[i] != null) { + data[ii++] = data[i]; + } + } + } else { + for (int i = 0; i < count; i++) { + if (!value.equals(data[i])) { + data[ii++] = data[i]; + } } } boolean changed = count == ii; diff --git a/core/todo.txt b/core/todo.txt index 5ece09b51..dc5b3ce99 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -1,5 +1,4 @@ 0217 core -X improve load/save of .gz files with Table, clear up some .bin issues X add set(x, y) to PVector (shiffman) X loadImage() with TGA causing images to be upside-down X https://github.com/processing/processing/issues/1682 @@ -23,6 +22,11 @@ X https://github.com/processing/processing/issues/1730 X change how updatePixels() is called in PGraphicsJava2D X only call setModified(), not updatePixels() in endDraw() +andres +A lines not properly renderered in P3D when using ortographic projection +A https://github.com/processing/processing/issues/1661 +A "deleted n framebuffer objects" + earlier X decision on registered methods X remove registerPre() et al @@ -64,24 +68,6 @@ X ref: "negative values if the mouse wheel was rotated up or away from the use X http://docs.oracle.com/javase/6/docs/api/java/awt/event/MouseWheelEvent.html#getWheelRotation() X http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseWheelEvent.html#getWheelRotation() -before release -_ "deleted n framebuffer objects" -_ add options for image.save() (or saveImage?) -_ add quality=[0,1] for jpeg images -_ add dpi=[0,n] for for png images - -before 2.0 -_ PImage.loadPixels() shouldn't be calling out to the renderer -_ setting image.parent = null for it makes it work again for get().save() case -_ PShape should be cached as well - -high -_ draw() called again before finishing on OS X (retina issue) -_ https://github.com/processing/processing/issues/1709 -_ Linux sometimes not responding correctly w/ the size() command -_ https://github.com/processing/processing/issues/1672 - - data X are we comfortable with setInt/Float/etc instead of just set(int, blah) X yes, better to have parity @@ -103,40 +89,11 @@ o Dict and List could be interfaces? X "hash.toJSONObject()" or "new JSONObject(hash)" X opted to use "new JSONObject" version, appears less awkward o match? find? on StringList? -_ can we use String... for options? or does it screw up the method signature? -_ and would we have to always concatenate arrays to prepend extensions, etc -_ include Instant and Interval? (or just Time and TimeSpan) -_ naming for descending sort -_ rsort(), sortReverse(), sortKeysReverse, -_ sortDescend, sortDescending, sortKeysDescending, -_ sortHighLow, sortHigh, sortHighest, sortDown -_ it's going to be File or Reader (mostly BufferedReader) everywhere -_ though TableODS needs an InputStream... -_ and XML could use InputStream if we hope to be able to reflect doc encoding -_ ok, so File, Reader, and InputStream (where needed) -_ setMissingXxxx() -> should this live in PApplet? be static? -_ cons: static stinks, diff tables might use diff values -_ will also need an iterator for the Dict class ala Map.Entry -_ using Iterable for rows(), keys(), etc -_ generally more efficient for Table, but slower for FloatHash and IntHash -_ could use an int array instead, but a bit hokey in places -_ Iterable, Iterator, or [] returned for keys(), rows(), etc. -_ list, dict, json, table are each more efficient at different things -_ keys(), rows(), etc. should return something Iterable -_ whether that means an array or an actual Iterator or even a Set -_ that way we can do what's most efficient -_ then we add keyIterator() and others to handle the other case (deletion) -_ blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with -_ means that JSON.keys() -> JSON.keyIterator(), JSON.keySet() -> JSON.keys() -_ what should they all return? -_ remove -> true/false based on whether it found something? -_ remove all -> the number removed? -_ List: remove(), append(), index(), etc all use values -_ removeIndex(index) is the other -_ otherwise remove() would be the only one that dealt with indices -_ Dict will use remove(key), so using remove(index) as default -_ and removeValue(value) is probably used less -_ introduce remap() instead of map() (if not deprecate?) +X naming for descending sort +o rsort(), sortReverse(), sortKeysReverse, +o sortDescend, sortDescending, sortKeysDescending, +o sortHighLow, sortHigh, sortHighest, sortDown +X sortReverse() is the final decision data / document X no save/load for hash and list classes @@ -173,10 +130,9 @@ X hasAttribute in XML, containsKey in java's Map, hasKey in JSON X hasChildren() is another precedent o contains() is nice, but containsKey() is weird, often not 'containing' X hasKey/hasValue is best; fewest changes and most descriptive -_ not doing print() methods, since alternatives are more descriptive -_ println(obj) and obj.write(System.out) are both better json +X loadJSONArray, loadJSONObject X getIntArray() for JSONArray X misc bugs with last release X https://github.com/processing/processing/issues/1660 @@ -185,7 +141,6 @@ X Dan having trouble with JSON X keys() vs keySet() in JSON.. X keys() doesn't iterate, keySet() introduces 'Set' type X parseJSONObject(x) and parseJSONArray(x) -_ add indent= as option for JSON save table X do we need getColumnType() inside TableRow? @@ -216,6 +171,26 @@ o maybe it's Table.INT since it's for advanced users anyway o problem is loading types from file, no way to access it from code o CATEGORICAL -> CATEGORY? ORDINAL? X add clearRows() +X improve load/save of .gz files with Table, clear up some .bin issues + +xml +o add nodes() (no) or children() to XML? +X not necessary, getChildren() already exists + +before 2.0 +_ PImage.loadPixels() shouldn't be calling out to the renderer +_ setting image.parent = null for it makes it work again for get().save() case +_ PShape should be cached as well +_ add options for image.save() (or saveImage?) +_ add quality=[0,1] for jpeg images +_ add dpi=[0,n] for for png images + +high +_ draw() called again before finishing on OS X (retina issue) +_ https://github.com/processing/processing/issues/1709 +_ Linux sometimes not responding correctly w/ the size() command +_ https://github.com/processing/processing/issues/1672 + _ function that will convert awful CSV to TSV.. or something else? _ maybe to write binary instead? then read the binary file once it's ok? _ if loading from a File object @@ -246,14 +221,43 @@ _ table.join(anotherTable) _ getInt() on categorial to return index? _ getCategories() and getCategory() methods to query names? -xml -o add nodes() (no) or children() to XML? -X not necessary, getChildren() already exists +data _ add indent= as option for XML save +_ add indent= as option for JSON save +_ not doing print() methods, since alternatives are more descriptive +_ println(obj) and obj.write(System.out) are both better +_ can we use String... for options? or does it screw up the method signature? +_ and would we have to always concatenate arrays to prepend extensions, etc +_ include Instant and Interval? (or just Time and TimeSpan) +_ it's going to be File or Reader (mostly BufferedReader) everywhere +_ though TableODS needs an InputStream... +_ and XML could use InputStream if we hope to be able to reflect doc encoding +_ ok, so File, Reader, and InputStream (where needed) +_ setMissingXxxx() -> should this live in PApplet? be static? +_ cons: static stinks, diff tables might use diff values +_ will also need an iterator for the Dict class ala Map.Entry +_ using Iterable for rows(), keys(), etc +_ generally more efficient for Table, but slower for FloatHash and IntHash +_ could use an int array instead, but a bit hokey in places +_ Iterable, Iterator, or [] returned for keys(), rows(), etc. +_ list, dict, json, table are each more efficient at different things +_ keys(), rows(), etc. should return something Iterable +_ whether that means an array or an actual Iterator or even a Set +_ that way we can do what's most efficient +_ then we add keyIterator() and others to handle the other case (deletion) +_ blogs.oracle.com/CoreJavaTechTips/entry/using_enhanced_for_loops_with +_ means that JSON.keys() -> JSON.keyIterator(), JSON.keySet() -> JSON.keys() +_ what should they all return? +_ remove -> true/false based on whether it found something? +_ remove all -> the number removed? +_ List: remove(), append(), index(), etc all use values +_ removeIndex(index) is the other +_ otherwise remove() would be the only one that dealt with indices +_ Dict will use remove(key), so using remove(index) as default +_ and removeValue(value) is probably used less +_ introduce remap() instead of map() (if not deprecate?) andres -A lines not properly renderered in P3D when using ortographic projection -A https://github.com/processing/processing/issues/1661 _ P2D/P3D sketches don't get focus until clicked _ also problem for Java2D when canvas is used? _ need to standardize canvas handling diff --git a/todo.txt b/todo.txt index 7c85a50d0..2b9abdaf1 100644 --- a/todo.txt +++ b/todo.txt @@ -34,6 +34,10 @@ X change line endings on Windows to only be replaced during dist X otherwise marks revisions.txt as changed X processing-java dialog window huge X https://github.com/processing/processing/issues/1748 +X library with bad version number in version causes stack trace to print +X added println warning message about it +X update mode images again from Casey +o also send pull request for Florian manager X "New version available" mesage is showing html tags around it @@ -45,17 +49,6 @@ X get update text to align vertically X "Update" not working in the library manager X https://github.com/processing/processing/issues/1701 -_ move old Google Code SVN back to processing.org -_ then cull out the old branches/tags from the Github repo - -_ library with bad version number in version causes crash -_ UnsatisfiedLinkError causes huge message... -_ error report cleanups haven't been fixed yet -_ update mode images again from Casey -_ also send pull request for Florian -_ remove initRequirements from Base (no longer need JDI) -_ move this into Android mode? - 2.0 FINAL / new interface _ most of theme probably moves back into lib @@ -210,6 +203,12 @@ _ how to disclose to users? _ only send for items that are part of the public list _ otherwise we're sending private libraries/installs _ although this won't pick up old libraries not on the new system +_ move old Google Code SVN back to processing.org +_ then cull out the old branches/tags from the Github repo +_ UnsatisfiedLinkError causes huge message... +_ error report cleanups haven't been fixed yet +_ remove initRequirements from Base (no longer need JDI) +_ move this into Android mode? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .