Difference between revisions of "Summer of Code 2012"

Jump to navigation Jump to search
208 bytes removed ,  08:19, 21 March 2012
m
→‎buddycloud: Bringing the formatting in line with all the other projects, corrected a couple of typos.
m (→‎Swift: Adding teaser page.)
 
m (→‎buddycloud: Bringing the formatting in line with all the other projects, corrected a couple of typos.)
Line 147: Line 147:


== buddycloud ==
== buddycloud ==
[http://buddycloud.com/ buddycloud] is an open social network designed to be simple to use and built on XMPP. If you're interested in any of these ideas or even has some own ideas, you can contact us in seehaus@channels.buddycloud.com room of see the [https://buddycloud.org/wiki/GSOC_2012
[http://buddycloud.com/ buddycloud] is an open social network designed to be simple to use and built on XMPP. If you're interested in any of these ideas or even has some own ideas, you can contact us in seehaus@channels.buddycloud.com room or see the [https://buddycloud.org/wiki/GSOC_2012
buddycloud GSOC] page for how to apply
buddycloud GSOC] page for how to apply. [https://buddycloud.org/wiki/GSOC_2012] also has 'next steps' and 'teaser task' information for these proposals.


=== private messaging ===
=== private messaging ===
'''Summary''' reinvent how we send instant messages
* '''Summary''' reinvent how we send instant messages
 
* '''Difficulty''' Difficult
'''Difficulty''' Difficult
* '''Details'''  Instant messaging is broken: you join a conversation with no context or history. Sometimes you wonder if your message really reached the recipient. Some clients tell the other person when you are typing and perhaps you don't want that. Good instant messaging is an essential part of XMPP. This project will add messaging support into buddycloud and make it into something that works so well that user can depend on it. Users of your code and design should fall in love with how smoothly and wonderfully instant messaging can work. You will be hacking on reliability, functionality and usability. You will be looking at other systems, looking at existing protocols for message storage and be inventing a significantly better way to communicate in private.
 
* '''More info'''
'''Details'''  Instant messaging is broken: you join a conversation with no context or history. Sometimes you wonder if your message really reached the recipient. Some clients tell the other person when you are typing and perhaps you don't want that. Good instant messaging is an essential part of XMPP. This project will add messaging support into buddycloud and make it into something that works so well that user can depend on it. Users of your code and design should fall in love with how smoothly and wonderfully instant messaging can work. You will be hacking on reliability, functionality and usability. You will be looking at other systems, looking at existing protocols for message storage and be inventing a significantly better way to communicate in private.
** http://carsonified.com/wp-content/uploads/2010/04/maslow-hierarchy-interface-design.png
 
** http://doomsong.co.uk/extensions/render/message-archive-management.html  
'''More info'''
** http://xmpp.org/extensions/xep-0136.html
* http://carsonified.com/wp-content/uploads/2010/04/maslow-hierarchy-interface-design.png
* http://doomsong.co.uk/extensions/render/message-archive-management.html  
* http://xmpp.org/extensions/xep-0136.html
 
'''Next steps + teaser tasks'''
* https://buddycloud.org/wiki/GSOC_2012
 


=== The "it 'effing works as expected" Project ===
=== The "it 'effing works as expected" Project ===
'''Summary''' buddycloud users deserve a great (and predictable) experience
* '''Summary''' buddycloud users deserve a great (and predictable) experience
 
* '''Difficulty''' Medium - Difficult
'''Difficulty''' Medium - Difficult
* '''Details'''  At buddycloud HQ we're trying to make more than a "Yeah I think it supports that..." service. When a sysadmin deploys a buddycloud server they should know that it absolutely works as expeced and has passed your rigerous test suite. To run these tests your project will be to devise a suite of tests that eventually produces a table like http://mobilehtml5.org/
 
'''Details'''  At buddycloud HQ we're trying to make more than a "Yeah I think it supports that..." service. When a sysadmin deploys a buddycloud server they should know that it absolutely works as expeced and has passed your rigerous test suite. To run these tests your project will be to devise a suite of tests that eventually produces a table like http://mobilehtml5.org/
 
Tests would fire off the necessary commands to "create user a", "create user b", "a follows b's channel" "b apporves a's follow request" etc.
Tests would fire off the necessary commands to "create user a", "create user b", "a follows b's channel" "b apporves a's follow request" etc.
 
Your project will define the base standard of support that guarantees a buddycloud compatible server works as expected. Your tests will help sysadmins choose standards compliant servers and help users know when their server is not supporting all features (and encourage non-standard implmentations to fix their implementations).
Yor project will define the base standard of support that guarantees a buddycloud compatible server works as expected. Your tests will help sysadmins choose standards compliant servers and help users know when their server is not supporting all features (and encourage non-standard implmentations to fix their implementations).
 
This project could / should also be avaliable to test other XMPP services too.
This project could / should also be avaliable to test other XMPP services too.


'''More info'''
* '''More info'''
* http://www.tigase.org/project/testsuite
** http://www.tigase.org/project/testsuite
* http://seleniumhq.org/projects/
** http://seleniumhq.org/projects/
 
'''Next steps + teaser tasks'''
* https://buddycloud.org/wiki/GSOC_2012
 


=== buddycloud places ===
=== buddycloud places ===


'''Summary''' Enable users to share where they were, where they are now, and where they want to go next with their trusted friends in buddycloud. This project will build a social location server that keeps user data private and also let's users query for nearby channels.
* '''Summary''' Enable users to share where they were, where they are now, and where they want to go next with their trusted friends in buddycloud. This project will build a social location server that keeps user data private and also let's users query for nearby channels.
 
* '''Difficulty''' Difficult
'''Difficulty''' Difficult
* '''Details''' Designed to serve HTML5 and mobile clients, your social location server will enable a user to bookmark locations that are then stored as either just a name or with incrementally more information such as address, associated wifi and cellID data and perhaps even a lat/long. When a user moves around the world with their buddycloud-enabled phone or webclient, your server will update their location and place them at previously set location bookmarks.
 
** Receive XEP-0255 formatted beacon stanzas from the buddycloud webclient and mobile clients. This could arrive in the form of wifi-MACs, Cell-IDs, or GPS coordinates.
'''Details''' Designed to serve HTML5 and mobile clients, your social location server will enable a user to bookmark locations that are then stored as either just a name or with incrementally more information such as address, associated wifi and cellID data and perhaps even a lat/long. When a user moves around the world with their buddycloud-enabled phone or webclient, your server will update their location and place them at previously set location bookmarks.
** match the user with previously bookmarked places like "home", "work" or "Cafe on Main Street"
 
** Scale to millions of queries/minute.
* Receive XEP-0255 formatted beacon stanzas from the buddycloud webclient and mobile clients. This could arrive in the form of wifi-MACs, Cell-IDs, or GPS coordinates.
** Provide reverse geo-locate lat-long
* match the user with previously bookmarked places like "home", "work" or "Cafe on Main Street"
** Cache frequent queries
* Scale to millions of queries/minute.
** Enable the user to manage their place bookmarks
* Provide reverse geo-locate lat-long
** Pattern match on beacon data and place users back at bookmarked places
* Cache frequent queries
** The code should be opensouce and deployable as an XMPP component onto any XMPP domain.
* Enable the user to manage their place bookmarks
* Pattern match on beacon data and place users back at bookmarked places
* The code should be opensouce and deployable as an XMPP component onto any XMPP domain.
 
'''Skills''' GIS functions, database scaling techniques, XMPP component design


'''See Also'''
* '''Skills''' GIS functions, database scaling techniques, XMPP component design
* https://github.com/buddycloud/location-butler
* https://buddycloud.org/wiki/Place_Management
* http://m.buddycloud.com/tmp/proofs/20100129-buddycloud-architecture.png
* http://m.buddycloud.com/tmp/proofs/Android%20place%20handling.png


'''Next steps + teaser tasks'''  
* '''See Also'''
* https://buddycloud.org/wiki/GSOC_2012
** https://github.com/buddycloud/location-butler
** https://buddycloud.org/wiki/Place_Management
** http://m.buddycloud.com/tmp/proofs/20100129-buddycloud-architecture.png
** http://m.buddycloud.com/tmp/proofs/Android%20place%20handling.png




=== Android or iOS buddycloud client (messaging + pub-sub support) ===
=== Android or iOS buddycloud client (messaging + pub-sub support) ===


'''Summary''' Build an open-source XMPP client for Android or iOS
* '''Summary''' Build an open-source XMPP client for Android or iOS
 
* '''Difficulty''' Given the time constrainsts, extremely
'''Difficulty''' Given the time constrainsts, extremely
* '''Details'''   
 
'''Details'''   
 
To be successful, this project will deliver and XMPP client that is easy to use, and standards compliant. The client should handle roster synchronisation and use XEP-0198 to ensure reliable message delivery on an unreliable mobile network.
To be successful, this project will deliver and XMPP client that is easy to use, and standards compliant. The client should handle roster synchronisation and use XEP-0198 to ensure reliable message delivery on an unreliable mobile network.
The client should provide the following social features:
The client should provide the following social features:
* location updating and sharing with XEP-0080 and XEP-0255
** location updating and sharing with XEP-0080 and XEP-0255
* do channel posting and updating using pub-sub
** do channel posting and updating using pub-sub
* handle mood and location setting
** handle mood and location setting
* pay particular attention to ease of use and good UI design principles
** pay particular attention to ease of use and good UI design principles
 
The client will need to be well integrated with the Android or iOS core features to ensure long battery life while running in the background.
The client will need to be well integrated with the Android or iOS core features to ensure long battery life while running in the background.


'''Skills'''
*'''Skills'''
* Good XMPP knowledge
** Good XMPP knowledge
* XMPPFramework or Asmack-lib experience
** XMPPFramework or Asmack-lib experience
 
'''See Also'''
* https://github.com/buddycloud/iphone-client
* https://github.com/buddycloud/android-client
 
'''Next steps + teaser tasks'''
* https://buddycloud.org/wiki/GSOC_2012


*'''See Also'''
** https://github.com/buddycloud/iphone-client
** https://github.com/buddycloud/android-client


=== buddycloud media server ===
=== buddycloud media server ===
 
* '''Summary''' Work with the core buddycloud team to spec and build a reference implementation of the buddycloud media server
'''Summary''' Work with the core buddycloud team to spec and build a reference implementation of the buddycloud media server
* '''Difficulty''' Difficult
 
*'''Details'''  Sharing videos, pictures and documents powers so much of what we do on the internet and strengthens relationships with loved ones. We all loving seeing photos of loved ones, funny videos or albums of friend's events. Your help on this project will make a huge impact: a well designed media server has the power to change the way we share media and work documents. This project is special - it will be working very closely with the buddycloud core team and other XMPP exports to rethink how  we share media: both in buddycloud channels and when we send instant messages. This project is much more than building another Twitpic clone.
'''Difficulty''' Difficult
 
'''Details'''  Sharing videos, pictures and documents powers so much of what we do on the internet and strengthens relationships with loved ones. We all loving seeing photos of loved ones, funny videos or albums of friend's events. Your help on this project will make a huge impact: a well designed media server has the power to change the way we share media and work documents. This project is special - it will be working very closely with the buddycloud core team and other XMPP exports to rethink how  we share media: both in buddycloud channels and when we send instant messages. This project is much more than building another Twitpic clone.
 
An important part of this project will be getting seamless sharing working by successfully bridging the XMPP and HTTP protocol worlds. The buddycloud media server should enable drag and drop sharing over authenticated XMPP and HTTP connections. The server should also allow viewing of content from open channels to non-authenticated viewers on the web.
An important part of this project will be getting seamless sharing working by successfully bridging the XMPP and HTTP protocol worlds. The buddycloud media server should enable drag and drop sharing over authenticated XMPP and HTTP connections. The server should also allow viewing of content from open channels to non-authenticated viewers on the web.
*'''Skills'''
** very strong XMPP knowledge
** excellent web frontend design skills
** web-sockets and XMPP server knowledge
** great skills in working with an existing team and communicating


'''Skills'''
*'''See Also'''
* very strong XMPP knowledge
** http://salon.io/
* excellent web frontend design skills
** https://buddycloud.org/wiki/Buddycloud_media_server
* web-sockets and XMPP server knowledge
* great skills in working with an existing team and communicating
 
'''See Also'''
* http://salon.io/
* https://buddycloud.org/wiki/Buddycloud_media_server
 
'''Next steps + teaser tasks'''
* https://buddycloud.org/wiki/GSOC_2012
 


=== ncurses buddycloud ===
=== ncurses buddycloud ===

Navigation menu