<div dir="ltr">Hi Janis: This is my report about MFlow:<div><br></div><div>MFlow is an innovative, Web framework of  the kind of other functional, stateful frameworks like WASH<span style="color:rgb(68,68,68);font-family:arial,sans-serif;line-height:16px">(†)</span> , Seaside Ocsigen or Racket. But MFlow does not use continuation passing, but a backtracking monad that carries out the synchronization of browser request and server process execution state. This monad is on top of another "Workflow" monad that add effects of logging and recovery of process/session state. Both are managed by an application server that dispatch each request to the appropriate server process. In case of timeout, the process is restarted using the state recovering mechanism. </div>

<div><br></div><div>The logs generated are very small, so MFlow solves the problems of fat serializaitions associated with stateful frameworks. Like the continuation-based frameworks. MFlow invert back the inversion of control, so, cotrary to MVC frameworks, programming multipage web application is simple and natural.  At the same time MFlow is RESTful compliant. Not only the URL use the REST style, but also any GET page in the stateful flow can be pointed to with a REST URL.  That is unique for an stateful WF.</div>

<div><br></div><div>Additionally, besides, applicative formlets it also implement monadic formlets by means of a page monad, that permits to dynamically change the page content  and input fields depending on the  user input.  That is called "page flows". Independent widgets can have its own flow within a page.</div>

<div><br></div><div>HTML layout and text content can be added and modified later at runtime using a wysiwyg tool, so there may be a complete separation of layout and logic if wished.</div><div><br></div><div>Other features are widget autorefreshing in the page via implicit Ajax, level-2 widgets (widgets that contain widgets), integration with Persistent, integration of AWS.  JQuery integration, WAI integration. blaze-html integration. push and complete execution traces for errors (thanks to the backtracking monad).</div>

<div><br></div><div>MFlow has facilities for single page developments, that would need a lot of  client side javascript has been packaged as composable haskell elements that uses ajax internally to create dynamic interfaces that are type safe.</div>

<div><br></div><div>It may be considered the continuation of the great WASH framework.</div><div><br></div><div>More information:</div><div><br></div><div>There is a site, made using MFlow which includes demos at:</div><div>

<br></div><div><a href="http://mflowdemo.herokuapp.com">http://mflowdemo.herokuapp.com</a></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/10/6 Janis Voigtlaender <span dir="ltr"><<a href="mailto:jv@informatik.uni-bonn.de" target="_blank">jv@informatik.uni-bonn.de</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">[Transition in editorship of HCAR in progress!]<br>
<br>
Dear all,<br>
<br>
We would like to collect contributions for the 25th edition of the<br>
<br>
==============================<u></u>==============================<u></u>====<br>
             Haskell Communities & Activities Report<br>
<br>
<a href="http://www.haskell.org/haskellwiki/Haskell_Communities_and_Activities_Report" target="_blank">http://www.haskell.org/<u></u>haskellwiki/Haskell_<u></u>Communities_and_Activities_<u></u>Report</a><br>
<br>
                Submission deadline: 1 Nov 2013<br>
<br>
     (please send your contributions to hcar at <a href="http://haskell.org" target="_blank">haskell.org</a>,<br>
                 in plain text or LaTeX format)<br>
==============================<u></u>==============================<u></u>====<br>
<br>
This is the short story:<br>
<br>
* If you are working on any project that is in some way related<br>
  to Haskell, please write a short entry and submit it. Even if<br>
  the project is very small or unfinished or you think it is not<br>
  important enough --- please reconsider and submit an entry anyway!<br>
<br>
* If you are interested in an existing project related to Haskell that<br>
  has not previously been mentioned in the HCAR, please tell us, so<br>
  that we can contact the project leaders and ask them to submit an<br>
  entry.<br>
<br>
* Feel free to pass on this call for contributions to others that<br>
  might be interested.<br>
<br>
More detailed information:<br>
<br>
The Haskell Communities & Activities Report is a bi-annual overview of<br>
the state of Haskell as well as Haskell-related projects over the<br>
last, and possibly the upcoming six months. If you have only recently<br>
been exposed to Haskell, it might be a good idea to browse the<br>
previous edition --- you will find interesting projects described as<br>
well as several starting points and links that may provide answers to<br>
many questions.<br>
<br>
Contributions will be collected until the submission deadline. They<br>
will then be compiled into a coherent report that is published online<br>
as soon as it is ready. As always, this is a great opportunity to<br>
update your webpages, make new releases, announce or even start new<br>
projects, or to talk about developments you want every Haskeller to<br>
know about!<br>
<br>
Looking forward to your contributions,<br>
<br>
Mihai Maruseac and Janis Voigtlaender (for this edition)<br>
<br>
<br>
FAQ:<br>
<br>
Q: What format should I write in?<br>
<br>
A: The required format is a LaTeX source file, adhering to the template<br>
that is available at:<br>
<br>
     <a href="http://haskell.org/communities/11-2013/template.tex" target="_blank">http://haskell.org/<u></u>communities/11-2013/template.<u></u>tex</a><br>
<br>
There is also a LaTeX style file at<br>
<br>
     <a href="http://haskell.org/communities/11-2013/hcar.sty" target="_blank">http://haskell.org/<u></u>communities/11-2013/hcar.sty</a><br>
<br>
that you can use to preview your entry. If you do not know LaTeX, then<br>
use plain text. If you modify an old entry that you have written for an<br>
earlier edition of the report, you should soon receive your old entry as<br>
a template (provided we have your valid email address). Please modify<br>
that template, rather than using your own version of the old entry as a<br>
template.<br>
<br>
Q: Can I include Haskell code?<br>
<br>
A: Yes. Please use lhs2tex syntax (<a href="http://www.andres-loeh.de/lhs2tex/" target="_blank">http://www.andres-loeh.de/<u></u>lhs2tex/</a>).<br>
The report is compiled in mode polycode.fmt.<br>
<br>
Q: Can I include images?<br>
<br>
A: Yes, you are even encouraged to do so. Please use .jpg format, then.<br>
<br>
Q: Should I send files in .zip archives or similar?<br>
<br>
A: No, plain file attachements are the way.<br>
<br>
Q: How much should I write?<br>
<br>
A: Authors are asked to limit entries to about one column of text. A<br>
general introduction is helpful. Apart from that, you should focus on<br>
recent or upcoming developments. Pointers to online content can be given<br>
for more comprehensive or "historic" overviews of a project. Images do<br>
not count towards the length limit, so you may want to use this<br>
opportunity to pep up entries. There is no minimum length of an entry!<br>
The report aims for being as complete as possible, so please consider<br>
writing an entry, even if it is only a few lines long.<br>
<br>
Q: Which topics are relevant?<br>
<br>
A: All topics which are related to Haskell in some way are relevant. We<br>
usually had reports from users of Haskell (private, academic, or<br>
commercial), from authors or contributors to projects related to<br>
Haskell, from people working on the Haskell language, libraries, on<br>
language extensions or variants. We also like reports about<br>
distributions of Haskell software, Haskell infrastructure, books and<br>
tutorials on Haskell. Reports on past and upcoming events related to<br>
Haskell are also relevant. Finally, there might be new topics we do not<br>
even think about. As a rule of thumb: if in doubt, then it probably is<br>
relevant and has a place in the HCAR. You can also simply ask us.<br>
<br>
Q: Is unfinished work relevant? Are ideas for projects relevant?<br>
<br>
A: Yes! You can use the HCAR to talk about projects you are currently<br>
working on. You can use it to look for other developers that might help<br>
you.<br>
<br>
Q: If I do not update my entry, but want to keep it in the report, what<br>
should I do?<br>
<br>
A: Tell us that there are no changes. The old entry will typically be<br>
reused in this case, but it might be dropped if it is older than a year,<br>
to give more room and more attention to projects that change a lot. Do<br>
not resend complete entries if you have not changed them.<br>
<br>
Q: Will I get confirmation if I send an entry? How do I know whether my<br>
email has even reached its destination, and not ended up in a spam folder?<br>
<br>
A: Prior to publication of the final report, we will send a draft to all<br>
contributors, for possible corrections. So if you do not hear from us<br>
within two weeks after the deadline, it is safer to send another mail<br>
and check whether your first one was received.<br>
<br>
______________________________<u></u>_________________<br>
Haskell mailing list<br>
<a href="mailto:Haskell@haskell.org" target="_blank">Haskell@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/haskell</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Alberto.
</div>