Re: [Haskell-cafe] GSoC proposal: Data Visualization

2013-04-15 Thread Ernesto Rodriguez
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

2013-04-13 Thread Ernesto Rodriguez
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

2013-04-12 Thread Ernesto Rodriguez
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

2013-04-08 Thread Ernesto Rodriguez
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?

2013-03-13 Thread Ernesto Rodriguez
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?

2012-11-30 Thread Ernesto Rodriguez
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

2012-06-25 Thread Ernesto Rodriguez
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