Re: [Haskell-cafe] GSoC proposal: Data Visualization
Dear All, Data visualization for hMatrix is basically my main objective, but I would like to be flexible in the following ways: * Have generic approach so other data types can be visualized with my library as long as the necessary instances are present. * Define a generic standard to represent values in multiple types of plots. This way graphics output can be easily extended for more back ends (gtk, qt, gnuplot). I am looking for alternatives. I will check GuiTV definitely, but currently I am considering the possibility of plotting data via javascript as suggested by Dough and using Haskell just to generate the values. I am using ghclive (https://github.com/shapr/ghclive) as fronted since the project looks nice and might be worth continuing it. Do you think there would be big objections if I continue working with that project since it was built for last GSoC? Best regards, Ernesto Rodriguez On Mon, Apr 15, 2013 at 2:10 PM, Michal J. Gajda m...@nmr.mpibpc.mpg.dewrote: Dear Conal, Ernesto, Heinrich, On 04/15/2013 10:32 AM, Heinrich Apfelmus wrote: Ernesto Rodriguez wrote: For me it would already be a huge advantage if I could edit and re-evaluate expressions interactively (in a comfortable GUI, not ghci). Also a plot widget with sliders would also help. I was wondering if you know any reason the project has not been worked on for various months (as I see in the repo). Is there anyone working in this project and has a later version? I mean these are features that are even available in free math packages such as Sage. I was actually the initial mentor for this project. I'm not particularly happy about the result. As you can see, it hasn't been picked up by anyone else, including me, and I think that's because it missed the modularity goals I had in mind. Indeed interactive notebook functionality is missed by many :-). Is it a good time to ask about current status of GuiTV, which is possibly second closest to what Ernesto had in mind? http://www.haskell.org/haskellwiki/GuiTV Would be possible to ask Conal Elliot whether he is interested in mentoring a project that would add widget(s) for hmatrix visualisation? PS I believe Johan Malmström http://homepage.mac.com/jmalmstrom/'s HaXcel project, which may have tried to implement a similar functionality with a spreadsheet interface is dead: http://www.mrtc.mdh.se/projects/Haxcel/ -- Best regards Michal -- Ernesto Rodriguez Bachelor of Computer Science - Class of 2013 Jacobs University Bremen -- Ernesto Rodriguez Bachelor of Computer Science - Class of 2013 Jacobs University Bremen ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] GSoC proposal: Data Visualization
Hi Hienrich, It is indeed a big scope as you mentioned. Matlab has been working for years to get this functionality right. On the other hand, the project you linked is interesting. For me it would already be a huge advantage if I could edit and re-evaluate expressions interactively (in a comfortable GUI, not ghci). Also a plot widget with sliders would also help. I was wondering if you know any reason the project has not been worked on for various months (as I see in the repo). Is there anyone working in this project and has a later version? I mean these are features that are even available in free math packages such as Sage. Best regards, Ernesto Rodriguez On Sat, Apr 13, 2013 at 10:33 AM, Heinrich Apfelmus apfel...@quantentunnel.de wrote: Ernesto Rodriguez wrote: Dear Haskell Community, During the last months I used Haskell for machine learning, particularly in the field of Echo State Neural Networks. The main drawback I encountered is that its difficult to visualize and plot data in Haskell in spite the fact there are a couple of plotting libraries. Data visualization is very important in the field of machine learning research (not so much in machine learning implementation) since humans are very efficient to analyze graphical input to figure out what is going on in order to determine possible adjustments. I was wondering if other members of the community have experienced this drawback and would be interested in improved data visualization for Haskell, especially if there is interest to use Haskell for machine learning research. I collected my ideas in the following page: https://github.com/netogallo/**Visualizerhttps://github.com/netogallo/Visualizer. Please provide me with feedback because if the proposal is interesting for the community I would start working with it, even if it doesn't make it to this GSoC, but a project like this will need a lot of collaboration for it to be successful. Your project is very ambitious! In fact, too ambitious. Essentially, you want to build an interactive environment for evaluating Haskell expressions. The use case you have in mind is data visualization for machine learning, but that is just a special case. If you can zoom in and out of plots of infinite time series, you can zoom in and out of audio data, and then why not add an interactive synthesizer widget to create that audio data in the first place. Your idea decomposes into many parts, each of which would easily fill an entire GSoC project on their own. * GUI. Actually, we currently don't have a GUI library that is easy to install for everyone. Choosing wxHaskell or gtk2hs immediately separates your user base into three disjoint parts. I think it's possible to use the web browser as GUI instead (https://github.com/** HeinrichApfelmus/threepenny-**guihttps://github.com/HeinrichApfelmus/threepenny-gui ). * Displaying Haskell values in a UI. You mentioned that you want matrices to come with a contextual menu where you can select different transformations on them. It's just a minor step to allow any Haskell function operating on them. I have a couple of ideas on how to do this is in a generic fashion. Unfortunately, the project from last year http://hackage.haskell.org/**trac/summer-of-code/ticket/**1609http://hackage.haskell.org/trac/summer-of-code/ticket/1609 did not succeed satisfactorily. There were some other efforts, but I haven't seen anything released. * UI programming is hard. You could easily spend an entire project on implementing a single visualization, for instance an infinite time series with responsive zoom. It's not difficult to implement something, but adding the right level of polish so that people want to use it takes effort. There's a reason that Matlab costs money, and there's a reason that your mentor relies on it. * Functionality specific to machine learning. Converting Vector to a format suitable for representation of matrices, etc. This is your primary interest. Note that, unfortunately, the parts depend on each other from top to bottom. It's possible to write functionality specific to machine learning, but it would be of little impact if it doesn't come with a good UI. Best regards, Heinrich Apfelmus -- http://apfelmus.nfshost.com __**_ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/**mailman/listinfo/haskell-cafehttp://www.haskell.org/mailman/listinfo/haskell-cafe -- Ernesto Rodriguez Bachelor of Computer Science - Class of 2013 Jacobs University Bremen ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] GSoC proposal: Data Visualization
Dear Haskell Community, During the last months I used Haskell for machine learning, particularly in the field of Echo State Neural Networks. The main drawback I encountered is that its difficult to visualize and plot data in Haskell in spite the fact there are a couple of plotting libraries. Data visualization is very important in the field of machine learning research (not so much in machine learning implementation) since humans are very efficient to analyze graphical input to figure out what is going on in order to determine possible adjustments. I was wondering if other members of the community have experienced this drawback and would be interested in improved data visualization for Haskell, especially if there is interest to use Haskell for machine learning research. I collected my ideas in the following page: https://github.com/netogallo/Visualizer . Please provide me with feedback because if the proposal is interesting for the community I would start working with it, even if it doesn't make it to this GSoC, but a project like this will need a lot of collaboration for it to be successful. Thank you very much, Best Regards, Ernesto -- Ernesto Rodriguez Bachelor of Computer Science - Class of 2013 Jacobs University Bremen ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] My first Haskell program
Hi John, I am not saying it's wrong, but something you could consider trying is using the RVars to generate the random numbers inside MonadRandom and using lift to lift the random number generation into the state Monad and use runStateT. The IO Monad is an instance of MonadRandom so any State + MonadRandom computation can be run inside the IO Monad. I will write a short piece of code to illustrate my point. import Data.Random.Distribution.Uniform import Control.Monad.State import Data.RVar ... randomState n = do let dist = uniform 1 n rNum - lift $ sampleRVar dist put rNum runStateT (randomState 5) 0 Using RVars, you can generate numbers from numerous distributions. You can even have pure RVars which generate values according to a distribution once an initialization seed is given. I hope this information serves you well. Check out the RVar package in Haskell for more about generating random numbers. Best, Ernesto Rodriguez On Sat, Apr 6, 2013 at 6:50 PM, John Wood j...@jdtw.us wrote: Hello, Cafe I'm new to Haskell and the mailing list, and am wondering if I could get some feedback on my first program -- a Markov text generator. The code is posted here: http://codereview.stackexchange.com/questions/24791/haskell-markov-text-generator Thanks, John; ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Ernesto Rodriguez Bachelor of Computer Science - Class of 2013 Jacobs University Bremen ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Open-source projects for beginning Haskell students?
Dear Prof. Yorgey, Not something very big, but if someone wants to get hands on working with Parsec I started developing a library to work with motion capture (MoCap) data. I need to parse MoCap data for my bachelor's thesis [1] so I decided to do it in a way that might benefit others. On the other hand, I don't need all the info in the file for my work and this project is not my priority, so one of the students could extend the parser to parse the sections of the file it currently ignores. Also more file types support would be nice since I am only developing a parser for ASF/AMC files. The project is very new, small and is located here: https://github.com/netogallo/MoCap . I can give you more details of the tasks that could be done (essentially creating a parser fore more sections of the file, define ADTs to represent those sections, semantic validation of files, better error messages, ect.) and I would be willing to exchange e-mails and answer questions to students if necessary. Best Regards, Ernesto Rodriguez [1] https://github.com/netogallo/LambdaNN On Mon, Mar 11, 2013 at 4:48 PM, Brent Yorgey byor...@seas.upenn.eduwrote: Hi everyone, I am currently teaching a half-credit introductory Haskell class for undergraduates. This is the third time I've taught it. Both of the previous times, for their final project I gave them the option of contributing to an open-source project; a couple groups/individuals took me up on it and I think it ended up being a modest success. So I'd like to do it again this time around, and am looking for particular projects I can suggest to them. Do you have an open-source project with a few well-specified tasks that a relative beginner (see below) could reasonably make a contribution towards in the space of about four weeks? I'm aware that most tasks don't fit that profile, but even complex projects usually have a few simple-ish tasks that haven't yet been done just because no one has gotten around to it yet. If you have any such projects, I'd love to hear about it! Just send me a paragraph or so describing your project and explaining what task(s) you could use help with --- something that I could put on the course website for students to look at. Here are a few more details: * The students will be working on the projects from approximately the end of this month through the end of April. During the next two weeks they would be contacting you to discuss the possibility of working on your project. * By relative beginner I mean someone familiar with the material listed here: http://www.cis.upenn.edu/~cis194/lectures.html and just trying to come to terms with Applicative and Monad. They definitely do not know much if anything about optimization/profiling, GADTs, the mtl, or Haskell-programming-in-the-large. (Although part of the point of the project is to teach them a bit about programming-in-the-(medium/large)). * What I would hope from you is a willingness to exchange email and/or chat with the student(s) over the course of the project, to give them a bit of guidance/mentoring. I am certainly willing to help on that front, but of course I probably don't know much about your particular project. Thanks! -Brent ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Ernesto Rodriguez Bachelor of Computer Science - Class of 2013 Jacobs University Bremen ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Is anyone working on a sparse matrix library in Haskell?
Hi Mark, For my bachelor thesis I am doing something somewhat in that direction. I am developing a Echo State Neural Networks (ESNs) ( http://minds.jacobs-university.de/esn_research) library in Haskell. I haven't worked on it for a while, since I was reading related literature in the last months. It will be used to classify motion capture data. Feel free to check it out: https://github.com/netogallo/LambdaNN. Sparse matrixes are used to build the ESNs, I have basic functions to produce sparse matrixes but nothing fancy at the moment. Cheers, Ernesto Rodriguez On Thu, Nov 29, 2012 at 11:03 PM, Mark Flamer m...@flamerassoc.com wrote: I am looking to continue to learn Haskell while working on something that might eventually be useful to others and get posted on Hackage. I have written quite a bit of Haskell code now, some useful and a lot just throw away for learning. In the past others have expressed interest in having a native Haskell sparse matrix and linear algebra library available(not just bindings to a C lib). This in combination with FEM is one of my interests. So my questions, is anyone currently working on a project like this? Does it seem like a good project/addition to the community? I'm also interested if anyone has any other project idea's, maybe even to collaborate on. Thanks -- View this message in context: http://haskell.1045720.n5.nabble.com/Is-anyone-working-on-a-sparse-matrix-library-in-Haskell-tp5721452.html Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe -- Ernesto Rodriguez Bachelor of Computer Science - Class of 2013 Jacobs University Bremen ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Martin Odersky on What's wrong with Monads
Well, Monads are something optional at the end. Even the IO Monad is an optional pattern with unsafePerformIO, but we use it because one of the reasons we love Haskell is it's ability to differentiate pure and impure functions. But sadly this is one of the traits we love about Haskell but others dislike about it. Cheers, Ernesto Rodriguez On Mon, Jun 25, 2012 at 2:23 PM, Alberto G. Corona agocor...@gmail.comwrote: My pocket explanation: While e a function gives one only value of the codomain for each element of the domain set (and thus it can be evaluated a single time), a category is a generalization that accept many graphs that goes from each element of the domain to the codomain. For that matter getChar can be understood mathematically only using cathegory theory. To discover where the chain of graphs goes each time, it is necessary to execute the chain of sentences. Imperative languages works categorically every time, so they don´t need an special syntax for doing so. Haskell permits to discriminate functional code from normal categorical/imperative code, so the programmer and the compiler can make use of the mathematical properties of functions. For example, graph reduction thank to the uniqueness of the paths. Besides that, everything, functional or monadic is equally beatiful and polimorphic. i don´t think that monadic code is less fine. It is unavoidable and no less mathematical. 2012/6/25 Anton Kholomiov anton.kholom...@gmail.com The class you're looking for is Applicative. The (*) operator handles application of effectful things to effectful things, whereas ($) handles the application of non-effectful things to effectful things. This situation is interesting because it highlights the fact that there is a distinction between the meaning of whitespace between function and argument vs the meaning of whitespace between argument and argument. `Applicative` is not enough for monads. `Applicative` is like functor only for functions with many arguments. It's good for patterns: (a - b - c - d) - (m a - m b - m c - m d) Monads are good for patterns (a - b - c - m d) - (m a - m b - m c - m d) So I can not express it with `Applicative`. My analogy really breaks down on functions with several arguments, since as you have pointed out there are two white spaces. But I like the idea of using one sign for normal and monadic and maybe applicative applications. Anton ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe