bucharest-gold / entente Goto Github PK
View Code? Open in Web Editor NEWA place for open discussion of Node.js middleware at Red Hat, including ideas for projects, collaboration, etc.
License: Apache License 2.0
A place for open discussion of Node.js middleware at Red Hat, including ideas for projects, collaboration, etc.
License: Apache License 2.0
This is an idea i had for a blog series. It is sort of a reference for me since there are some modules that i am not to familiar with.
This also goes along with the talk i submitted for Empirenode about "The node core modules less traveled"
i'm basically going to go straight down the list on the docs page:
https://nodejs.org/dist/latest-v6.x/docs/api/
Assert - http://blog.lholmquist.org/node-core-modules-exploration/
Buffers - http://blog.lholmquist.org/node-core-modules-exploration-buffers/
This is not the exact title and description, because I submitted through a Google
form and didn't save a copy of what I wrote. ๐
Tracing asynchronous code paths in Node.js is notoriously difficult, making
it very hard to understand what is going wrong when your application blows up.
Since Node.js version 4.0, however, Node has included an as-yet undocumented,
and still in progress feature known as AsyncWrap
. In this talk you will learn
about the upcoming AsyncWrap
API and how you can use it to to gain a better
understanding of what went wrong when your application fails, and where
potential asynchronous processing bottlenecks are lurking.
I will be presenting the AsyncWrap
API in an overview format, with some
discussion of the potential usages of the API in user applications and
custom frameworks. I will review some existing packages that provide an
abstraction layer over this low-level API, learn where unexpected gotchas
lay in wait, and finally demonstrate the development of a simple package,
making use of the new AsyncWrap
API.
Lance Ball (@lanceball), Senior Software Engineer, Red Hat, Inc.
Lance Ball is a part of the JBoss division of Red Hat, working on a team
known as project:odd. Lance and his cohorts are tasked with researching and
prototyping new software which may or may not ever see the light of day.
He is an active open source contributor, an author of several NPM modules,
and a Core committer for the Node.js project. In addition to Node.js, you'll
find his contributions in many other well-known open source projects
including Wildfly Swarm, Vert.x, DynJS, and Torquebox.
The entente node.js coding guidelines document has a solid outline but needs to be flushed out. We should think about if this document is meant for bucharest-gold, or a general node.js coding guidelines for Red Hat and/or other interested projects.
https://github.com/bucharest-gold/entente/blob/master/GUIDELINES.md
My original suggestion was to use $USER
, but that wasn't ideal because it's just the username on your local machine which may not match your github username.
Then @helio-frota suggested using git config user.name
which is a good start, but also not ideal for the same reason, and also because in most git documentation, the user.name
configuration value is a full name, like "Lance Ball".
Similiar to the connect/express middleware, but for the Hapi framwork.
Hapi calls middleware Plugins
https://github.com/bucharest-gold/szero/milestone/4
Around documentation updates
Tracing asynchronous code paths in Node.js is notoriously difficult, making
it very hard to understand what is going wrong when your application blows up.
Since Node.js version 4.0, however, Node has included an as-yet undocumented,
and still in progress feature known as AsyncWrap
. In this talk you will learn
about the upcoming AsyncWrap
API and how you can use it to to gain a better
understanding of what went wrong when your application fails, and where
potential asynchronous processing bottlenecks are lurking.
I will be presenting the AsyncWrap
API in an overview format, with some
discussion of the potential usages of the API in user applications and
custom frameworks. I will review some existing packages that provide an
abstraction layer over this low-level API, learn where unexpected gotchas
lay in wait, and finally demonstrate the development of a simple package,
making use of the new AsyncWrap
API.
Lance Ball (@lanceball), Senior Software Engineer, Red Hat, Inc.
Lance Ball is a part of the JBoss division of Red Hat, working on a team
known as project:odd. Lance and his cohorts are tasked with researching and
prototyping new software which may or may not ever see the light of day.
He is an active open source contributor, an author of several NPM modules,
and a Core committer for the Node.js project. In addition to Node.js, you'll
find his contributions in many other well-known open source projects
including Wildfly Swarm, Vert.x, DynJS, and Torquebox.
The package is here. https://www.npmjs.com/package/jvm-npm
The repo is here. https://github.com/nodyn/jvm-npm
It has only ever been released once, but there are people using it. Let's make it live up to the bucharest-standards, eh?
After applying at a minimum the following items from our guidelines doc, we should publish a new release.
package.json
files
propertyThis is a bit of a strange case, because it's meant to run on a JVM Javascript runtime - e.g. nashorn, rhino and dynjs. So with the exception of npm publish
the build is actually maven.
This will do a recursive lint into node_modules.
Our current plan on this issue is to write test cases to get results based on:
1. Our doubts and project needs
2. Try to cover affirmations like 'Don't do X, don't do Y'
example: "Don't use prototypes because this has a bad performance"
The repository for the tests: https://github.com/bucharest-gold/perf-quest
So we can add resources (links, videos, etc) on comments here to catch and solve the item 2. ^
Eslint is a more full featured tool than semistandard. We could get semstandard style enforcement using plugins on eslint. Let's figure out the best way to do this.
We have a tool that breaks the build when unused dependencies are found.
So is interesting to add this on the projects.
The basic concept of the talk is taking a look at some of the lesser known "Core" modules. Everyone knows what the http module does, but what is the zlib module or punycode?
note: couldn't find the abstract i wrote
Lucas Holmquist (@Sienaluke) Senior Software Engineer, Red Hat, Inc.
JUDCon 2013 - Apache Cordova Talk
JUDCon 2013 - Push Talk
Mobile Week 2014 - UnifiedPush Server
jQuery Conf Chicago 2014 - Chromecast: Beyond Streaming Media
Devnation 2015 - Push the future with Webpush, the IoT, embedded, & industry standards
Based on:
bucharest-gold/fidelity#13
Gordon Sim has asked if we could provide him any feedback/comments on https://github.com/grs/rhea the AMPQ node library he's developed.
https://github.com/bucharest-gold/fidelity/milestone/3
None known. This is just an enhancement of fidelity to provide a browser version. Should be pretty straightforward.
The levee
packages implements the circuit breaker pattern in Javascript. It's written by the people at PayPal. https://github.com/krakenjs/levee
Just working in this Node.js native plugin done in C++11 that allows you to load and run Java classes in Javascript, enabling you for example to use Java libraries (PDFBox, Lucene, etc..) in your Node.js code.
For now i have test this plugin successfully with JDK 1.7 and JDK 8. If you want to give it a try just go to this repo.
Before:
szero . --ci=true
After
szero . --ci
i started to use the .npm-init.js file and i noticed that when i call npm init -y
i still get asked questions instead of just choosing all the defaults for me
If there is already a test
directory in $CWD
when running npm init
, the process fails with.
npm ERR! EEXIST: file already exists, mkdir 'test'
Put some stuff in GUIDELINES.md that helps guide releasing an NPM module, including recommendations for tagging, etc.
We need to have at least a basic idea about the meaning to be able to:
https://hawkular.gitbooks.io/hawkular-apm-user-guide/content/apiref/rest-apm.html#_fragments
They are a commercial company but provide some open source tools that perform static code analysis in order to identify known security vulnerabilities. Currently we recommend using [nsp](https://github.com/bucharest-gold/entente/blob/master/GUIDELINES.md#security)
for this. We should determine if there is any reason to consider snyk over our current process.
Snyk has an open source component: https://github.com/Snyk/snyk
Vulnerabilities DB: https://github.com/Snyk/vulndb
When npm init
is run, it is possible to use a custom script to prompt the user and supply defaults. First, users will need to set this value.
$ npm config set init-module ~/.npm-init.js
The .npm-init.js
script might look something like this.
var cp = require('child_process');
var priv;
var USER = process.env.GITHUB_USERNAME || 'YOUR_GITHUB_USERNAME';
module.exports = {
name: prompt('name', basename || package.name),
version: '0.0.1',
private: prompt('private', 'true', function(val){
return priv = (typeof val === 'boolean') ? val : !!val.match('true')
}),
create: prompt('create github repo', 'yes', function(val){
val = val.indexOf('y') !== -1 ? true : false;
if(val){
console.log('enter github password:');
cp.execSync("curl -u '"+USER+"' https://api.github.com/user/repos -d " +
"'{\"name\": \""+basename+"\", \"private\": "+ ((priv) ? 'true' : 'false') +"}' ");
cp.execSync('git remote add origin '+ 'https://github.com/'+USER+'/' + basename + '.git');
}
return undefined;
}),
main: prompt('entry point', 'index.js'),
repository: {
type: 'git',
url: 'git://github.com/'+USER+'/' + basename + '.git' },
bugs: { url: 'https://github.com/'+USER'/' + basename + '/issues' },
homepage: "https://github.com/"+USER+"/" + basename,
keywords: prompt(function (s) { return s.split(/\s+/) }),
license: 'MIT',
cleanup: function(cb){
cb(null, undefined)
}
}
See: https://nodesource.com/blog/eleven-npm-tricks-that-will-knock-your-wombat-socks-off/
We need to release roi because:
tagged this 22 days ago ยท 13 commits to master since this tag
and this:
bucharest-gold/roi#15
Tracking issue for our ongoing Node.js upstream collaboration efforts.
[edit: simplified description]
Tracing asynchronous code paths in Node.js is really hard. This makes it difficult to understand what is going wrong when your application blows up. Since Node.js version 4.0, however, Node has included the AsyncWrap
API. In this talk you will learn how you can use the API to to gain a better understanding of what went wrong when your application fails, and where potential asynchronous processing bottlenecks are lurking.
I will be presenting the AsyncWrap API in an overview format, with some discussion of the potential usages of the API in user applications and custom frameworks. I will review some existing modules that provide an abstraction layer over this low-level API, and demonstrate the development of a long stack trace module, making use of the API.
Asheville, North Carolina, USA
Include those sexy screenshots and how others could use the tool to check their own dependencies.
Explain a little about what the plot-timer-events tool shows, and how we can use it to optimize our tools/modules.
I know we are also focused on Node core involvement, but we should possibly also take a look at npm and its issues. https://github.com/npm/npm/issues
considering this is "the" way to interact with node modules.
My tweet asking npmjs were to start: https://twitter.com/sienaluke/status/758330112047779840
This was also a good primer on npm and some of its usage, https://youtu.be/hopWbVKmiVQ?list=PLfMzBWSH11xZWvE3iuTw6tdzp90gnODdp
Some things to improve:
Title changed from "Implement" to "Define improvements" since implementation is a multi-step process. See additional related work.
Ref: #93
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.