We want to demonstrate how easy it is to model a domain as a graph and answer questions in almost natural language.
Graph Based Search and Discovery is prominent a use-case for graph databases like Neo4j.
We want to demonstrate how easy it is to model a domain as a graph and answer questions in almost natural language.
Graph Based Search and Discovery is prominent a use-case for graph databases like Neo4j.
| app.get("/my-view", async (req, res) => { | |
| res.send(render("my-view", {data: await db.getData()})) | |
| }) | |
| function render(view, ctx = {}) { | |
| return _.template(fs.readFileSync(`./views/${view}.html`))(ctx) | |
| } |
| /* | |
| * Taken from http://stackoverflow.com/questions/5867534/how-to-save-canvas-data-to-file/5971674#5971674 | |
| */ | |
| var fs = require('fs'); | |
| // string generated by canvas.toDataURL() | |
| var img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0" | |
| + "NAAAAKElEQVQ4jWNgYGD4Twzu6FhFFGYYNXDUwGFpIAk2E4dHDRw1cDgaCAASFOffhEIO" | |
| + "3gAAAABJRU5ErkJggg=="; | |
| // strip off the data: url prefix to get just the base64-encoded bytes |
| # coding: utf-8 | |
| import oauth2 as oauth | |
| import json | |
| CONSUMER_KEY = "yT577ApRtZw51q4NPMPPOQ" | |
| CONSUMER_SECRET = "3neq3XqN5fO3obqwZoajavGFCUrC42ZfbrLXy5sCv8" | |
| ACCESS_KEY = "" | |
| ACCESS_SECRET = "" | |
| consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET) |
| /* | |
| * Object Destructuring | |
| */ | |
| const book = { | |
| title: 'ReWork', | |
| author: 'Some guy', | |
| publisher: { | |
| name: 'Penguin' | |
| } | |
| } |
| // Higher Order Component (HOC) : A component that renders another component | |
| // Goal: Reduce code, render hijacking, prop manipulation, abstract state | |
| // Inspired by mead.io videos on Udemy | |
| import React from 'react' | |
| import reactDOM from 'react-dom' | |
| const info = (props) => ( | |
| <div> | |
| <h1>Hello { props.isAdmin ? 'admin' : 'guest' }</h1> |
| /* | |
| * forEach | |
| */ | |
| // forEach is very simlar to for-looping arr.length | |
| // array.forEach(callback, context) | |
| var arr = ['apple', 'orange', 'watermelon', 10, 20, 30] | |
| arr.forEach((value, index) => console.log(`Element's ${index} type is ${typeof value}`)) | |
| // Prints: | |
| // Element 0 type is string |
| class Person { | |
| constructor(name = 'Anonymous', age = 0) { | |
| this.name = name | |
| this.age = age | |
| } | |
| getGreeting(){ | |
| return `Hi, I am ${this.name}` | |
| } | |
| getDescription(){ | |
| return `${this.name} is ${this.age} years old` |
| /* | |
| * ** Diffrence between Tasks and Promises: | |
| * Once settled, a promise can not be resettled. Calling resolve() or reject() again will have no effect. The immutability of a settled promise is an important feature. | |
| * https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-promise-27fc71e77261 | |
| * *** First arg is for 'resolved' status, and the second is for 'rejected' | |
| */ | |
| // exampe 1 | |
| const myPromise = function () { | |
| return new Promise((Yay, Nay) => { |