Hello, Clojurians! GSoC application deadline is dangerously close and it's time to fill an application, at last. But here is a problem: I don't know what will be the best for community. I have a few ideas and I will present them here to get some feedback. Sorry for a bit late posting!
First: this is the idea listed on Ideas Page [1], "Data Visualization Components with Om / React.js". I would like to participate; in particular, I'm very interested in building a decent graph rendering library. It seems like there are a lot of JS libraries to draw graphs out there, but all of them lack features that I needed one time or another: -composable layouts/transformations, like in Gephi (you can run one "transformation" after another there); -"static" rendering without fancy animation of force-based layout; -efficient handling of data changes (here is where React can be useful); -ability to add user-defined forces. It's very useful when you have special nodes that should be pulled to particular points. Of course, this should be based on top of React's model, which adds an interesting exploratory aspect to the project. Mentor: I've tried to contact Kovas about this project, but wasn't successful. I hope that was a mail quirk. Second: when I write Erlang, I enjoy PropEr (an Erlang property testing library) a lot. Some time ago a similar system was created for Clojure (test.check [2]). It's a decent property-based checker, but a couple of things are still lacking: -support for stateful system checking. This is called "statem" in PropEr and described in [3]. It's based on modelling stateful system as FSM and comparing behaviour of model and system under test. One of interesting usages of "statem" in PropEr is to test external servers: for example, properly-designed REST API can be modelled pretty easily by a FSM. -support for automatic generator inference from type specifications (in Clojure Prismatic's Schema can be used) [4]. Obviously, it makes using property-testing a lot easier. -support for generator statistics — what instances was generated, what was the distribution of test sizes and so on. In this project, if it will be selected, I will implement this three features for test.check. I had very positive experience with PropEr and I hope that this project can help more people start using property-based testing. Mentor: Reid Draper. I contacted him and he agreed to mentor the project. Third: arguably, one of the best plotting libraries around is R's ggplot [5]. It was recently ported to Python, as well [6]. It's different from all other libraries of the kind in that it implements a "grammar of graphics": small pieces of reusable functionality that together constitute plots. Here is an example: ggplot(mry, aes(x=year, y=number, group=rating)) + geom_line(aes(colour = rating)) + scale_colour_gradient(low="red") # produces [7] This fits Clojure's ideology nicely. It can also be even better in Clojure after a small modification of original ggplot design, which is replacing "overloaded plus" style with plain vectors. This is a big project, but I believe I can port this library to Clojure and ClojureScript in GSoC timeframe. The majority of code will be the same, and because this will not be a core.X project, I will be able to use cljx to share code. One of spin-offs from this project will be a simple "dataframe-like" (think R or Python's pandas [8]) data structure usable in both languages. Mentor: there is no at this point. I will appreciate a lot if someone will volunteer. This concludes the list of ideas. Please share your thoughts and let me know, if you are able to mentor me on third project! I will fill an application in 36 hours from now. [1]: http://dev.clojure.org/display/community/Project+Ideas [2]: https://github.com/clojure/test.check [3]: http://proper.softlab.ntua.gr/papers/eirini-thesis.pdf [4]: http://proper.softlab.ntua.gr/papers/proper_types.pdf [5]: http://ggplot2.org/ [6]: https://pypi.python.org/pypi/ggplot [7]: http://docs.ggplot2.org/current/geom_line-8.png [8]: http://pandas.pydata.org/ -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.