Wednesday 11 August 2010

Pencils down

Google Summer of Code 2010 is drawing to a close and Sakai's three students all have exciting contributions to share.  it's particularly great to see that all three are planning to keep up their involvement with Sakai. Many thanks to Google for running another great GSoC, to our volunteer mentors, and everyone in the community who has helped out.

Manoj Inukolunu has implemented a citation manager widget, helped by some joint mentoring from Cambridge, writes:

I have created a citation manager widget for sakai3 with the following features: Add citations, Export in RIS format, Import in RIS format from other reference managers, Comment on Citations, Fetch citations from other sakai3 users, Share the citations, Search for citations (bugs remaining), Delete a specific citation. There are 2 features that needs to be implemented 1) Embed the widget into a course site 2) Add delicious support to Sakai3 (Sakai3 needs to support Oauth for this so waiting) A detailed specification and implementation details can be found at [1].

It has been a wonderful experience to work the Sakai Foundation. The developers have done a great job with the back-end and front-end. The best part was the modularity and the design. My project in the beginning was to use external citation-managers and design a citation-manager for Sakai3.The project changed a lot since the beginning [1]. I found my project intimidating in the beginning because I didnt know what to do.I did a lot of research and came up with the design spec [1] with the help of my mentor (Amyas Phillips who has been a great mentor). GSoC has been the single greatest experience in my life so far and the most productive summer so far, the interaction with the community(thanks very much for all the guys who helped me ) was the best part.I learned many things. The real world experience I gained was very valuable. I feel sad that the program is coming to an end. I am planning to continue with my project after GSoC I am also planning to join the sakai community.

My specification and implementation details are at [1] Code is at [2] and[3]

[1] http://confluence.sakaiproject.org/display/3AK/Citation+Manager+widget+specification+proposal
[2] http://github.com/zerocool1989/citation-manager-widget
[3] http://github.com/zerocool1989/exportRIS

Maria Teresa Gimenez Fayos has developed an Android app for interacting with Sakai 2.x instances, working with mentor David Roldan Martinez at the Polytechnic University of Valencia, summarises her GSoC experience thus:

I have archived the main framework of the application, I am still working in a lot of things, I hope some things would be working at the end of this week. There is a lot of work that should be done, because I really thought that the project would be easier, and it is not.

Of course I am planning to continue working on it! In fact this is going to be my final career project. I am going to use all what I learned about android and sakai in this project. So even I could not finish all what I was planning I am not worry because I am going to finish everything, I spend a lot of time of my gsoc learning about the technology and I am going to take advantage of all this knwoledge to put it in the project. At this point I would like to thank David, for all his patience. 

I am related with the open source since my second year at the university when I joined to an open source association called Aditel, and there is where I know GSOC when some fellow participated and they were so happy with the experience that I want to try it too. I knew about Sakai when I began my business practices with Samoo two years ago. Then I have being doing practices in my university (Valencia Polytechnic University) with David Roldán who is being my mentor this last year. I proposed my project, an Android Application, and it came to me from my needs as student.

The community could find all the code is here: http://bitbucket.org/mrs.hopper/nellodee
And I write a blog (in spanish sorry) about sakai, android, technology and so on in http://www.colorines.org/

Ashish Mittal has been developing an 'event explorer tool' for helpdesk users with mentor Ian Boston at Cambridge.  Ashish writes:

It has been a great experience to work under Sakai for GSOC 2010. It is mainly because of the opportunity of working with great experienced people, having a great mentor, working with the most cutting edge technologies for the project and developing a great and successful project at the end. I am very happy I got selected under Sakai Foundation for GSOC and will cherish this period of my introduction to Sakai Community, People at Sakai are great and very helpful and been available through IRC or mailing list whenever any help was needed. This has been the greatest event for me till now and I thank Sakai community for this.

A large part of the project has been accomplished and all the main and essential modules were completed well in time. There might be scope for more work to be done and I think it would be beneficial to the project to add some more features (ex. analysis) as decided earlier to give it an elegant touch.

I do plan to keep adding some features as and when it is possible. I will be consulting my mentor and will ask his opinion what can be worked out.

All the code I have developed is present under my github repo at [1]. The Sakai version of the code has already been included by my mentor in the sandbox area under the name eventexplorer.

[1] http://github.com/ashishmittal/eventexplorer

Monday 2 August 2010

Tenth week of Event Explorer (Ashish)

The past week I worked on various resourceType for the filters that I need in the UI. Mr. Ian created a page at the KernDoc with those resourceTypes for maintaining a documentation and I have been adding more as I find them. Once I get enough information about all resourceTypes, I will be able to implement the filters.
This week I will continue with this and discuss with my mentor about what is to be done now.

Thursday 29 July 2010

After Midterm Evaluations

Its been a long time since i posted on this blog. Based on the feedback from my mentor and from the community I redesigned most of the UI and the backend code which can be found at
http://github.com/zerocool1989/citation-manager-widget

The past few weeks I have implemented features like delete citations ,add comments,fetch from some other user etc ., I have also designed the UI for Export and Import .

This week I will finish the Export and Import part and also the search part .

Tuesday 27 July 2010

Ninth week of Event Explorer (Ashish)

The last week I worked on filtering on basis on user events and faced some difficulties in getting the local AMQ integrated with new Sakai build. I overcame that and am working on the Sling resourceTypes of various user events.
This week i will be continuing with filtering.

Monday 19 July 2010

Eight week of Event Explorer (Ashish)

The past week I did some testing and coverage and reported it to Mr. Ian. I also read about MapReduce and gave a thought to the analysis.
This week I will be continuing with analysis.

Monday 12 July 2010

Seventh week of Event Explorer (Ashish)

The last week, I read on MapReduce and analysed its usage in EventExplorer. I also had few interactions with Simon regarding code structure and including it as jar along with other bundles. Currently I am working on creating test class for AMQ Listeners.
The following week I will be working on midterm evaluations and will discuss with Mr. Ian regarding work on MapReduce and will hopefully start implementing that.

Wednesday 7 July 2010

Oauth fail

I was delaying my weekly post, waiting for having something good to write, but I can’t delayed any more.
So, this is the point. As I said before I was worried about security, how to handle users login and password is a very important issue since we have access to private data. Last week I was researching about how other platforms do this. And I found a really interesting protocol called Oauth.
OAuth provides a method for clients to access server resources on behalf of a resource owner (such as a different client or an end user). It also provides a process for end-users to authorise third party access to their server resources without sharing their credentials (typically, a username and password pair), using user agent redirections.



This is great for Sakai. There are a lot of android developers who could write his own applications using the powerful framework which Sakai is. So I’ve been working in integrate Oauth in Sakai. But after talking with my mentor, David, we agree that this is far complicated that what I was planing so I decided to access using servlets, is not the best way but it’s functional. So I get the user connected with Sakai (yuhu!), and I’m going to write to sakai-dev waiting for some good soul from pda project could help with the integration.

Annonuncement is the first tool trying to sync, and that’s exactly in what I working right know. But since every tool is different is being a tough process, anyway nothing I can’t beat. (hopefully)

I saw that my gsoc parners are using github. I’m more fan of mercurial subversion service. There is any problem if I use bitbucket or maybe I could use svn in msub/upv.es? But If the community prefers using github please let me know and I will upload the code.

Finally a personal thought, I’m really learning a lot from Sakai, and having a great time working in this application and I really hope this would be useful for the community.

Monday 5 July 2010

Sixth week of Event Explorer (Ashish)

This week I completed the major part of UI for project by completing the filters and dynamically creating timeline and hotzones according to the filtered events. I added them to my repository at Github [0]. Mr. Ian has added the code under the sandbox [1].
This week I plan to prepare the code for midterm evaluations and create any other documentation if needed.

[0] - http://github.com/ashishmittal/eventexplorer
[1] - http://github.com/ieb/open-experiments/tree/master/sandbox/eventexplorer

Sixth Week Of Citation Manager Widget

This week was really productive i have been able to make the widget work and the code is at http://github.com/zerocool1989/citation-manager-widget

Also the Spec is updated at

http://confluence.sakaiproject.org/display/3AK/Citation+Manager+widget+specification+proposal

I made a widget development guide with all the troubles i faced while developing the code at
http://confluence.sakaiproject.org/display/3AK/Widget+development+for+a+beginner which is still a very basic draft.
The coming week will be dedicated to developing the widget where the user's can add comments and tags to the citations.

Monday 28 June 2010

Fifth week of Citation manager widget

The past week was very fruitful.I finally got a model with local storage ,import and export features.

I created a public repository at http://github.com/zerocool1989/citation-manager-widget
The updated specification proposal athttp://confluence.sakaiproject.org/display/3AK/Citation+Manager+widget+specification+proposal

Fifth week of Event Explorer

The past week I have worked extensively on the UI (Simile Timeline). I interacted with Jeff Ziegler of University of Michigan and had his needs and views on the UI. Have created interface and filters for event selection and am currently working on dynamically creating hotzones for the Timeline based on number of events extracted from Cassandra.

This week I will be further trying to complete the UI and will post its code on github, and then will start with data analysis.

Sunday 27 June 2010

Android IU ready

This week I finally the basic iu and the basic workflow on the android application. I attended this last weeks to an android course and I learn a lot about the technology, and this new knowledge has made me think about rescheduling. The iu is developed for the eclair (2.1), because studying the target devices this version was the best, the framework is more advanced and 50% of the devices use it, but we are studying if it’s interesting for the community develop the application for the 1.6 or 1.5 versions.


Thanks to David, this is is going to be much more than just my project on gsoc, I am going to go beyond and It will be my final career project. So I would like to ask the community about what features should be in the application. (Comments would be appreciated, anyway I would ask also in the sakai-dev list).

I'm a bit stuck about how to keep users alive and connect properly the android with Sakai. This is going to be my next concern, even if this is delaying the next step, It’s important than the application doesn’t eat all the battery sending forms constantly and use properly the lifecycle of the android applications.

Monday 21 June 2010

Fourth week of Event Explorer (Ashish)

The past week I created a documentation for setting up the required softwares for this project at the confluence [0]. I have started with the analysis of data in a Cassandra node using Apache Hadoop.

This week I will distribute data on multiple Cassandra nodes and will continue with the analysis of data using Hadoop and PIG Latin.

[0] - http://confluence.sakaiproject.org/display/KERNDOC/Setting+up+Apache+Cassandra%2C+ActiveMQ+and+using+Thrift

fourth week of citation manager widget

This week I discussed use cases with my mentor which made me look at connotea more deeply.There are no group features in connotea.I had a deep look at Zotero (a firefox extension) which turned to be way better than connotea.The draft proposal for the widget can be found at http://confluence.sakaiproject.org/display/3AK/Citation+Manager+widget+specification+proposal.

Thursday 17 June 2010

Reference Manager Overview

This seems pretty relevant to Manoj's project, which is exploring what researchers want and what reference managers can do and finding ways to match them up in Sakai 3.  This embed is from Slideshare, but the original is on Martin Fenner's Nature blog.   Reference Manager Overview
View more documents from Martin Fenner.
Interestingly, Martin's most recent update was to remove Connotea from the comparison.  I had thought Connotea was a prime OSS candidate for integration, but the fact is it doesn't actually make it very easy to use your references once you've collected them.  Zotero increasingly seems like a much better (and more popular) integration target - the only question (in my mind, as a non-user, so far) is how much it offers in terms of sharing and web presence.  Mendeley (which I do use) is fantastic at ingesting documents and sharing them online, and they have kindly given Manoj access to their API beta programme.

Wednesday 16 June 2010

Second week on Android & Sakai

This two weeks I've working in learning Android technologies, it's really important to make a good design of the application because android devices have limited resources.
As sakai3 is using the same tools than sakai2x, we are working to develop a tool for sakai 2.7.0 to get the events than we want to synchronize.
Talking with my mentor David, we have decided to begin with announcements, and we have all the functionality working and then extend the functionality to another tools.
Also I've been translating some sakai tutorials to spanish. There is a lot of documentation but all is in english, so I think that this tutorials could be useful for the spanish community. The tutorials are:

How to install sakai-trunk
How to install several sakai sources (installing sakai 2.7.0)
Getting Eclipse ready

I hope really soon I could show you see some screenshots and code on my android device.

Monday 14 June 2010

Second and Third week's of Citation Manager Widget

I ran into a lot of problems while designing my prototype for feedback.I was able to work with connotea with out any difficulty but the main problem was delicious which can not be incorporated into sakai as of now because sakai doesn't support Oauth(yet).I found some scripts which enable the user to copy delicious bookmarks to connotea.
I was able to fetch and post data to the connotea database form within sakai using curl after some effort.I created a few mockup web pages for a basic prototype to get some feedback on the features required.
The next week will be devoted to completing the prototype with all essential features.

Third week of Event Explorer (Ashish)

The past week I have sent emails to some help-desk users at University of Capetown and Michigan regarding their opinions on the UI. I have also been looking for testing the scalability and emission of the events so that I get an idea as to where more event coverage is needed.
For the coming week, I will be looking further on testing part and will be working on UI.

Monday 7 June 2010

Second week of Event Explorer (Ashish)

This week I had a deeper look into the view(Timeline tool) and what should be the best layout for the messages I have retrieved from the database.
I have contacted Verity (CARET helpdesk) and have asked for her suggestions on how would they like the interface to be.
I also filed jiras related to my work, one for lack of userid in the messages and one for the modification to the current embedded broker configuration.
I have created a repository at github [1] containing the work I have done till now.
For this week, I plan to work further on the view section and interact with Verity to get a clear idea of their needs as a project user.
[1] - http://github.com/ashishmittal/eventexplorer

Monday 31 May 2010

First week of Event Explorer (Ashish)

Hi all

This is my first weekly post on what has been done up to date. Till now I have been working on laying the core framework of the project (and have achieved that just today). I have created a rudimentary model of database and view and need to customize it further in consultation with my mentor and some help-desk users. Further, I will be working on making it more flexible and adding extra features.
Here's what I have implemented till now:

- Have set up a network of ActiveMQ brokers and have made changes in Sakai embedded broker configuration to introduce it in the network.

- Have set up Consumers (MessageListeners) on remote broker which listen and retrieve the event messages emitted by Sakai broker over the network.

-These Consumers process the message and store the message in the Cassandra database (using thrift) to which they are locally attached (as of yet).The mockup of the database design is shown below:


(Click on the picture to view it larger)

- In the GUI section, I have created classes which retrieve the data (messages) from cassandra again using thrift.

-These classes create JSON feeds of the messages and inputs it to the JSP containing the Simile tool.

-As a result, I am currently able to view some Nakamura Event and OSGI messages which I retrieved using the classes, in the browser using the Simile tool.

For this week I plan to contact help-desk users of Cambridge University and consult them and present them some mockups. Based on the finalization of view, I will be working more on the GUI display, filtering of messages and on storage structure.

Week 1 update (Manoj)

Had a chat with my mentor on the API.There are only two API's available for regular use one is connotea and the other is delicious.We decided on combining Delicious's group tagging ability and connotea's citation management.I ran into a few problems with delicious so i mailed the delicious team.Successfully implemented the python wrapper for connotea.I was able to make new post's and add comments and add citations.I developed a few mock up pages but due to the problems i had with delicious i put that on hold.

Saturday 22 May 2010

Sakai & Android

I'm Mayte Giménez, I'm in my last years of computer science and in my first one of fine arts. First of all I would like to apologize for the delay writing this post, I'm facing my finals and as all students (and the university community in general), this is kind of mad.

Anyway, let's focus on the fun things. I'm so excited about this project and very glad that Sakai have accepted my proposal.


Mobility is a major issue nowadays, and android is a great platform to bring sakai 3 to mobile. Android is an open source operating system for mobile device which has the support of Google, and every day the is more mobile phones and more students using it.


Gartner's latest statistics show big gains for Android's quarterly sales worldwide, jumping from 1.6 percent in the first qua
rter of 2009 to 9.6 percent during the same period this year. That puts the OS ahead of Microsoft's Windows Mobile.
Here you can see a chart with word wide web traffic, and android is growing fast.
My gsoc, is not about to migrate the entire platform for android. There is a great team doing sakai mobile. This idea was born from my students needs, as a user of sakai. I needed to be aware of my pending tasks, be aware of my exams and any changes on my classes, and I need this in my mobile, I don't want to load the whole sakai application, and that's the reason I suggested this idea and this challenge for me.

The app main screen would have icons of each tool that can be synchronized, and a small alert if there is unread items. When we click on the icon we can see a list of subjects and the list pending assignments, for example. Also, would be nice to have a time management technique include, I am using the pomodoro technique right now and It is really useful for me, that allow us (the students) to get our goals.

Here I included some images of a mock up for the application.





And of course, standards are vital. We are a very large community and we need standards to grow up. Our students came from a lot of places with different needs, so accessibility is a must for our final goal which is education.

I would update this really soon. Thanks for your patience, see you soon on our androids.

Thursday 20 May 2010

Citation Manager Widget

Hi all

I am Manoj a 3rd year CS student at BITS-Pilani(GOA) in India.

Sakai is a collaboration tool for research academics, as well as an environment for collaborative and online learning. A key tool of academic researchers is the citation database, which is used to log, organise, annotate, share and cite interesting publications. Publications themselves might be books, websites, conference proceedings or journal papers. This project would require some initial exploration, with the help of my mentor, of use cases and requirements in order to develop a specification for how these tools can be usefully brought in to Sakai3, giving particular attention to its academic networking features, and subsequent development of a Sakai3 widget (somehat like an iGoogle widget) using javascript, HTML, CSS and the target APIs.

The project has been divided into 2 phases.
1.Research phase
2.Development Phase.

The following progress has been made(after discussion with my mentor):
  • Mendeley The API hasn't been released yet though active research is going on and the results will be known by 21st may.
  • Delicious Has a much larger user base and development resource.The only problems with it in the context of citation management are a) that it doesn't do citations, its really only bookmarks, and b) that it isn't very sophisticated in terms of shared bookmark lists such as a research group might want to use. What it does do well is tagging and mass editing.

  • Creating ideas: The following are some ideas that will make this widget out-of-the-box:
  • My Citations
  • Function: Scan Article for citations(This will be done by the API), "Import", "Send through mail", "To PDF" and "Add to Favorites".
  • Description
  • Send Mail: Front end service through MailMan.
  • ToPDF: Export entity to PDF format.
  • Import: Import citation data via Connotea, Mendeley web APIs in XML/JSON format.
  • Scan Article: Retrieves citations from publications and displays on a list dynamically.
  • Required: JavaScript + JQuery + AJAX
  • A Drag and drop feature will speed up these operations.
  • New browse feature
  • Function: Set style elements to already saved citations and notifies which user in a Sakai group has saved this citation in their favorites list.
  • Description
  • Example - If a user loads a new publication, then the saved citations will be red in color (or bold, any style specification) and the citation saved by a member in the group yellow in color along with name of that user. This will help users’ select new citations quickly, thus faster selection.
  • Technical Details: Simple CSS and some back end coding will give this unique feature to Sakai 3.
  • Citation suggest
  • Function: Suggest a list of Sakai users which also have same citations in their favorite window. Users can find appropriate groups dynamically.
  • Group Update
  • Function: Notifies a user about a newly added citation by a user in the group in an Update section.
  • Group Tagging
  • Function: Notifies which citations have been tagged by multiple users in a group, and how many tags have been received by each citation. In this way users can view mostly used citations.

How will integration with Sakai 3 take place?
Sakai’s event handling capabilities can be employed to manage various entities in all these modules. Events can be published using Java Message Service (JMS) that will act on contents (Contents are citations). An efficient data model will be set up that will control data flow during runtime. The model will be made on Sakai Nakamura, leveraging its flexibility. In this way, integration with Sakai will be achieved.

2. Development phase

Core development plans will be formulated when the specifications will be decided; and the following generic approach will be employed:
  • UI Development: First, a user interface will be made for the widget using CSS that will match Sakai’s standards.
  • Hierarchical structure: Citations, relevant tags and other information will be stored in a hierarchical form in the citation database. (or any other content repository) Thus, data can be summoned using proper URI.
  • Group-oriented features: Main concern will be on increasing user activity on a Sakai network (or group). Citation management will be the easiest task a user can do on Sakai 3.
  • Materialize ideas: Using Sakai Nakamura as a framework, develop JQuery code + Back end and Front end services to implement the selected ideas.
  • Testing and Feedback: JUnit to be used for testing the code. The beta version will be put on a Sling server for feedbacks.




Thursday 13 May 2010

INTRODUCTION TO EVENT-EXPLORER

When a support ticket comes into a Help Desk at an institution, the help desk staff need to be able to determine what the user was trying to do and what they want to achieve. Often this information can be gathered from a conversation with the user, but frequently the Help Desk staff needs to interrogate the back end to discover the operations the user performed at the server and the state of the data that they were interacting with.
This project will address the area of exploration of events that have happened in the system allowing a Help Desk user to navigate to content and pages that the user was working on. It will focus on the collection, storage, analysis and exploration of the event based information from a cluster of Nakamura servers.

The three essential stages of the project are:

-Event creation and Processing
-Storage and Analysis
-UI Development
Event Processing:

This involves the recieving of JMS messages created and emitted by OsgiJmsBridge by an AMQ consumer and processing the message to store the vital information in the database (Cassandra). This will require configuring the AMQ brokers and setting up of consumers clients of brokers present in the network. It will also be including some Camel queries to route the messages over the network of brokers to the appropriate consumer. Once the consumer recieves the message, it will process the message and will include the code for transferring the processed data to Cassandra using Thrift potocol.

Storage and Analysis:

Storage:

I will be using Cassandra for data storage and Apache Hadoop for data analysis. Cassandra is a column database with NoSQL implementation. Usage of Cassandra will be very beneficial in terms of future scalability. Apart from this, the main feature of Cassandra is its efficiency and reliability. It has much less read and write time than relational databases.

Analysis:

The incoming data into Cassandra from JMS will be stored in columns and column-families according to the format that will be decided. The Cassandra dataset is integrated with Hadoop. Hadoop MapReduce can talk to Cassandra and process data. A Hadoop cluster is formed which will use Pig Latin to query the cluster and retrieve information for analysis from the pig server running on user machine.

UI:

This is an initial plan of how the UI is going to work. Additional work rill be done after consulting some of the help-desk users and creating some prototypes according to their needs.
The UI creation would include the following:
A Java Thrift API for accessing the Cassandra database. This would be a java class with specifications for Thrift code. The retrived data would be persed and converted to JSON object. This object would be loaded in our JSP page which would be the page for the help-desk user. The JSP page would contain the Javascript for the Simile tools (example: Timeline [1]). The JSON feeds created will be loaded in the JSP page using inbuilt functions. Hence the data retrieved from the database will be displayed in the view page using Simile tool.

Tuesday 27 April 2010

Welcome to the Sakai GSoC 2010 blog

We had many extremely good applications this year, so much so that we wish we'd asked Google for more slots. A big welcome to our winners then:

Ashish Mittal, 2nd year engineering student at Sardar Patel Institute Of Technology, India, is going to be working with mentor Ian Boston on an 'event explorer' tool in 3akai for helpdesk staff.

Manoj Inukolunu, 3rd year CS at BITS-Pilani (Goa) who is going to work on a citation manager widget for Sakai 3.

Maria Teresa Gimenez Fayos, final year CS student at the Polytechnic University of Valencia, proposed a project to develop a Sakai Android application, mentored by David Roldan Martinez.

You can check out the original ideas page to find out a bit more about Cyrille and Ashish's projects, Maria proposed her own so I hope she won't mind if I point you to her application page instead. If you want to keep up with what we're doing, we'll be discussing things in #sakai, in our Google Group, and this year in this blog too!

Thanks to all our applicants, many of whom put in a lot of thought and effort to their applications - we were sorry to have to turn you away, so do come back next year. Special mention to Himanshu Bansal, 2nd year CS also at BITS-Pilani (Goa) who only just missed out on a slot to work on the Citation Manager widget. He's keen to contribute anyway, so look out for him on the lists.