Web Framework to Show Experimental Data

Hi! I am looking for the Haskell libraries to quickly create some Web Framework to Show Experimental Data. Please share your experience and ideas. What tools would you chose for such a framework: == Architecture There are several unsynchronized processes: 1) Finder - demon that periodically searches and collects JSON data from the Web and stores this data in some sort of Archive (DB). 2) Processor - demon that periodically process new data from Archive collected by Finder and stores results of its work in the same Archive. 3) Web application that shows processed data in a browser. == General Requirements *** Main requirement - simplicity and high speed of development *** - Max Data storage capacity - 10 Mb - Max number of Web users - 50 - Web UI shows what Archive has at the moment of user request. == Web UI Requirements - Multi-page view of long data sets (some sort of scrolling) - Simple graphs and charts (desirable) == Questions 1) What to use for the Archive? Though input data is in JSON format, data generated from it is binary vectors. Not sure that CouchDB is a good choice in this case. What simple (Haskell lib + DB) combination one may advise that support concurrent read / write access with simple locking (don't need full transactional support)? 2) Web framework? Don't need AJAX, just basic stuff but simple and easy to code forms? Thanks!

On Thu, 2011-07-07 at 13:21 +0400, Dmitri O.Kondratiev wrote:
1) What to use for the Archive? Though input data is in JSON format, data generated from it is binary vectors. Not sure that CouchDB is a good choice in this case. What simple (Haskell lib + DB) combination one may advise that support concurrent read / write access with simple locking (don't need full transactional support)?
I think this might be an excellent place to use Lemmih's acid-state package. If I read you correctly, you basically want to store a small enough amount of data that it's not a concern that it will need to reside in memory, and it's fairly regular so there won't be a lot of value in ad hoc queries? If this is the case, then acid-state will let you store it in Haskell data types, and with a bit of Template Haskell, you can access it in a persistent way.
2) Web framework? Don't need AJAX, just basic stuff but simple and easy to code forms?
Well, I like Snap enough that I became a core developer for the project, but this seems like a place it's particularly well suited. If you just want something really simple and clean and easy to use, Snap is that thing. Snap itself is very lightweight, but if you want some kind of automated form support, then there is a snap backend for digestive-functors. That's a little complex for my taste, but it is one way to do composing of forms by sticking together form handlers, validators, and the like. Personally, I'm a fan of just using getParam to retrieve the data and writing Haskell code to do what you want. -- Chris

Chris, thank you so much for pointing me into the right direction!
From acid-state package description: "Use regular Haskell data structures as your database..." - exactly what I need! Snap looks very lively too, simple and you can code view in Haskell, which means concentrate on the problem, not on the boilerplate code!
Capital advice, thanks! Chris Smith cdsmith at gmail.com wrote: Thu Jul 7 15:11:10 CEST 2011 Previous message: [Haskell-cafe] Web Framework to Show Experimental Data Next message: [Haskell-cafe] Installation failure crypto-api on MAC Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] On Thu, 2011-07-07 at 13:21 +0400, Dmitri O.Kondratiev wrote:
1) What to use for the Archive? Though input data is in JSON format, data generated from it is binary vectors. Not sure that CouchDB is a good choice in this case. What simple (Haskell lib + DB) combination one may advise that support concurrent read / write access with simple locking (don't need full transactional support)?
I think this might be an excellent place to use Lemmih's acid-state package. If I read you correctly, you basically want to store a small enough amount of data that it's not a concern that it will need to reside in memory, and it's fairly regular so there won't be a lot of value in ad hoc queries? If this is the case, then acid-state will let you store it in Haskell data types, and with a bit of Template Haskell, you can access it in a persistent way.
2) Web framework? Don't need AJAX, just basic stuff but simple and easy to code forms?
Well, I like Snap enough that I became a core developer for the project, but this seems like a place it's particularly well suited. If you just want something really simple and clean and easy to use, Snap is that thing. Snap itself is very lightweight, but if you want some kind of automated form support, then there is a snap backend for digestive-functors. That's a little complex for my taste, but it is one way to do composing of forms by sticking together form handlers, validators, and the like. Personally, I'm a fan of just using getParam to retrieve the data and writing Haskell code to do what you want. -- Chris

According to acid-state package description: "Use regular Haskell data structures as your database..." - exactly what I need! Snap looks very lively too, simple and you can code view in Haskell, which means concentrate on the problem, not on the boilerplate code! Capital advice, thanks Chris! Chris Smith cdsmith at gmail.com wrote: Thu Jul 7 15:11:10 CEST 2011 Previous message: [Haskell-cafe] Web Framework to Show Experimental Data Next message: [Haskell-cafe] Installation failure crypto-api on MAC Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] On Thu, 2011-07-07 at 13:21 +0400, Dmitri O.Kondratiev wrote:
1) What to use for the Archive? Though input data is in JSON format, data generated from it is binary vectors. Not sure that CouchDB is a good choice in this case. What simple (Haskell lib + DB) combination one may advise that support concurrent read / write access with simple locking (don't need full transactional support)?
I think this might be an excellent place to use Lemmih's acid-state package. If I read you correctly, you basically want to store a small enough amount of data that it's not a concern that it will need to reside in memory, and it's fairly regular so there won't be a lot of value in ad hoc queries? If this is the case, then acid-state will let you store it in Haskell data types, and with a bit of Template Haskell, you can access it in a persistent way.
2) Web framework? Don't need AJAX, just basic stuff but simple and easy to code forms?
Well, I like Snap enough that I became a core developer for the project, but this seems like a place it's particularly well suited. If you just want something really simple and clean and easy to use, Snap is that thing. Snap itself is very lightweight, but if you want some kind of automated form support, then there is a snap backend for digestive-functors. That's a little complex for my taste, but it is one way to do composing of forms by sticking together form handlers, validators, and the like. Personally, I'm a fan of just using getParam to retrieve the data and writing Haskell code to do what you want. -- Chris
participants (2)
-
Chris Smith
-
Dmitri O.Kondratiev