diff --git a/2010.07.03 - DistributedStats/.classpath b/2010.07.03 - DistributedStats/.classpath
new file mode 100644
index 0000000..4a91a6a
--- /dev/null
+++ b/2010.07.03 - DistributedStats/.classpath
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/2010.07.03 - DistributedStats/.project b/2010.07.03 - DistributedStats/.project
new file mode 100644
index 0000000..ef7537d
--- /dev/null
+++ b/2010.07.03 - DistributedStats/.project
@@ -0,0 +1,17 @@
+
+
+ Kata - 2010.07.03 - DistributedStats
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/2010.07.03 - DistributedStats/.settings/org.eclipse.jdt.core.prefs b/2010.07.03 - DistributedStats/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f90020c
--- /dev/null
+++ b/2010.07.03 - DistributedStats/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+#Mon May 31 18:09:44 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/2010.07.03 - DistributedStats/META-INF/LICENSE.txt b/2010.07.03 - DistributedStats/META-INF/LICENSE.txt
new file mode 100644
index 0000000..75b5248
--- /dev/null
+++ b/2010.07.03 - DistributedStats/META-INF/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) 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. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/2010.07.03 - DistributedStats/META-INF/MANIFEST.MF b/2010.07.03 - DistributedStats/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..0934483
--- /dev/null
+++ b/2010.07.03 - DistributedStats/META-INF/MANIFEST.MF
@@ -0,0 +1,41 @@
+Manifest-Version: 1.0
+Archiver-Version: Plexus Archiver
+Created-By: 1.6.0_17 (Sun Microsystems Inc.)
+Built-By: pemben
+Build-Jdk: 1.6.0_17
+Implementation-Title: Commons Lang
+Implementation-Vendor: The Apache Software Foundation
+Implementation-Vendor-Id: org.apache
+Implementation-Version: 2.5
+Specification-Title: Commons Lang
+Specification-Vendor: The Apache Software Foundation
+Specification-Version: 2.5
+X-Compile-Source-JDK: 1.3
+X-Compile-Target-JDK: 1.3
+Export-Package: org.apache.commons.lang.enum;version="2.5",org.apache.
+ commons.lang.enums;version="2.5",org.apache.commons.lang.builder;vers
+ ion="2.5",org.apache.commons.lang.time;version="2.5",org.apache.commo
+ ns.lang.exception;version="2.5",org.apache.commons.lang.mutable;versi
+ on="2.5",org.apache.commons.lang.text;version="2.5",org.apache.common
+ s.lang.reflect;version="2.5",org.apache.commons.lang.math;version="2.
+ 5",org.apache.commons.lang;version="2.5"
+Tool: Bnd-0.0.238
+Bundle-Name: Commons Lang
+Bundle-Vendor: The Apache Software Foundation
+Bundle-Version: 2.5
+Bnd-LastModified: 1266795463687
+Bundle-ManifestVersion: 2
+Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
+Bundle-Description: Commons Lang, a package of Java utility classes fo
+ r the classes that are in java.lang's hierarchy, or are consid
+ ered to be so standard as to justify existence in java.lang.
+Import-Package: org.apache.commons.lang;version="2.5",org.apache.commo
+ ns.lang.builder;version="2.5",org.apache.commons.lang.enum;version="2
+ .5",org.apache.commons.lang.enums;version="2.5",org.apache.commons.la
+ ng.exception;version="2.5",org.apache.commons.lang.math;version="2.5"
+ ,org.apache.commons.lang.mutable;version="2.5",org.apache.commons.lan
+ g.reflect;version="2.5",org.apache.commons.lang.text;version="2.5",or
+ g.apache.commons.lang.time;version="2.5"
+Bundle-SymbolicName: org.apache.commons.lang
+Bundle-DocURL: http://commons.apache.org/lang/
+
diff --git a/2010.07.03 - DistributedStats/META-INF/NOTICE.txt b/2010.07.03 - DistributedStats/META-INF/NOTICE.txt
new file mode 100644
index 0000000..bc08472
--- /dev/null
+++ b/2010.07.03 - DistributedStats/META-INF/NOTICE.txt
@@ -0,0 +1,5 @@
+Apache Commons Lang
+Copyright 2001-2010 The Apache Software Foundation
+
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/2010.07.03 - DistributedStats/META-INF/maven/commons-lang/commons-lang/pom.properties b/2010.07.03 - DistributedStats/META-INF/maven/commons-lang/commons-lang/pom.properties
new file mode 100644
index 0000000..ae99179
--- /dev/null
+++ b/2010.07.03 - DistributedStats/META-INF/maven/commons-lang/commons-lang/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Sun Feb 21 23:38:24 GMT 2010
+version=2.5
+groupId=commons-lang
+artifactId=commons-lang
diff --git a/2010.07.03 - DistributedStats/META-INF/maven/commons-lang/commons-lang/pom.xml b/2010.07.03 - DistributedStats/META-INF/maven/commons-lang/commons-lang/pom.xml
new file mode 100644
index 0000000..a59fb73
--- /dev/null
+++ b/2010.07.03 - DistributedStats/META-INF/maven/commons-lang/commons-lang/pom.xml
@@ -0,0 +1,542 @@
+
+
+
+
+ org.apache.commons
+ commons-parent
+ 12
+
+ 4.0.0
+ commons-lang
+ commons-lang
+ 2.5
+ Commons Lang
+
+ 2001
+
+ Commons Lang, a package of Java utility classes for the
+ classes that are in java.lang's hierarchy, or are considered to be so
+ standard as to justify existence in java.lang.
+
+
+ http://commons.apache.org/lang/
+
+
+ jira
+ http://issues.apache.org/jira/browse/LANG
+
+
+
+ scm:svn:http://svn.apache.org/repos/asf/commons/proper/lang/trunk
+ scm:svn:https://svn.apache.org/repos/asf/commons/proper/lang/trunk
+ http://svn.apache.org/viewvc/commons/proper/lang/trunk
+
+
+
+
+ Daniel Rall
+ dlr
+ dlr@finemaltcoding.com
+ CollabNet, Inc.
+
+ Java Developer
+
+
+
+ Stephen Colebourne
+ scolebourne
+ scolebourne@joda.org
+ SITA ATS Ltd
+ 0
+
+ Java Developer
+
+
+
+ Henri Yandell
+ bayard
+ bayard@apache.org
+
+
+ Java Developer
+
+
+
+ Steven Caswell
+ scaswell
+ stevencaswell@apache.org
+
+
+ Java Developer
+
+ -5
+
+
+ Robert Burrell Donkin
+ rdonkin
+ rdonkin@apache.org
+
+
+ Java Developer
+
+
+
+ Gary D. Gregory
+ ggregory
+ ggregory@seagullsw.com
+ Seagull Software
+ -8
+
+ Java Developer
+
+
+
+ Phil Steitz
+ psteitz
+ phil@steitz.com
+
+
+ Java Developer
+
+
+
+ Fredrik Westermarck
+ fredrik
+
+
+
+ Java Developer
+
+
+
+ James Carman
+ jcarman
+ jcarman@apache.org
+ Carman Consulting, Inc.
+
+ Java Developer
+
+
+
+ Niall Pemberton
+ niallp
+
+ Java Developer
+
+
+
+ Matt Benson
+ mbenson
+
+ Java Developer
+
+
+
+ Joerg Schaible
+ joehni
+ joerg.schaible@gmx.de
+
+ Java Developer
+
+ +1
+
+
+ Oliver Heger
+ oheger
+ oheger@apache.org
+ +1
+
+ Java Developer
+
+
+
+ Paul Benedict
+ pbenedict
+ pbenedict@apache.org
+
+ Java Developer
+
+
+
+
+
+ C. Scott Ananian
+
+
+ Chris Audley
+
+
+ Stephane Bailliez
+
+
+ Michael Becke
+
+
+ Benjamin Bentmann
+
+
+ Ola Berg
+
+
+ Nathan Beyer
+
+
+ Stefan Bodewig
+
+
+ Janek Bogucki
+
+
+ Mike Bowler
+
+
+ Sean Brown
+
+
+ Alexander Day Chaffee
+
+
+ Al Chou
+
+
+ Greg Coladonato
+
+
+ Maarten Coene
+
+
+ Justin Couch
+
+
+ Michael Davey
+
+
+ Norm Deane
+
+
+ Ringo De Smet
+
+
+ Russel Dittmar
+
+
+ Steve Downey
+
+
+ Matthias Eichel
+
+
+ Christopher Elkins
+
+
+ Chris Feldhacker
+
+
+ Pete Gieser
+
+
+ Jason Gritman
+
+
+ Matthew Hawthorne
+
+
+ Michael Heuer
+
+
+ Chris Hyzer
+
+
+ Marc Johnson
+
+
+ Shaun Kalley
+
+
+ Tetsuya Kaneuchi
+
+
+ Nissim Karpenstein
+
+
+ Ed Korthof
+
+
+ Holger Krauth
+
+
+ Rafal Krupinski
+
+
+ Rafal Krzewski
+
+
+ Craig R. McClanahan
+
+
+ Rand McNeely
+
+
+ Hendrik Maryns
+
+
+ Dave Meikle
+
+
+ Nikolay Metchev
+
+
+ Kasper Nielsen
+
+
+ Tim O'Brien
+
+
+ Brian S O'Neill
+
+
+ Andrew C. Oliver
+
+
+ Alban Peignier
+
+
+ Moritz Petersen
+
+
+ Dmitri Plotnikov
+
+
+ Neeme Praks
+
+
+ Eric Pugh
+
+
+ Stephen Putman
+
+
+ Travis Reeder
+
+
+ Antony Riley
+
+
+ Scott Sanders
+
+
+ Ralph Schaer
+
+
+ Henning P. Schmiedehausen
+
+
+ Sean Schofield
+
+
+ Robert Scholte
+
+
+ Reuben Sivan
+
+
+ Ville Skytta
+
+
+ Jan Sorensen
+
+
+ Glen Stampoultzis
+
+
+ Scott Stanchfield
+
+
+ Jon S. Stevens
+
+
+ Sean C. Sullivan
+
+
+ Ashwin Suresh
+
+
+ Helge Tesgaard
+
+
+ Arun Mammen Thomas
+
+
+ Masato Tezuka
+
+
+ Jeff Varszegi
+
+
+ Chris Webb
+
+
+ Mario Winterer
+
+
+ Stepan Koltsov
+
+
+ Holger Hoffstatte
+
+
+ Derek C. Ashmore
+
+
+
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.3
+ 1.3
+ lang
+ 2.5
+ LANG
+ 12310481
+ **/RandomUtilsFreqTest.java
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*Test.java
+
+
+ **/EntitiesPerformanceTest.java
+ ${random.exclude.test}
+
+
+
+
+ maven-assembly-plugin
+
+
+ src/assembly/bin.xml
+ src/assembly/src.xml
+
+ gnu
+
+
+
+
+
+
+
+
+ test-random-freq
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/RandomUtilsFreqTest.java
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-changes-plugin
+ 2.3
+
+ ${basedir}/src/site/changes/changes.xml
+ %URL%/%ISSUE%
+
+
+
+
+ changes-report
+
+
+
+
+
+ maven-checkstyle-plugin
+ 2.3
+
+ ${basedir}/checkstyle.xml
+ false
+
+
+
+
+ org.codehaus.mojo
+ clirr-maven-plugin
+ 2.2.2
+
+ 2.4
+ info
+
+
+
+
+
+
diff --git a/2010.07.03 - DistributedStats/META-INF/maven/org.apache.commons/commons-lang3/pom.properties b/2010.07.03 - DistributedStats/META-INF/maven/org.apache.commons/commons-lang3/pom.properties
new file mode 100644
index 0000000..cd9845d
--- /dev/null
+++ b/2010.07.03 - DistributedStats/META-INF/maven/org.apache.commons/commons-lang3/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Sun Jul 25 23:33:17 PDT 2010
+version=3.0-beta
+groupId=org.apache.commons
+artifactId=commons-lang3
diff --git a/2010.07.03 - DistributedStats/META-INF/maven/org.apache.commons/commons-lang3/pom.xml b/2010.07.03 - DistributedStats/META-INF/maven/org.apache.commons/commons-lang3/pom.xml
new file mode 100644
index 0000000..86121e1
--- /dev/null
+++ b/2010.07.03 - DistributedStats/META-INF/maven/org.apache.commons/commons-lang3/pom.xml
@@ -0,0 +1,554 @@
+
+
+
+
+ org.apache.commons
+ commons-parent
+ 17
+
+ 4.0.0
+ org.apache.commons
+ commons-lang3
+ 3.0-beta
+ Commons Lang
+
+ 2001
+
+ Commons Lang, a package of Java utility classes for the
+ classes that are in java.lang's hierarchy, or are considered to be so
+ standard as to justify existence in java.lang.
+
+
+ http://commons.apache.org/lang/
+
+
+ jira
+ http://issues.apache.org/jira/browse/LANG
+
+
+
+ scm:svn:http://svn.apache.org/repos/asf/commons/proper/lang/trunk
+ scm:svn:https://svn.apache.org/repos/asf/commons/proper/lang/trunk
+ http://svn.apache.org/viewvc/commons/proper/lang/trunk
+
+
+
+
+ Daniel Rall
+ dlr
+ dlr@finemaltcoding.com
+ CollabNet, Inc.
+
+ Java Developer
+
+
+
+ Stephen Colebourne
+ scolebourne
+ scolebourne@joda.org
+ SITA ATS Ltd
+ 0
+
+ Java Developer
+
+
+
+ Henri Yandell
+ bayard
+ bayard@apache.org
+
+
+ Java Developer
+
+
+
+ Steven Caswell
+ scaswell
+ stevencaswell@apache.org
+
+
+ Java Developer
+
+ -5
+
+
+ Robert Burrell Donkin
+ rdonkin
+ rdonkin@apache.org
+
+
+ Java Developer
+
+
+
+ Gary D. Gregory
+ ggregory
+ ggregory@seagullsw.com
+ Seagull Software
+ -8
+
+ Java Developer
+
+
+
+ Phil Steitz
+ psteitz
+ phil@steitz.com
+
+
+ Java Developer
+
+
+
+ Fredrik Westermarck
+ fredrik
+
+
+
+ Java Developer
+
+
+
+ James Carman
+ jcarman
+ jcarman@apache.org
+ Carman Consulting, Inc.
+
+ Java Developer
+
+
+
+ Niall Pemberton
+ niallp
+
+ Java Developer
+
+
+
+ Matt Benson
+ mbenson
+
+ Java Developer
+
+
+
+ Joerg Schaible
+ joehni
+ joerg.schaible@gmx.de
+
+ Java Developer
+
+ +1
+
+
+ Oliver Heger
+ oheger
+ oheger@apache.org
+ +1
+
+ Java Developer
+
+
+
+ Paul Benedict
+ pbenedict
+ pbenedict@apache.org
+
+ Java Developer
+
+
+
+
+
+ C. Scott Ananian
+
+
+ Chris Audley
+
+
+ Stephane Bailliez
+
+
+ Michael Becke
+
+
+ Benjamin Bentmann
+
+
+ Ola Berg
+
+
+ Nathan Beyer
+
+
+ Stefan Bodewig
+
+
+ Janek Bogucki
+
+
+ Mike Bowler
+
+
+ Sean Brown
+
+
+ Alexander Day Chaffee
+
+
+ Al Chou
+
+
+ Greg Coladonato
+
+
+ Maarten Coene
+
+
+ Justin Couch
+
+
+ Michael Davey
+
+
+ Norm Deane
+
+
+ Ringo De Smet
+
+
+ Russel Dittmar
+
+
+ Steve Downey
+
+
+ Matthias Eichel
+
+
+ Christopher Elkins
+
+
+ Chris Feldhacker
+
+
+ Pete Gieser
+
+
+ Jason Gritman
+
+
+ Matthew Hawthorne
+
+
+ Michael Heuer
+
+
+ Chris Hyzer
+
+
+ Marc Johnson
+
+
+ Shaun Kalley
+
+
+ Tetsuya Kaneuchi
+
+
+ Nissim Karpenstein
+
+
+ Ed Korthof
+
+
+ Holger Krauth
+
+
+ Rafal Krupinski
+
+
+ Rafal Krzewski
+
+
+ Craig R. McClanahan
+
+
+ Rand McNeely
+
+
+ Hendrik Maryns
+
+
+ Dave Meikle
+
+
+ Nikolay Metchev
+
+
+ Kasper Nielsen
+
+
+ Tim O'Brien
+
+
+ Brian S O'Neill
+
+
+ Andrew C. Oliver
+
+
+ Alban Peignier
+
+
+ Moritz Petersen
+
+
+ Dmitri Plotnikov
+
+
+ Neeme Praks
+
+
+ Eric Pugh
+
+
+ Stephen Putman
+
+
+ Travis Reeder
+
+
+ Antony Riley
+
+
+ Valentin Rocher
+
+
+ Scott Sanders
+
+
+ Ralph Schaer
+
+
+ Henning P. Schmiedehausen
+
+
+ Sean Schofield
+
+
+ Robert Scholte
+
+
+ Reuben Sivan
+
+
+ Ville Skytta
+
+
+ David M. Sledge
+
+
+ Jan Sorensen
+
+
+ Glen Stampoultzis
+
+
+ Scott Stanchfield
+
+
+ Jon S. Stevens
+
+
+ Sean C. Sullivan
+
+
+ Ashwin Suresh
+
+
+ Helge Tesgaard
+
+
+ Arun Mammen Thomas
+
+
+ Masato Tezuka
+
+
+ Jeff Varszegi
+
+
+ Chris Webb
+
+
+ Mario Winterer
+
+
+ Stepan Koltsov
+
+
+ Holger Hoffstatte
+
+
+ Derek C. Ashmore
+
+
+
+
+
+
+ junit
+ junit
+ 4.7
+ test
+
+
+
+ org.easymock
+ easymock
+ 2.5.2
+ test
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.5
+ 1.5
+ lang
+ 2.5
+ LANG
+ 12310481
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ **/*Test.java
+
+
+
+
+ maven-assembly-plugin
+
+
+ src/assembly/bin.xml
+ src/assembly/src.xml
+
+ gnu
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-changes-plugin
+ 2.0
+
+ ${basedir}/src/site/changes/changes.xml
+ %URL%/%ISSUE%
+
+
+
+
+ changes-report
+
+
+
+
+
+ maven-checkstyle-plugin
+ 2.3
+
+ ${basedir}/checkstyle.xml
+ false
+
+
+
+
+ org.codehaus.mojo
+ findbugs-maven-plugin
+ 1.2
+
+ Normal
+ Default
+ ${basedir}/findbugs-exclude-filter.xml
+
+
+
+ org.codehaus.mojo
+ cobertura-maven-plugin
+ 2.3
+
+
+ org.codehaus.mojo
+ clirr-maven-plugin
+ 2.2.2
+
+
+
+ commons-lang
+ commons-lang
+ 2.4
+
+
+ info
+
+
+
+ maven-pmd-plugin
+ 2.3
+
+ ${maven.compile.target}
+
+
+
+
+ pmd
+ cpd
+
+
+
+
+
+ org.codehaus.mojo
+ taglist-maven-plugin
+ 2.4
+
+
+ org.codehaus.mojo
+ javancss-maven-plugin
+ 2.0
+
+
+
+
+
diff --git a/2010.07.03 - DistributedStats/bin/DistributedStats/Master$1.class b/2010.07.03 - DistributedStats/bin/DistributedStats/Master$1.class
new file mode 100644
index 0000000..cb7b7cc
Binary files /dev/null and b/2010.07.03 - DistributedStats/bin/DistributedStats/Master$1.class differ
diff --git a/2010.07.03 - DistributedStats/bin/DistributedStats/Master.class b/2010.07.03 - DistributedStats/bin/DistributedStats/Master.class
new file mode 100644
index 0000000..787c3f4
Binary files /dev/null and b/2010.07.03 - DistributedStats/bin/DistributedStats/Master.class differ
diff --git a/2010.07.03 - DistributedStats/bin/DistributedStats/Pair.class b/2010.07.03 - DistributedStats/bin/DistributedStats/Pair.class
new file mode 100644
index 0000000..7c75b7c
Binary files /dev/null and b/2010.07.03 - DistributedStats/bin/DistributedStats/Pair.class differ
diff --git a/2010.07.03 - DistributedStats/bin/DistributedStats/Slave.class b/2010.07.03 - DistributedStats/bin/DistributedStats/Slave.class
new file mode 100644
index 0000000..9be0ddf
Binary files /dev/null and b/2010.07.03 - DistributedStats/bin/DistributedStats/Slave.class differ
diff --git a/2010.07.03 - DistributedStats/bin/DistributedStats/TestDistributedStats.class b/2010.07.03 - DistributedStats/bin/DistributedStats/TestDistributedStats.class
new file mode 100644
index 0000000..e479b2e
Binary files /dev/null and b/2010.07.03 - DistributedStats/bin/DistributedStats/TestDistributedStats.class differ
diff --git a/2010.07.03 - DistributedStats/src/DistributedStats/Master.java b/2010.07.03 - DistributedStats/src/DistributedStats/Master.java
new file mode 100644
index 0000000..4ec5620
--- /dev/null
+++ b/2010.07.03 - DistributedStats/src/DistributedStats/Master.java
@@ -0,0 +1,93 @@
+package DistributedStats;
+
+// 2010.07.03: Daniel Suskin's Google interview question:
+// You are given a distributed system having one master and many slaves.
+// This system stores a very large set of integers spread across the slaves.
+// That is, each slave stores some subset of the overall set of integers.
+// Each slave's subset is strictly nonoverlapping with those of the other slaves.
+//
+// Write an algorithm for calculating the mean, mode, median, and rank(x).
+// The master should be used primarily for coordination across the slaves.
+//
+// For this exercise, I (aaronfi@) use threads to simulate both the master and slave servers.
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+public class Master
+{
+ private List slaves;
+
+ public Master(final int[][] datasets) {
+ slaves = new ArrayList(datasets.length);
+
+ for(int[] dataset : datasets) {
+ slaves.add( new Slave(dataset) );
+ }
+
+ Set x = new TreeSet();
+ Collections.sort(new ArrayList(x));
+ }
+
+ public float getMean() {
+ int numThreads = Math.max(slaves.size(), 50);
+ ExecutorService threadExecutor = Executors.newFixedThreadPool(numThreads);
+
+ final AtomicInteger sum = new AtomicInteger(0);
+ final AtomicInteger count = new AtomicInteger(0);
+
+ for(final Slave s : slaves) {
+ threadExecutor.submit( new Runnable() {
+ public void run() {
+ Pair sumAndCount = s.getSumAndCount();
+ sum.getAndAdd( sumAndCount.first() );
+ count.getAndAdd( sumAndCount.second() );
+ }
+ });
+ }
+
+ threadExecutor.shutdown();
+ try {
+ threadExecutor.awaitTermination(2, TimeUnit.HOURS);
+ } catch (InterruptedException ex) {
+ // TODO should never get here; log an error
+ }
+
+ return sum.get() / count.get();
+ }
+
+ public int getMedian() {
+ // TODO: wiki research all suggests QuickSelect as O(n) algorithm
+ // the whole "get the median" is really the Selection Problem
+ // find the kth largest/smallest element in an unordered set.
+ //
+ // http://pine.cs.yale.edu/pinewiki/QuickSelect
+ // still, QuickSelect (as with QuickSort) involves partitioning
+ // and re-ordering array elements; i can't exactly do that here
+ // in distributed land.
+
+ int val = 0;
+ return val;
+ }
+
+ public int getMode() {
+ int val = 0;
+ return val;
+ }
+
+ public int getRank() {
+ int val = 0;
+ return val;
+ }
+
+ public String toString() {
+ return "TODO";
+ }
+}
diff --git a/2010.07.03 - DistributedStats/src/DistributedStats/Pair.java b/2010.07.03 - DistributedStats/src/DistributedStats/Pair.java
new file mode 100644
index 0000000..00b6186
--- /dev/null
+++ b/2010.07.03 - DistributedStats/src/DistributedStats/Pair.java
@@ -0,0 +1,88 @@
+package DistributedStats;
+
+import org.apache.commons.lang.builder.CompareToBuilder;
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.lang.builder.ToStringBuilder;
+
+/**
+ * Simple container for a pair of objects, analogous to std::pair. This is
+ * useful, for instance, if you want a map with a composite key. You could
+ * use a nested map, or you could use a single map keyed by a Pair.
+ */
+public class Pair implements Comparable>
+{
+ /**
+ * The individual pair members.
+ */
+ private A first_;
+ private B second_;
+
+ /**
+ * Constructor
+ */
+ public Pair (final A a, final B b)
+ {
+ first_ = a;
+ second_ = b;
+ }
+
+ /**
+ * @return The first member of the pair.
+ */
+ public A first () { return first_; }
+
+ /**
+ * Sets the first member of the pair.
+ */
+ public void first (final A a) { first_ = a; }
+
+ /**
+ * @return The second member of the pair.
+ */
+ public B second () { return second_; }
+
+ /**
+ * Sets the second member of the pair.
+ */
+ public void second (final B b) { second_ = b; }
+
+ @Override
+ public boolean equals (Object o)
+ {
+ return o instanceof Pair && new EqualsBuilder()
+ .append(this.first(), ((Pair)o).first())
+ .append(this.second(), ((Pair)o).second())
+ .isEquals();
+ }
+
+ @Override
+ public int hashCode ()
+ {
+ return new HashCodeBuilder()
+ .append(this.first())
+ .append(this.second())
+ .toHashCode();
+ }
+
+ public int compareTo (Pair o)
+ {
+ return new CompareToBuilder()
+ .append(this.first(), o.first())
+ .append(this.second(), o.second())
+ .toComparison();
+ }
+
+ public String toString ()
+ {
+ return new ToStringBuilder(this)
+ .append("first", this.first())
+ .append("second", this.second())
+ .toString();
+ }
+
+ public static Pair makePair(final A first,
+ final B second) {
+ return new Pair(first, second);
+ }
+}
\ No newline at end of file
diff --git a/2010.07.03 - DistributedStats/src/DistributedStats/Slave.java b/2010.07.03 - DistributedStats/src/DistributedStats/Slave.java
new file mode 100644
index 0000000..3d8ebf8
--- /dev/null
+++ b/2010.07.03 - DistributedStats/src/DistributedStats/Slave.java
@@ -0,0 +1,17 @@
+package DistributedStats;
+
+public class Slave {
+ private int[] dataset;
+
+ public Slave(int[] init_dataset) {
+ this.dataset = init_dataset;
+ }
+
+ public Pair getSumAndCount() {
+ int sum = 0;
+ for(int elem : this.dataset) {
+ sum += elem;
+ }
+ return new Pair( sum, this.dataset.length );
+ }
+}
diff --git a/2010.07.03 - DistributedStats/src/DistributedStats/TestDistributedStats.java b/2010.07.03 - DistributedStats/src/DistributedStats/TestDistributedStats.java
new file mode 100644
index 0000000..0be8f1b
--- /dev/null
+++ b/2010.07.03 - DistributedStats/src/DistributedStats/TestDistributedStats.java
@@ -0,0 +1,18 @@
+package DistributedStats;
+
+import junit.framework.TestCase;
+
+public class TestDistributedStats extends TestCase {
+
+ public void test_run1() {
+
+ Master ds = new Master( new int[][] {
+ {1, 2, 3},
+ {4, 5, 6},
+ {7, 8, 9},
+ });
+
+ float x = ds.getMean();
+ assertEquals(5.0F, x);
+ }
+}
diff --git a/test.txt b/test.txt
new file mode 100644
index 0000000..257cc56
--- /dev/null
+++ b/test.txt
@@ -0,0 +1 @@
+foo