I think #2 would be a great addition to test.check, and I'd be happy to be a mentor.
Reid On Wednesday, March 19, 2014 3:49:30 PM UTC-5, Dmitry Groshev wrote: > > 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.