-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Workshop #367
Comments
TitleNext Generation N-API: A hands-on workshop DescriptionThe world of Node native add-on development continues to rapidly evolve. After widespread adoption of N-API starting last year, the Node native add-on ecosystem is gaining momentum as the underlying technology and tools continue to advance. This workshop, offered by experts from the N-API team, describes important new features essential to the performance of your native add-on. These new features include asynchronous operations which permit you to safely and reliably spread your work across multiple threads. Context awareness permits your add-on to be loaded multiple times without the multiple copies interfering with each other. Finally, adopting thread-safe functions insures your functions run reliably regardless of the thread from which they are called or in which they run. Whether you are just starting out with native add-ons or are an old pro looking for an update on N-API, bring your project or work through the workshop tutorials under the helpful guidance of the N-API experts. You’ll leave this workshop with a solid understanding of these important new technologies and how they apply to your own projects. And perhaps, with a bit of luck, working code! New Tutorials
|
Maybe I prefer talking of asynchronous operations instead of AsyncWorker, because the AsyncWorker is not the only way to do this kind of task. |
Good point, @NickNaso. I've updated the Proposed Abstract comment. |
So that we don't scare off people just starting out maybe add something like
Otherwise looks great to me. |
2019 Conferences
|
I've updated the comment above to reflect the responses we've received from the conference organizers. |
Node+JS Interactive - Workshop was accepted ! Jim will start working on the new ones this week. |
Hi @jschlight, |
Workshop PromotionProposed OpenJS Foundation ReleaseAre you working on a Node native add-on? Or are you planning to? You should be aware of significant improvements to the N-API infrastructure including asynchronous operations, thread-safe functions, and context awareness. Gabriel Schulhof has a good overview of these improvements here. These topics and more will be covered in the Next Generation N-API Hands-on Workshop being offered by the N-API team at Node+JS Interactive 2019 in Montreal, Canada (December 11-12, 2019). In the meantime, be sure to check out the N-API Resource for the current set of N-API tutorials and best practices. |
@jschlight sounds good. If you want to tweet that out I can then ask the Node.js account to retweet |
@jschlight, @gabrielschulhof I notice that the workshop only lists Nicola and myself in the title/speakers. Is that because you've not accepted the speaker role yet? I have other talks so we should make sure you are listed as speakers (even if that means removing me) so that you get the free ticket... |
I sent the email to the organiser and I left them the email of @jschlight in case they need to ask you your bio and other things. |
@mhdawson @jschlight Now the workshop lists me and @jschlight . |
:) @jschlight hope that helps you being able to make it. |
@NickNaso will create slides for the workshop, starting with those we used the last time. |
Stuff to cover in intro deck:
Call to join/get involved. |
@NickNaso will paste in link for new deck, Gabriel to add slide for Context awareness. |
I have two suggestions while the workshop is happening:
|
Hi everyone, |
@NickNaso I think both are very nice ideas, I think also would be nice to explain |
@NickNaso We should keep the information you include for #367 (comment) in sync with https://napi.inspiredware.com/getting-started/first.html#Project-structure which is how the Yeoman generator creates a project. I can add an introductory part explaining what is a native add-on to this page: https://napi.inspiredware.com/about/what.html#Node |
I added slide n. 9 where I reported what native add-on is and in slide n. 10 I want explain how the all the things work in high level way. It's a good idea to write something about native add-on on the tutorial. I will adapt slides n. 29 and 30 to be consistent with the output produced by the generator. |
Hi everyone, |
FYI regarding https://github.com/zeromq/zeromq.js, there is a pull request (by me) that implements the library in N-API. zeromq/zeromq.js#343 |
Thanks to report I missed it, sorry. I updated now. |
@NickNaso and others. Could I please get clarification on what topics should be included in the new |
My idea was to create an example for the AsyncContext . |
New Workshop Sections
The links above take you directly to the preview site. Besides reviews of the completed content, I can use help with the outlines of the remaining sections. Specifically, what topics should be covered along with a brief explanation. If I can get some guidance, I can take it from there. It’s probably best to post comments here for everyone to see. |
@jschlight I try to give you some opinions: node-gyp
It's not only Python 2.7 or 3.5+ that is requested to work with node-gyp, all depends on which operating system you are so I want be more generic and say that to use node-gyp developer needs to satisfy some requirements and link to the official documentation. CMake.js
Typo natove should be native.
Typo modeule should be module.
I think that you need to remove the dot before the final colon. |
Hi @jschlight,
@gabrielschulhof I'm not sure about the second point. |
Hi @jschlight , I started working on the tsfn page. It is still in draft state... https://gist.github.com/KevinEady/112edab9a57e82bead0412a65a6c74ac Is there some way I can move this to some shared Markdown site we have / maybe edit that TSFN page directly? Todo:
|
Thank you @KevinEady. I've posted the contents of your gist to the preview tutorial site which you can see here: https://preview.napi.inspiredware.com/special-topics/thread-safe-functions.html If it works for you, you can continue your work inside your gist and I can transfer it to the tutorial site when it's ready. Up to this point, I've been maintaining the tutorial site myself. It's based on hexo. But now that we have more collaborators I'd like to explore the possibility of transferring the contents of the tutorial site to the auspices of the Node.js Foundation. Perhaps this is something we can discuss after the workshop. |
@KevinEady from the discussion in the N-API team meeting today, we figured the best example we already have: https://github.com/nodejs/node/tree/master/test/node-api/test_threadsafe_function We discussed that we should probably copy that test to create an example, but for now you can look at the test code (likely stripped down). |
Hi @mhdawson , Sounds good! I'll work on that this week. Kevin |
@KevinEady thanks! |
@mhdawson / @gabrielschulhof The provided examples use static data eg. https://github.com/nodejs/node-addon-api/blob/master/test/threadsafe_function/threadsafe_function.cc#L12-L13 ... Is this okay for the example? Otherwise I want to use |
It would probably be better to avoid static data unless it makes the result too complicated. |
I ended to update the list of native modules to use for porting activities at workshop. Here the link: https://docs.google.com/spreadsheets/d/1HopFSLMs5gj3G6_eBEZM2ET7oXKdokAF7VU2XZnzYGk we have 45 add-ons. |
Hi @jschlight I updated my gist with the example. Haven't touched the text yet though... Can the team review the example? |
Thank you @KevinEady. I've posted your gist to the preview tutorial site. Let's plan to ask for reviews during tomorrow's weekly call. |
Preview of new design for the slides: |
I like the new design. I think we should add another page at the end which has the links for the workshop tutorials so that we can put that up to get people started. Then maybe another page which has the link to the page where you have the modules that need to be ported so that we can put that up later on in the workshop? |
@mhdawson Ok i will provide to do that. |
Hi everyone, |
@mhdawson @gabrielschulhof @NickNaso @KevinEady Hi all -- The last two remaining tutorials are now complete and ready for your review. Please post any suggestions here and we can discuss any remaining issues on Monday. Here's a tweet that could go out Friday to get participants ready for the workshop:
Heads up: The link points to the preview tutorials which I'll make live for the workshop after our review. |
Hi @jschlight,
|
Latest version of the presentation for the workshop: https://docs.google.com/presentation/d/1kGzkj_4RqoE4YJ4I4XPdMLPcaiCHiJqLVL0nRBSUPhQ/edit |
The update tutorial pages are now live at https://napi.inspiredware.com/ |
Workshop delivered we can probably close the issue now. |
Hi everyone I'm opening this issue with the intention to collect materials and idea for a N-API workshop that we can propose at NodeConf EU, Node Summit and Node+JS Interactive.
Below I report all materials that we have from the workshop that we did last year:
Slides
Tutorials:
List of candidate modules to port available at goo.gl/9bksyw
The text was updated successfully, but these errors were encountered: