Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Clean up README Add Travis CI support

Signed-off-by: Chris Aniszczyk <zx@twitter.com>
  • Loading branch information...
commit 6fceda793ec697a1d10fc35d85c43cf8a15a16e1 1 parent 4a734cc
@caniszczyk caniszczyk authored
Showing with 25 additions and 1 deletion.
  1. +3 −0  .travis.yml
  2. +22 −1 README.md
View
3  .travis.yml
@@ -0,0 +1,3 @@
+language: scala
+scala:
+ - 2.9.2
View
23 README.md
@@ -1,3 +1,24 @@
-## Algebird
+## Algebird [![Build Status](https://secure.travis-ci.org/twitter/algebird.png)](http://travis-ci.org/twitter/algebird)
Abstract algebra for Scala.
+=======
+Abstract algebra for Scala. This code is targeted at building aggregation systems (via [Scalding](https://github.com/twitter/scalding) or [Storm](https://github.com/nathanmarz/storm)). It was originally developed as part of Scalding's Matrix API, where Matrices had values which are elements of Monoids, Groups, or Rings. Subsequently, it was clear that the code had broader application within Scalding and on other projects within Twitter.
+
+## Questions
+> Why not use Scalaz's [Monoid](https://github.com/scalaz/scalaz/blob/master/core/src/main/scala/scalaz/Monoid.scala) trait?
+
+The answer is a mix of the following:
+* The trait itself is tiny, we just need zero and plus, it is the implementations for all the types that are important. We wrote a code generator to derive instances for all the tuples, and by hand wrote monoids for List, Set, Option, Map, and several other objects used for counting (DecayedValue for exponential decay, AveragedValue for averaging, HyperLogLog for approximate cardinality counting). It's the instances that are useful in scalding and elsewhere.
+* We needed this to work in scala 2.8, and it appeared that Scalaz 7 didn't support 2.8. We've since moved to 2.9, though.
+* We also needed Ring and Field, and those are not (as of the writing of the code) in Scalaz.
+* Scalaz is big and scary for some people. We have enough trouble with adoption without scaring people with [Cokleisli star operators](https://github.com/scalaz/scalaz/blob/master/core/src/main/scala/scalaz/Cokleisli.scala#L19).
+
+## Authors
+
+* Oscar Boykin <http://twitter.com/posco>
+* Sam Ritchie <http://twitter.com/sritchie09>
+
+## License
+Copyright 2012 Twitter, Inc.
+
+Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
Please sign in to comment.
Something went wrong with that request. Please try again.