<div dir="ltr">Hello. haskellers and, specially, web developpers.<br><br>This is the second version of MFlow, a deep-first effort in the development of a platform for web applications at the higher level, by including as much haskell magic as possible. It is at the same time experimental and intended to be used in industry. I believe that haskell will not have its chance in the Web if it does not bring unique advantages and challenging paradigms beyond speed and type safety. <div>

<br></div><div>Deep-first means that the effort is more in the addition higher level features rather than in being complete and bug free, with the conviction that feedback from real usage at the highest level is the best guide for development. <br>

<br>Rather than to mimic other platforms in other languages, MFlow is as Haskell&#39;ish as possible, and introduces new approaches like  statefulness,  event sourcing, back-execution, composable, active, self contained widgets and persistent STM. All of them collaborate to create a high level environment for web programming.<br>

<br></div><div style>This release adds bidings for WAI, blaze-html, stateful AJAX, active widgets,  requirements, content management, multilanguage and URLs to pages inside stateful procedures.</div><div style><br></div>
<div>
The package:<br></div><div>[<a href="http://hackage.haskell.org/package/MFlow">http://hackage.haskell.org/package/MFlow</a><br><br>The entry in my blog, with the announcement and the philosophy behind</div><div><a href="http://haskell-web.blogspot.com.es/2013/01/announce-mflow-02.html">http://haskell-web.blogspot.com.es/2013/01/announce-mflow-02.html</a></div>

<div><br></div><div style>The same, in other words:</div><div style><a href="http://haskell-web.blogspot.com.es/2012/12/on-spirit-of-mflow-anatomy-of-widget.html">http://haskell-web.blogspot.com.es/2012/12/on-spirit-of-mflow-anatomy-of-widget.html</a><br>

</div><div><br></div><div style>An online example, with some links that explain the new features.</div><div><a href="http://81.169.134.95:8081">http://81.169.134.95:8081</a></div><div><br></div><div>Stateful, but virtually stateless, thanks to event sourcing<br>

<a href="http://haskell-web.blogspot.com/2013/01/stateful-but-stateless-at-last-thanks.html">http://haskell-web.blogspot.com/2013/01/stateful-but-stateless-at-last-thanks.html</a><br><br>Example of use of active widgets<br>

<a href="http://haskell-web.blogspot.com.es/2013/01/now-example-of-use-of-active-widget.html">http://haskell-web.blogspot.com.es/2013/01/now-example-of-use-of-active-widget.html</a><br><br>Bug tracker<br><a href="https://github.com/agocorona/MFlow/issues">https://github.com/agocorona/MFlow/issues</a><br>

<br>Source repository<br>git clone <a href="http://github.com/agocorona/MFlow">http://github.com/agocorona/MFlow</a><br><br><br><br><span style="color:rgb(58,42,52);font-family:Verdana,sans-serif;font-size:13px;line-height:15px">Feedback is welcomed warmly</span> <br>

<br>Alberto.<br></div></div>