Lecture 1: Introduction to Research — [📝Lecture Notebooks] [
Lecture 2: Introduction to Python — [📝Lecture Notebooks] [
Lecture 3: Introduction to NumPy — [📝Lecture Notebooks] [
Lecture 4: Introduction to pandas — [📝Lecture Notebooks] [
Lecture 5: Plotting Data — [📝Lecture Notebooks] [[
const bypass = [ | |
// function names to avoid logging | |
]; | |
const collapsed = [ | |
// function names to groupCollapsed | |
]; | |
module.exports = function(babel) { | |
const { types: t } = babel; | |
const wrapFunctionBody = babel.template(`{ |
/* | |
Comments | |
======== | |
*---* [Jane Smith] Hey [Rob], what do you think about | |
| | switching the roll-out plan over to a faster schedule? | |
*---* | |
{{{ I guess my concern is that we won't learn fast | |
enough, and that will put the project... [See More] |
When a startup closes a new financing round (called a Series A, B, C, and so on), a new share class with preferred rights is usually created. These protect new investors in case the company gets sold at a lower valuation than the current financing round (while founders and employees might still get a pretty nice return). They are called liquidation preferences. When the company is sold (called an “exit”), the money of the exit has to be divided among all shareholders according to these liquidation preferences.
The basic rules are:
The investor gets paid back 1× their originally invested amount, nothing else. The rest is divided among all the other shareholders according to their ownership in the company (this is called “pro-rata”).
Table of Contents
React DOM automatically supports profiling in development mode for v16.5+, but since profiling adds some small additional overhead it is opt-in for production mode. This gist explains how to opt-in.
// This is an example of how to fetch external data in response to updated props, | |
// If you are using an async mechanism that does not support cancellation (e.g. a Promise). | |
class ExampleComponent extends React.Component { | |
_currentId = null; | |
state = { | |
externalData: null | |
}; |
const curry = fn => (...args1) => { | |
if (args1.length === fn.length) { | |
return fn(...args1); | |
} | |
return (...args2) => { | |
const args = [...args1, ...args2]; | |
if (args.length >= fn.length) { | |
return fn(...args); |
import React from "react"; | |
import ReactDOM from "react-dom"; | |
import configureStore from "./store/configureStore"; | |
const store = configureStore(); | |
const rootEl = document.getElementById("root"); |
class Foo { | |
constructor(x,y,z) { | |
Object.assign(this,{ x, y, z }); | |
} | |
hello() { | |
console.log(this.x + this.y + this.z); | |
} | |
} |
function downloadFiles(files /*: Array<string> */) { | |
// Do not fetch more than 8 files at a time | |
const PARALLEL_DOWNLOADS = Math.min(8, files.length); | |
// Create an Iterator from the array, this is our download queue | |
const queue = files[Symbol.iterator](); | |
// Channels are our download workers. As soon as a channel finishes downloading a file, | |
// it begins fetching another file from the queue. Best effort | |
const channels = []; | |
// Create only PARALLEL_DOWNLOADS number of channels |