Public Lab Research note


Brainstorming for Summer of Code 2019

by warren | | 221 views | 18 comments |

Read more: i.publiclab.org/n/18047


Amazingly, Summer of Code 2019 is approaching, or at least our Ideas list is starting to be needed to plan it out properly. Let's kick off some discussion of projects so that we coordinate the long-term plan for our community's code!

Traditionally we've compiled ideas at https://publiclab.org/gsoc-ideas, and informally at https://pad.publiclab.org/p/gsoc-ideas. This year let's get ahead of the curve and discuss a bunch here first, then collect them into a more formal list.

Here are some starting points:

Finally, here is a starting brainstorm to kick things off!

Core mission-driven projects

Maintenance/sustainability for our codebases

Exploratory tools for environmental work

Other ideas? Let's discuss and plan together!


18 Comments

Great list! Thank you! I would be fully in support of this being our project list. Couple questions:

  • Are we generally expecting that the long-running Geographic Features projects will be at a phase that won't require GSOC attention thanks to the GeoUI work going on now?
  • Would it be of interest to work on tag visualization? https://github.com/publiclab/plots2/issues/3064

What do you all think?

Is this a question? Click here to post it to the Questions page.


Are we generally expecting that the long-running Geographic Features projects will be at a phase that won't require GSOC attention thanks to the GeoUI work going on now?

We'll see - hopefully as of end of winter, yeah! But Leaflet Environmental Layers maybe could use some additional work - the sky's the limit on that lib. https://github.com/publiclab/leaflet-environmental-layers/issues/

Re: Tag viz, ABSOLUTELY!!!

Is this a question? Click here to post it to the Questions page.


Hi everyone! My name is Igor Wilbert, I'm a computer science from Brazil and I'd like to join GSoC 2019 with Public Lab. Thank you Mr. Warren for introducing me to this post. So far I had two different ideas: 1) Create a mobile version of Public Lab website. I think this is interesting because it can increase the organization popularity (number of people reached) quite a lot. We could start with something simple, an Android app with login, ask, answer and search question functionalities, about us section and maybe others. 2) Incorporating the GloVe: Global Vectors for Word Representation project into the research papers search, or create a search tool dedicated to it. Its learning capabilities might be quite interesting. Please let me know what do you think. See you!


Hey everyone! I participated in GSoC'2018 as a student developer with public lab. I am also looking for GSoC'2019 opportunity. I have multiple projects in my mind. For now, one of them is : As publiclab website is getting bigger and lots of new features are getting embedded into it, it is affecting website efficiency and performance and also making the new feature more difficult on the website as the website grows more in future. For such a big website like publiclab we have to move somewhat to any front-end framework in near future. So what we can do is that we can parallelly work on the frontend framework like angular and when it gets mature enough we can replace it with rails frontend. In the process, we can obviously use rails backend which is already made. This is a very big project (could take a whole year to complete )and I have just added the idea so that people can do brainstorming over it and find out is it worth doing this or not.


I really loved your idea. Yeah this is a huge project but we can plan for the most important part of this project in the GSoC. Other remaining things can be taken up in other contests like GCI'19, Outreachy'19 and so on. I think React will be a better choice than Angular. What do you think? Let's ask Jeff if he is interested in this migration of frontend. React has a lot of capabilities that we currently miss on pl.org. This will definitely give better UI.

This project will require a lot of needy greedy details for the implementation. We can't directly implement this without the proposal. So, I completely agree with you Naman to have this on GSoC list of 2019. Great idea. Loved it.

Thanks a lot.

On Sun, Jan 6, 2019 at 9:41 PM \<notifications@publiclab.org> wrote:

Hi! There's been a response to a discussion you're involved in. You can reply to this email or visit this link:

https://publiclab.org/notes/warren/01-02-2019/brainstorming-for-summer-of-code-2019#c21650

namangupta wrote:


Hey everyone! I participated in GSoC'2018 as a student developer with public lab. I am also looking for GSoC'2019 opportunity. I have multiple projects in my mind. For now, one of them is : As publiclab website is getting bigger and lots of new features are getting embedded into it, it is affecting website efficiency and performance and also making the new feature more difficult on the website as the website grows more in future. For such a big website like publiclab we have to move somewhat to any front-end framework in near future. So what we can do is that we can parallelly work on the frontend framework like angular and when it gets mature enough we can replace it with rails frontend. In the process, we can obviously use rails backend which is already made. This is a very big project (could take a whole year to complete )and I have just added the idea so that people can do brainstorming over it and find out is it worth doing this or not.


Look like spam? Flag this for moderators

Reply at: https://publiclab.org/notes/warren/01-02-2019/brainstorming-for-summer-of-code-2019#comments

Report abuse to: moderators@publiclab.org

Check out the blog at https://publiclab.org/blog | Love our work? Become a Public Lab Sustaining Member today at https://publiclab.org/donate
Reply with the email you use at PublicLab.org and your comment will be posted to the website.

Is this a question? Click here to post it to the Questions page.


Thank you, Sidharth! I was also in the same dilemma whether we should use angular or react but then I realized that we are using rails and angular also follows the same pattern that is model view type of thing(not exactly but the flow is somewhat like that) which makes it easier for our other plots2 contributor to easily get involve in the project even if they donot know angular becuase of similarity of flow between rails and angular. And plus some other advantages of angular is that it is a framework which means it automatically do a lot of thing for us which helps us writing the code faster instead of thinking about the flow just like we have in rails and on the other hand react is a library and lack some of the advantage that we have in angular but it does have some advantage we don't have in angular. Glad you liked the idea. Let's do brainstroming over it. Thanks!


Hey Naman and Sidharth, I have done some work with Angular in the past months and agree with you that it's easy to catch for rails dev because of it's MVC-like(not fully MVC) architecture.

This transition would bring the speed and helps in scalability so I would love to be part of this transition if PL representatives agree on this one.

Thanks!


Hi @IgorWilbert, I like your idea for the development of Android application. @warren @liz we can be certain about the number of users using our website from mobile devices using Google Analytics if we want to get excited about this project. And, for sure Android app would be super useful to the moderators, without any doubt.

Thanks!


Interesting! I wonder if we might consider a couple things -- an electron-based app that uses largely the same code as the website but is accessible offline? Or something like electron but that runs on Android/iOS...

This might connect with the idea of a client-side framework as well.

One thing we might try to do to approach this in a modular way with minimal disruption could be to think of an initial "app" which does some, but not all, of what the plots2 front-end does. For example, it might be essentially the dashboard, but not include (in an initial implementation) an editor. It might have a way to view a note or wiki, but not have all the many features of those pages unless you "open the full page" so to speak.

The client side system might be launched in parallel to the existing dashboard without replacing it. Then additional views might be built, tested, and added to it gradually. Functions which need a more robust back-end API might be ported as part of this process.

This is just an idea - i think we should think carefully about a large project like this. It may be that we have other priorities like a tag visualization system, better spam management, or a Notifications API which take precedence. We should be careful not to displace those projects. But I really love the brainstorming and careful thought that's going into conceptualizing this and exploring its pros and cons. It may be that we decide that we have enough community to do all the above without compromise! Thank you all!

Is this a question? Click here to post it to the Questions page.


Thank you for your comment @warren ! Actually from what I know Electron works well for desktop cross-platform development (Windows, Linux etc.), not mobile. With this mindset, what we're looking for is React Native, because it allows development for both Android and iOS using JavaScript (for both front end and back end) and has support for an offline first mode: when the user doesn't have access to internet, it stores updates locally. I believe it would be possible to implement a simplified version of the dashboard and wiki viewer for a GSoC project, perhaps with links to the web-app to access the other functionalities. I agree, working with many projects at the same time disperses effort and we have serious priorities. But sometimes it might be possible to conciliate, for example working on the Notifications API in such a way part of the functionality could be used for the notifications of the mobile app.


Ah yes, i'd heard of React Native. Thanks!

And i'd love to brainstorm in a bit more detail how Notifications could be made compatible with both the HTML Notifications API and also a React Native based notifications system. Thank you very much!!

On Mon, Jan 7, 2019 at 5:36 PM \<notifications@publiclab.org> wrote:

Hi! You were mentioned by IgorWilbert in a comment on the research note Brainstorming for Summer of Code 2019. You can reply to this email or visit this link:

https://publiclab.org/notes/warren/01-02-2019/brainstorming-for-summer-of-code-2019#c21663

IgorWilbert wrote:


Thank you for your comment @warren ! Actually from what I know Electron works well for desktop cross-platform development (Windows, Linux etc.), not mobile. With this mindset, what we're looking for is React Native, because it allows development for both Android and iOS using JavaScript (for both front end and back end) and has support for an offline first mode: when the user doesn't have access to internet, it stores updates locally. I believe it would be possible to implement a simplified version of the dashboard and wiki viewer for a GSoC project, perhaps with links to the web-app to access the other functionalities. I agree, working with many projects at the same time disperses effort and we have serious priorities. But sometimes it might be possible to conciliate, for example working on the Notifications API in such a way part of the functionality could be used for the notifications of the mobile app.


Reply at: https://publiclab.org/notes/warren/01-02-2019/brainstorming-for-summer-of-code-2019#comments

Report abuse to: moderators@publiclab.org

Check out the blog at https://publiclab.org/blog | Love our work? Become a Public Lab Sustaining Member today at https://publiclab.org/donate
Reply with the email you use at PublicLab.org and your comment will be posted to the website.

Is this a question? Click here to post it to the Questions page.


@warren since both use JavaScript to manipulate HTML, CSS etc., their functionality could be the same, except for that in the mobile version it is not necessary to verify browser support. On the Notification API issue you asked what would happen if two pages were opened at the same time. Several notifications systems (e. g. from LinkedIn or Facebook) work in a way such that notifications pop up in all open pages and if the user sees the notification in one window/page, the notification in other windows disappears as soon as the page is automatically refreshed (the notification is marked as "seen" in the shared backend). To access the relevance of a mobile app, I checked two fairly trust worth sources [1] [2]. In terms of market share and usage, mobile and desktop together have nearly 100% of the total, each with around 50%. According to [2], in the past two years there was an increase of about 8% in the usage of mobile technologies in the sectors of Science and People and Society. So it is reasonable to expect that once a mobile app for Public Lab (even if very simple, just to view content) is released, the number of people reached eventually will double. I agree with @gauravano about that it would be important to enable moderation functionalities in the mobile app such as to facilitate the work of moderators, and enable Google Analytics would be quite easy too. Other organizations I contribute to, such as Mifos Initiative and Fossasia, already developed mobile versions of their software (even mobile exclusive software) and the projects weren't abandoned in the long term. We only need to be careful to be open to the biggest number of developers possible. Developing for both Android and iOS is an important step in this direction.

[1] Statcounter - Desktop vs Mobile vs Tablet Market Share Worldwide http://gs.statcounter.com/platform-market-share/desktop-mobile-tablet

[2] Stone Temple - Mobile vs Desktop Usage in 2018: Mobile takes the lead https://www.stonetemple.com/mobile-vs-desktop-usage-study/


OK, great research. So to sum up:

  1. if we take steps towards implementing in React, we would have a pathway to approach a native iOS/Android app using React Native
  2. if we develop a Notifications API, we can plan ahead to allow native apps to integrate nicely with such notifications as well

Is this about right? Thank you!

Is this a question? Click here to post it to the Questions page.


@warren yes, this is basically my proposal so far. Thanks!


Glad to see the experimental tools category! Like this since it permits end to end analysis of an environmental monitoring effort. Many GSOC efforts are software only; having efforts that focus on software (with hardware) creates more design options and a better understanding of user experience and trade-offs.

Some brainstorming ideas: -Drones. - Drone imaging is rapidly maturing and should be considered as part of the Public lab remote sensing options. Maybe something like adding NDVI real time collection with other mapping tools such as https://www.opendronemap.org/ .

-Environment Monitoring IoT - Public lab offers great value by providing distributed sensing tools for environmental monitoring. Internet of Things (IoT) has the potential to lower sensor cost and provide a common modular approach. Efforts such as Purple Air and Cogqui are a start but a common collection method and interface such as https://openconnectivity.org/ is needed.

-‘Microscope live stitching blob detection and extraction of larger images from a panning live video feed’ is a great idea but I also know this gets complicated quickly. Some thoughts:


Good catch @MaggPi ! I've made a quick search on the topics you mentioned, I hope it helps.

-Environment Monitoring IoT: in terms of software, EdgeX Foundry Project (https://github.com/edgexfoundry/) by Linux Foundation might be interesting, since it is a unifying platform for several different kinds of IoT sensors, in which they only send a signal if a problem is detected, saving a lot of unnecessary data. In terms of hardware, it could be interesting to integrate a scalable platform with a strong open source support, such as Open Compute Project (https://github.com/opencomputeproject), by Facebook.

-Microscope: Since you mentioned SONYC, I tried to find something more focused on images. Tensorflow has a project called Inception-v3 (https://www.tensorflow.org/tutorials/images/image_recognition and https://github.com/tensorflow/models/tree/master/research/inception) for image recognition using machine learning and training resources from ImageNet (http://www.image-net.org/). However, since it provides complicated classifications instead of a true/false based on certain parameters, it might require extensive work to adapt it.


@warren Great idea of implementing in react. React is also very popular nowadays so we can try this out.


My other idea is of having a peer to peer chat in our system using sockets. Sockets can also help us in having the real-time comment on the website without reloading the website and in addition to that we can also use sockets in different part to perform real-time functions in the publiclab website.


Login to comment.

Public Lab is open for anyone and will always be free. By signing up you'll joined a diverse group of community researchers and tapped into a lot of grassroots expertise.

Sign up