Electron - A developer story (https://github.com/zcbenz)
- started out with Atom Shell for Github, soon to be called Electron
- talks about how to maintain and open source project like this on Github
- review PRs one by one, answer and close all issues, guide contributors thru code reviews..
- be strict about PR, code quality is most important, refactor code after merging
- "bootstrap" script
- building environments, installing submodules
- development documentations
- How to talk to hardware
- Javascript firmware in 30 minutes
- made Tessel (node API for physical world)
- book Node.js for Embedded Systems from O'Reilly
- https://github.com/Frijol/Singapore_demos
- https://tessel.io/
- "In a few years, users won't know they are using a browser"
- Full stack developer nirvana
- Browser <-> Debugger( VSCODE ) <-> Node
- Trying to move DevTool out from the browser
- Stream old hardware from the cloud to test and debug and run
- Why Html5 over native
- (I think opens links directly to 'other app' )
- Promotion Activity
- Live streaming basics
- React
- ???
- alot in common - use Extend
- mixing stuff - use HOC
Simon Swain https://github.com/simonswain
- https://ratsofthemaze.com/
- teach the algorithm of how to code a random maze
- show us how to code a search algorithm (BFS, DFS)
- show us how to code the rats to chase the player
- source @ https://github.com/simonswain/ratsofthemaze
- http://www.noderockets.com/
- Jerryscript
- https://github.com/armmbed/mbed-js-example
- http://mbed.com/js
- develop stuff on React native for Australian company
- Vision - hijacks JSON request and allows local re-get with modification
- Tyson from Brantree/Paypal, Hemanth from Paypal
- serving ads via websocket which cannot be blocked by adblocker
- XMPP
- Durability
- Utility
- Beauty
- 160 sites now (cooking, japanese, etc)
- when started - 140m page view per month
- now 1b-1.2b a month (not to date)
- monitor server using OpServer (open source)
- build->analyze->measure->repeat
- (bash node and js much) C# lover
- people->tools->code->repeat
--
- Thank you.
- gpu.min.js
- nobody writes webgl programs
- 2d : pixi.js
- 3d: three.js
- compiling to GLSL
- 62 chars become 42xx characters
- hardware has bugs, shrodinger branch, case in point, Intel HD 2000 on Mac and Chrome
function(x) {
if( x > 2 ) {
return x;
} else {
return x * 2;
}
return 42; // shrodinger's branch
}
- Profiling V8
- JIT
- Inline Caches (IC)
- Optimizing compiler
- Matching code
- JIT - generate machine code during runtime, not ahead of time (AOT)
- Optimizing compiler
- basic compiler runs first and collects informations, "hot functions" are the compiled by optimizing compiler.
- Optimizing Compiler + IC = Speed
-js-flags="--trace_ic ... > trace.txt
node --trace_opt -trace-depot load-opt.js
- Be careful with optimizing
- don't "optimize" unless you must
- Measure first
- Be careful with optimizing
- V8 Internals change
- Different in other engines
-chrome --js-flags="--trace-opt"
- IC Explorer
v8/tools/ic-explorer.html
- Yarn
- FlowType
- Lerna
- http://git.io/data-structures
- Machine learning with Node.js
- Conclusion
- work incrementally
- think about the problem, not the solution
- the machine will come up with the solution
- try out different configuration parameters
- It's all about the data
Alex Castillo https://github.com/alexcastillo from NetFlix
- node gets data from hardware, web using websocket and connect and grabs data then visualize with charts.js and three.js all using Angular 2
- (npm is stronk!)
- slides here
- bundling at the protocol layer
- cache digest, sent from browser to tell sever what not to send
- save bandwidth
- https://www.npmjs.com/package/unbundle
- emoji encoded hash
- unit test your non-functional business logics
- JS Churn causes alot of rewrite
- Smoke testing saves the day before release hits user land
- https://speakerdeck.com/kahwee/coding-chatbots-in-node-dot-js
- chat bot is another way to get to your users
- use https://requestb.in
- using localtunnel and nodemon
- how to resolve an intent, the intention of the user
- regex is nice but not so straightforward
- using simple NLP tools
- nlp_compromise
- https://github.com/nlp-compromise/nlp_compromise
- require('gemoji') to parse invalid chars like apple
- for natural date time parsing use 'chrono-node' package
- we build SG, exmple of structured chatbot
- structured services
- Octane AI
- api.ai
- ..
- machine learning and NLP services
- ..
- https://github.com/kahwee/ranka
- https://speakerdeck.com/yosuke_furukawa/exploring-future-node
- organizer/leader node festival (japan)
- creator of http://hexi.pics
- node v10 will have import from modules
- maybe using
.mjs
file extension
- maybe using
- Web is NOT Internet
- internet is the plumbing, with a bunch of protocols (HTTP. email, dns, ip, tcp/ip)
- web is about content (HTML mainly)
- Who made the internet and the web
- internet: US goverment and the internet protocol
- web: tim berners-lee and HTTP/HTMl
- Apple, Microsoft, Google and Mozila says they know what people want
- but they are always arguing with each other. -- Dr Alex.
- if you disagree, step up, we as developers should know best