[Haskell-cafe] Interactive widgets; formlets (was: GSoC Retrospective)

Sumit Sahrawat, Maths & Computing, IIT (BHU) sumit.sahrawat.apm13 at iitbhu.ac.in
Thu Sep 17 11:23:28 UTC 2015


My project was to implement support for IPywidgets (
https://github.com/ipython/ipywidgets), in IHaskell (
https://github.com/gibiansky/IHaskell). You should look at IPywidgets if
you're interested in working with widgets in Python.

The IPywidgets have some javascript that runs in the Jupyter notebook
frontend, and some python code that integrates with IPython to provide
support for them. My project reused the javascript provided by IPywidgets,
and implemented support for them inside IHaskell.

The formlets idea can be easily applied here. For example, one can
implement the date picker example from the papers by creating a module that
exports:

    mkDateFormlet :: IO (Box, IO (Maybe Date))

Here, `Box` is a widget from `ihaskell-widgets` that can hold more widgets
inside it. In our case, it may hold any widgets that can be used to read a
date.

The `IO (Maybe Date)` can be used to read a date from the `Box` that we
provided. As the Box is a widget, it can be displayed inside the jupyter
notebook.

These two together constitute a formlet. Am I right in saying this?

This will make for a good example, I'll implement this as an example
notebook for the online demo. Thanks for the great idea.

On 17 September 2015 at 16:08, Graham Klyne <gk at ninebynine.org> wrote:

> Hi,
>
> I spotted this project and my interest was piqued.  I am particularly
> wondering if there's scope in some future development to exploit ideas of
> formlets/form lenses:
>
>   - http://homepages.inf.ed.ac.uk/slindley/papers/formlenses-bx13.pdf
>   - http://homepages.inf.ed.ac.uk/slindley/papers/formlets-essence.pdf
>   - http://groups.inf.ed.ac.uk/links/papers/formlets-tr2008.pdf
>
> (I'm currently working on a project in Python that could benefit from
> these ideas, but I'm not yet ready to refactor everything because some
> requirements are still emerging.)
>
> #g
> --
>
>
> On 17/09/2015 11:05, Sumit Sahrawat, Maths & Computing, IIT (BHU) wrote:
>
>> My project "Interactive widgets in IHaskell" was completed successfully.
>> We'll be having a public announcement with an online demo on
>> try.jupyter.org
>> soon.
>>
>> On 17 September 2015 at 15:19, Dominic Steinitz <dominic at steinitz.org>
>> wrote:
>>
>> I have created a wiki page here:
>>> https://wiki.haskell.org/Google_summer_of_code#Accepted_GSOC2015_projects
>>>
>>> Dominic Steinitz
>>> dominic at steinitz.org
>>> http://idontgetoutmuch.wordpress.com
>>>
>>> On 17 Sep 2015, at 09:18, Dominic Steinitz <dominic at steinitz.org> wrote:
>>>
>>> For example, if I look at
>>>
>>>
>>>     - Implementation of Layered Gramamar of Graphics
>>>     <https://gist.github.com/AjayRamanathan/c84a4641836700a2547b> -
>>> chinu
>>>     <https://github.com/AjayRamanathan/Plot>
>>>
>>>
>>> I see the last commit was made on 30 June and the README says
>>>
>>> Working on a implementation of layered grammar of graphics. Work in
>>> progress, Nothing to see here, Move on.
>>>
>>>
>>> I don’t wish to be judgemental but this rather looks like the goal was
>>> never achieved?
>>>
>>> Dominic Steinitz
>>> dominic at steinitz.org
>>> http://idontgetoutmuch.wordpress.com
>>>
>>> On 17 Sep 2015, at 09:13, Dominic Steinitz <dominic at steinitz.org> wrote:
>>>
>>> In past years, Gwern did an outstanding job of summarising the GSoC
>>> proposals and how well they had done:
>>> http://www.gwern.net/Haskell%20Summer%20of%20Code
>>>
>>> Here are the proposals for this year. Perhaps students or their mentors
>>> could comment on how successful their projects have been? I realise this
>>> is
>>> a very poor substitute for Gwen’s analyses but it would better than
>>> nothing.
>>>
>>>
>>>     - A Strict language pragma for GHC - Adam Sandberg Eriksson
>>>     <https://github.com/adamse>
>>>     - STM Data Structures Implementation
>>>     <https://gist.github.com/Alllex/439480b7e80303f19ddc> - Alex Semin
>>>     - Implementation of Layered Gramamar of Graphics
>>>     <https://gist.github.com/AjayRamanathan/c84a4641836700a2547b> -
>>> chinu
>>>     <https://github.com/AjayRamanathan/Plot>
>>>     - Implementing Version Comparison for Cabal Packages - Craig Roche
>>>     <https://github.com/cdxr>
>>>     - Improving Hackage Discoverability
>>>     <http://dzackgarza.com/mockup/main.html> - D. Zack Garza
>>>     <https://github.com/dzackgarza>
>>>     - Darcsden improvements <http://darcs.net/GSoC/2015-Darcsden> -
>>> Daniil
>>>     Frumin <https://github.com/co-dan>
>>>     - Pursuit enhancements
>>>     <https://gist.github.com/hdgarrood/0a389937149453c69e03> - Harry
>>>     Garrood <https://github.com/hdgarrood>
>>>     - Improvements For HBLAS And Adding LAPACK Bindings. - JuejiYang
>>>     - A standalone functional parser for CommonMark
>>>     <https://gist.github.com/Jubobs/7a9298eeaf02bcefbc35> - Julien
>>> Cretel
>>>     <https://github.com/Jubobs>
>>>     - Refactor program with HLint suggestions
>>>     <http://mpickering.github.io/gsoc2015.html> - Matthew Pickering
>>>     <https://github.com/mpickering>
>>>     - Replication back-end for acid-state - Max Voit
>>>     - Native Haskell Type Encoding for LiquidHaskell
>>>     <https://gist.github.com/spinda/b261167303515cc8a1d9> - Michael
>>> Smith
>>>     <https://github.com/spinda>
>>>     - Exhaustiveness Checker for PureScript - Nicolas Del Piano
>>>     <https://github.com/nicodelpiano>
>>>     - Fast splittable pseudorandom number generator for System.Random
>>>     <https://gist.github.com/nkartashov/e46fd146b1df2d79aaf3> - Nikita
>>>     Kartashov <https://github.com/nkartashov>
>>>     - Interactive widgets in IHaskell
>>>     <https://github.com/sumitsahrawat/gsoc/blob/master/2015/ihaskell.pdf
>>> >
>>>      - Sumit Sahrawat <https://github.com/sumitsahrawat>
>>>     - Improvements to yesod-devel - urbanslug
>>>     <https://github.com/urbanslug>
>>>     - Implement nix-like package management features in cabal
>>>     <https://gist.github.com/fugyk/37510958b52589737274> - Vishal
>>> Agrawal
>>>     <https://github.com/fugyk>
>>>     - Haddock improvements - Łukasz Hanuszczak <
>>> https://github.com/mrhania>
>>>
>>>
>>> Dominic Steinitz
>>> dominic at steinitz.org
>>> http://idontgetoutmuch.wordpress.com
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>>
>>>
>>>
>>
>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>
>>


-- 
Regards

Sumit Sahrawat
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150917/accaf62d/attachment.html>


More information about the Haskell-Cafe mailing list