Re: [Haskell-cafe] Google Summer of Code Proposal - Communicating with mobile devices

2013-05-12 Thread Marcos Pividori
Hi, Thanks for your feedback! I have presented the proposal, and now I have
to wait for a response.
I want to let you know that I have already replaced the code for an English
version.
You can see it: https://github.com/MarcosPividori/Yesod-server-for-GCM
I hope it will be more useful now!
Thanks,
Marcos


2013/5/4 Kristopher Micinski krismicin...@gmail.com

 Marcos,

 Great to see you've revised a copy of this.  I've often felt that push
 communication to devices has a very continuation-y flavor, and I think
 having something in a web framework to express this would be great.

 It looks like a large part of your time may be spent developing demo
 apps, which is too bad, since ideally (for a Haskell project) you'd
 want to spend as much time as possible writing in Haskell :-).
 Perhaps you could write a fleshed out demo app for one environment
 (iOS, Android, etc..) and then shallower examples for the rest.  (In
 theory of course, you don't even need to write sample apps for most
 platforms, since the push API should be an abstraction layer above
 that...).

 Should this project make it through to be one of Haskell's GSOC
 projects, I'd be happy to chat with you about your development.

 Kris

 On Thu, May 2, 2013 at 8:53 PM, Marcos Pividori
 marcospivid...@gmail.com wrote:
  Greetings,
 
  I am a Computer Science student from Argentina. I am interested in
 working
  this summer in a project related to Haskell for the Google Summer of
 Code. I
  have been discussing my idea with Michael Snoyman in order to have a
 clearer
  idea. Now, I would like to know the community interest in this project.
 
  I want to develop a server-side library in Haskell for sending push
  notifications to devices running different OS, such as Android, iOS,
 Windows
  Phone, BlackBerry, and so on.
 
  To pass a subject, I have recently worked with Yesod (a Web Framework
 based
  in Haskell) developing a server to comunicate with Android-powered
 devices
  through Google Cloud Messaging. (It is available:
  https://github.com/MarcosPividori/Yesod-server-for-GCM – It is a Spanish
  commented version because it was a project for my University, I will
 replace
  it for an English version in the next weeks)
 
  To develop this project, I have read a lot about this service and Yesod
  libraries, and I developed two programs, a server written in Haskell and
 an
  Android application for mobile phones. Also, I developed an EDSL to write
  programs which exchange information with the devices.
 
  I would be really grateful if you could give me your opinion about this
  project and the proposal. I want some feedback in order to know if this
  would be a useful tool and what you would like to get out of it.
 
  Communicating with mobile devices
 
 
  Abstract
 
  The aim of this project is to develop a server-side library in Haskell
 for
  sending push notifications to devices running different OS, such as
 Android,
  iOS, Windows Phone, BlackBerry, and so on.
 
  The fact is that every company is developing Push Notification services,
 and
  these are very similar. Then, I want to find the fundamental concepts to
  construct a library which enable to configure the options for the
 different
  services and send messages easily.
 
  When I say they are very similar, I refer to the fact that they all are
  asynchronous, best-effort services that offers third-party developers a
  channel to send data to apps from a cloud service in a power-efficient
  manner. The most popular are:
 
 - Google Cloud Messaging (Android)
 
 - Apple Push Notification Service (iPhone / iPad)
 
 - Microsoft Push Notification Service (Windows Phone)
 
 - BlackBerry Push Service (BlackBerry)
 
 - Windows Push Notification Services (Windows 8)
 
 - etc.
 
  Once we have this libraries, I will investigate the possibility of
 mainting
  a back and forth communication between a server and mobile devices and
 I
  will develop a library to handle this.
 
 
  Motivation and expected benefits
 
  I think this idea would be very useful because it will allow all Haskell
  developers to open to a new world of mobile devices and to build useful
  programs/services that interact with them.
 
  Pushing data to smartphones provides users with instant access to desired
  updates as they happen, such as news and weather, sports scores, stock
  prices and other time-sensitive content. The push services provide an
  efficient way to quickly push timely information updates to many
 smartphones
  at once, in a centrally managed and controlled manner.
 
  Generally, you can also be very selective in who you send information to,
  including individual customers or many customers (multicast).
 
  This services minimizes the impact on the smartphones battery life.
 Instead
  of actively checking for new data, the applications can remain closed.
 Once
  the data is delivered, the application can be launched in the background
 to
  process it as needed.
 
  This 

Re: [Haskell-cafe] Google Summer of Code Proposal - Communicating with mobile devices

2013-05-04 Thread Kristopher Micinski
Marcos,

Great to see you've revised a copy of this.  I've often felt that push
communication to devices has a very continuation-y flavor, and I think
having something in a web framework to express this would be great.

It looks like a large part of your time may be spent developing demo
apps, which is too bad, since ideally (for a Haskell project) you'd
want to spend as much time as possible writing in Haskell :-).
Perhaps you could write a fleshed out demo app for one environment
(iOS, Android, etc..) and then shallower examples for the rest.  (In
theory of course, you don't even need to write sample apps for most
platforms, since the push API should be an abstraction layer above
that...).

Should this project make it through to be one of Haskell's GSOC
projects, I'd be happy to chat with you about your development.

Kris

On Thu, May 2, 2013 at 8:53 PM, Marcos Pividori
marcospivid...@gmail.com wrote:
 Greetings,

 I am a Computer Science student from Argentina. I am interested in working
 this summer in a project related to Haskell for the Google Summer of Code. I
 have been discussing my idea with Michael Snoyman in order to have a clearer
 idea. Now, I would like to know the community interest in this project.

 I want to develop a server-side library in Haskell for sending push
 notifications to devices running different OS, such as Android, iOS, Windows
 Phone, BlackBerry, and so on.

 To pass a subject, I have recently worked with Yesod (a Web Framework based
 in Haskell) developing a server to comunicate with Android-powered devices
 through Google Cloud Messaging. (It is available:
 https://github.com/MarcosPividori/Yesod-server-for-GCM – It is a Spanish
 commented version because it was a project for my University, I will replace
 it for an English version in the next weeks)

 To develop this project, I have read a lot about this service and Yesod
 libraries, and I developed two programs, a server written in Haskell and an
 Android application for mobile phones. Also, I developed an EDSL to write
 programs which exchange information with the devices.

 I would be really grateful if you could give me your opinion about this
 project and the proposal. I want some feedback in order to know if this
 would be a useful tool and what you would like to get out of it.

 Communicating with mobile devices


 Abstract

 The aim of this project is to develop a server-side library in Haskell for
 sending push notifications to devices running different OS, such as Android,
 iOS, Windows Phone, BlackBerry, and so on.

 The fact is that every company is developing Push Notification services, and
 these are very similar. Then, I want to find the fundamental concepts to
 construct a library which enable to configure the options for the different
 services and send messages easily.

 When I say they are very similar, I refer to the fact that they all are
 asynchronous, best-effort services that offers third-party developers a
 channel to send data to apps from a cloud service in a power-efficient
 manner. The most popular are:

- Google Cloud Messaging (Android)

- Apple Push Notification Service (iPhone / iPad)

- Microsoft Push Notification Service (Windows Phone)

- BlackBerry Push Service (BlackBerry)

- Windows Push Notification Services (Windows 8)

- etc.

 Once we have this libraries, I will investigate the possibility of mainting
 a back and forth communication between a server and mobile devices and I
 will develop a library to handle this.


 Motivation and expected benefits

 I think this idea would be very useful because it will allow all Haskell
 developers to open to a new world of mobile devices and to build useful
 programs/services that interact with them.

 Pushing data to smartphones provides users with instant access to desired
 updates as they happen, such as news and weather, sports scores, stock
 prices and other time-sensitive content. The push services provide an
 efficient way to quickly push timely information updates to many smartphones
 at once, in a centrally managed and controlled manner.

 Generally, you can also be very selective in who you send information to,
 including individual customers or many customers (multicast).

 This services minimizes the impact on the smartphones battery life. Instead
 of actively checking for new data, the applications can remain closed. Once
 the data is delivered, the application can be launched in the background to
 process it as needed.

 This processes offer an alternative to other less efficient methods, such as
 polling, where a device regularly polls an application server to see if new
 content is available.

 The main differences between the services, refer to details as: the maxim
 payload length, the quality of service, queueing the messages or not, and
 the time limit for this, the way the messages are handled in the devices,
 etc.

 As all the libraries to access to these services are developed in Java, I
 

[Haskell-cafe] Google Summer of Code Proposal - Communicating with mobile devices

2013-05-02 Thread Marcos Pividori
Greetings,

I am a Computer Science student from Argentina. I am interested in working
this summer in a project related to Haskell for the Google Summer of Code.
I have been discussing my idea with Michael Snoyman in order to have a
clearer idea. Now, I would like to know the community interest in this
project.

I want to develop a server-side library in Haskell for sending push
notifications to devices running different OS, such as Android, iOS,
Windows Phone, BlackBerry, and so on.

To pass a subject, I have recently worked with Yesod (a Web Framework based
in Haskell) developing a server to comunicate with Android-powered devices
through Google Cloud Messaging. (It is available:
https://github.com/MarcosPividori/Yesod-server-for-GCM – It is a Spanish
commented version because it was a project for my University, I will
replace it for an English version in the next weeks)

To develop this project, I have read a lot about this service and Yesod
libraries, and I developed two programs, a server written in Haskell and an
Android application for mobile phones. Also, I developed an EDSL to write
programs which exchange information with the devices.

I would be really grateful if you could give me your opinion about this
project and the proposal. I want some feedback in order to know if this
would be a useful tool and what you would like to get out of it.

*Communicating with mobile devices*

*
*

*Abstract*

The aim of this project is to develop a server-side library in Haskell for
sending push notifications to devices running different OS, such as
Android, iOS, Windows Phone, BlackBerry, and so on.

The fact is that every company is developing Push Notification services,
and these are very similar. Then, I want to find the fundamental concepts
to construct a library which enable to configure the options for the
different services and send messages easily.

When I say they are very similar, I refer to the fact that they all are
asynchronous, best-effort services that offers third-party developers a
channel to send data to apps from a cloud service in a power-efficient
manner. The most popular are:

   - Google Cloud Messaging (Android)

   - Apple Push Notification Service (iPhone / iPad)

   - Microsoft Push Notification Service (Windows Phone)

   - BlackBerry Push Service (BlackBerry)

   - Windows Push Notification Services (Windows 8)

   - etc.

Once we have this libraries, I will investigate the possibility of mainting
a back and forth communication between a server and mobile devices and I
will develop a library to handle this.

*
*

*Motivation and expected benefits*

I think this idea would be very useful because it will allow all Haskell
developers to open to a new world of mobile devices and to build useful
programs/services that interact with them.

Pushing data to smartphones provides users with instant access to desired
updates as they happen, such as news and weather, sports scores, stock
prices and other time-sensitive content. The push services provide an
efficient way to quickly push timely information updates to many
smartphones at once, in a centrally managed and controlled manner.

Generally, you can also be very selective in who you send information to,
including individual customers or many customers (multicast).

This services minimizes the impact on the smartphones battery life. Instead
of actively checking for new data, the applications can remain closed. Once
the data is delivered, the application can be launched in the background to
process it as needed.

This processes offer an alternative to other less efficient methods, such
as polling, where a device regularly polls an application server to see if
new content is available.

The main differences between the services, refer to details as: the maxim
payload length, the quality of service, queueing the messages or not, and
the time limit for this, the way the messages are handled in the devices,
etc.

As all the libraries to access to these services are developed in Java, I
thought that it would be a good idea to offer an option to Haskell
programmers. Taking advantage of the similarity of these services, I could
develop a very adaptable library which fits the necessities for each one
and at the same time offer an abstraction to the user.


*Deliverables.*

*
*

* An API library to build and send messages including:

   - GCM and a demo Android app.

   - APN and a demo iOS app.

   - Microsoft Push Notification Service (Windows Phone) and a demo app.

   - Documentation for all the code developed. Including the explantation
on how to use the server

 library and how to try the demo apps.



* A library to handle a back and forth comunication between a server and
mobile devices. Tools to mantain a state of the connection and manage with
a lot of devices at the same time. A Yesod app example of the use of this
library and a demo app for each OS (Android, iOS, Windows Phone, etc) to
manage this communication.



* Optionally:

  

Re: [Haskell-cafe] Google Summer of Code Proposal - Communicating with mobile devices

2013-05-02 Thread Conrad Parker
On 3 May 2013 08:53, Marcos Pividori marcospivid...@gmail.com wrote:
 Greetings,

 I am a Computer Science student from Argentina. I am interested in working
 this summer in a project related to Haskell for the Google Summer of Code. I
 have been discussing my idea with Michael Snoyman in order to have a clearer
 idea. Now, I would like to know the community interest in this project.

 I want to develop a server-side library in Haskell for sending push
 notifications to devices running different OS, such as Android, iOS, Windows
 Phone, BlackBerry, and so on.

 To pass a subject, I have recently worked with Yesod (a Web Framework based
 in Haskell) developing a server to comunicate with Android-powered devices
 through Google Cloud Messaging. (It is available:
 https://github.com/MarcosPividori/Yesod-server-for-GCM – It is a Spanish
 commented version because it was a project for my University, I will replace
 it for an English version in the next weeks)

 To develop this project, I have read a lot about this service and Yesod
 libraries, and I developed two programs, a server written in Haskell and an
 Android application for mobile phones. Also, I developed an EDSL to write
 programs which exchange information with the devices.

 I would be really grateful if you could give me your opinion about this
 project and the proposal. I want some feedback in order to know if this
 would be a useful tool and what you would like to get out of it.

 Communicating with mobile devices


 Abstract

 The aim of this project is to develop a server-side library in Haskell for
 sending push notifications to devices running different OS, such as Android,
 iOS, Windows Phone, BlackBerry, and so on.

 The fact is that every company is developing Push Notification services, and
 these are very similar. Then, I want to find the fundamental concepts to
 construct a library which enable to configure the options for the different
 services and send messages easily.

 When I say they are very similar, I refer to the fact that they all are
 asynchronous, best-effort services that offers third-party developers a
 channel to send data to apps from a cloud service in a power-efficient
 manner. The most popular are:

- Google Cloud Messaging (Android)

- Apple Push Notification Service (iPhone / iPad)

- Microsoft Push Notification Service (Windows Phone)

- BlackBerry Push Service (BlackBerry)

- Windows Push Notification Services (Windows 8)

- etc.

 Once we have this libraries, I will investigate the possibility of mainting
 a back and forth communication between a server and mobile devices and I
 will develop a library to handle this.


 Motivation and expected benefits

 I think this idea would be very useful because it will allow all Haskell
 developers to open to a new world of mobile devices and to build useful
 programs/services that interact with them.

 Pushing data to smartphones provides users with instant access to desired
 updates as they happen, such as news and weather, sports scores, stock
 prices and other time-sensitive content. The push services provide an
 efficient way to quickly push timely information updates to many smartphones
 at once, in a centrally managed and controlled manner.

 Generally, you can also be very selective in who you send information to,
 including individual customers or many customers (multicast).

 This services minimizes the impact on the smartphones battery life. Instead
 of actively checking for new data, the applications can remain closed. Once
 the data is delivered, the application can be launched in the background to
 process it as needed.

 This processes offer an alternative to other less efficient methods, such as
 polling, where a device regularly polls an application server to see if new
 content is available.

 The main differences between the services, refer to details as: the maxim
 payload length, the quality of service, queueing the messages or not, and
 the time limit for this, the way the messages are handled in the devices,
 etc.

 As all the libraries to access to these services are developed in Java, I
 thought that it would be a good idea to offer an option to Haskell
 programmers. Taking advantage of the similarity of these services, I could
 develop a very adaptable library which fits the necessities for each one and
 at the same time offer an abstraction to the user.


 Deliverables.


 * An API library to build and send messages including:

- GCM and a demo Android app.

- APN and a demo iOS app.

- Microsoft Push Notification Service (Windows Phone) and a demo app.

- Documentation for all the code developed. Including the explantation on
 how to use the server

  library and how to try the demo apps.



 * A library to handle a back and forth comunication between a server and
 mobile devices. Tools to mantain a state of the connection and manage with a
 lot of devices at the same time. A Yesod app example of the