jami
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Ring] GSoC: Asad Salman


From: Asad Salman
Subject: Re: [Ring] GSoC: Asad Salman
Date: Mon, 24 Jul 2017 08:31:02 +0500

Hello everyone!
I've made excellent progress since my last update. First, I've added more callbacks to the code. This is an ongoing effort because SWIG doesn't natively support Node.js callbacks right now, so I add them when the need arises.

Moreover, I ran into an especially tricky problem where callbacks would be invoked on a different thread than the main event loop. Because of the single-threaded nature of Node.js and V8, this caused crashes. My mentor, Adrien, helped a lot in solving this problem.

I have also started working on Ring's Electron client [1]. I had issues getting started with this, being a completely different paradigm I have never worked in before. But, after the initial getting used to, I'm really liking working with the Electron API.

Finally, up until now I had been working on a separate, work-in-progress branch of the Ring Daemon. But my work has now been merged into master! And that's where I'll be contributing directly.

Oh and, I'm very excited about the 1.0 release. Congratulations to the Ring team! ^_^

Until next time!

[1] https://gerrit-ring.savoirfairelinux.com/#/admin/projects/ring-client-electron

On Wed, Jul 5, 2017 at 6:05 PM, Asad Salman <address@hidden> wrote:
This last week has been especially productive.

First, like I mentioned the week before, I extended the coverage of the Node.js Wrapper to include more callbacks [1].
Moreover, up until now, I had been using a "hacky" way of registering C++ functions (so that they can be called from Node.js). I learnt that SWIG (the software I used to generate the wrapper) has the exact feature I was try to simulate with my hacks (namely Typemaps). After some time figuring typemaps out, I was able to use them for my purpose and removed the hacky parts from my code [2].

I also worked on writing a Node.js module that is easy to use and abstracts away internal calls a consumer of the API doesn't necessarily need to know. This module can now be included and used by others in their Node.js projects [3]. It is very basic right now, but I'm adding to it!

Finally, I passed the first GSoC Evaluations! It has been an excellent experience up till now and I have learnt so much. I hope it continues to go this well.

[1] https://gerrit-ring.savoirfairelinux.com/#/c/7203/
[2] https://gerrit-ring.savoirfairelinux.com/#/c/7207/
[3] https://gerrit-ring.savoirfairelinux.com/#/c/7222/

On Tue, Jun 27, 2017 at 5:31 PM, Asad Salman <address@hidden> wrote:
Here's an update on my project:

There are two basic building blocks we needed working to wrap the C++ Daemon in a Node.js API, those were actual API calls and the _javascript_ callbacks. I have successfully got both working now (though callbacks were the challenging bit).
My task now is two-pronged:
  1. Extending the coverage of the Node.js Wrapper to include more of the Ring Daemon functions
  2. Organize the Node.js module so that it can easily be included and used in other Node.js based projects (thus leading the way to an Electron client)
The above two will be my goals for the coming few weeks.

On Mon, May 15, 2017 at 1:46 PM, Asad Salman <address@hidden> wrote:
Hello everyone!
I am Asad Salman from School of EE & CS, NUST, Islamabad, Pakistan (UTC+5). This year, I'll be working on Ring as part of Google Summer of Code under the tutelage of Adrien Béraud.

A lot of Ring development time is spent on developing and maintaining different clients on different OS. Every time we have to integrate a new feature, we have to integrate it in different clients in different environments (with different available APIs). This wastes a lot of time that can be spent on better things. Also, this way some clients are left behind (e.g. Mac client).

My project is on writing a NodeJS wrapper around the Ring Daemon. Such a wrapper will allow cross-platform Ring clients to be developed using frameworks like Electron.

I'd love to hear any suggestions you guys may have related to the project. I look forward to working on this project with the Ring developers.

-Asad




reply via email to

[Prev in Thread] Current Thread [Next in Thread]