- Commit message
- Brief, desciptive (not overly descriptive)
- 50 characters
- written in the imperative mood ("add" instead of "added")
- no trailing puncuation
- should either be in sentence case (i.e., the first letter of the first word capitalized), or of the form “area: change description”.
- Description
- Why is the change important?
- Did you consider and reject alternate formulations of the same idea?
- Are there relevant issues or discussions elsewhere?
* - direction: one of Direction.IN, direction.OUT, or Direction.ANY.
* - Direction.IN finds neigbhors where root is the destination of the
* edge.
* - Direction.OUT finds neigbhors where root is the source of the edge.
* - Direction.ANY finds neigbhors where root is the source or destination
* of the edge.
*
- design doc
- "what to test"
- node count (# of total), avg cred, total cred / node count, avg cred
- a data source to test
- Lets try to put up a mock of what it may look like
- possibly look into what the design
- documentation
- Defining functions
- Function declarations
- Function expressions
- Calling functions
- Function scope
- Scope and the function stack
- Recursion
- Nested functions and closures
- Preservation of variables
- Multiply-nested functions
- add a
prefix: NodeAddressT
parameter to nodesIterator -> tests pass (nothing passed in/ parameter not used) - specify a prefix to pass into nodesIterator from nodes() ie always something, if its empty pass in an empty iterator
-
tests fail; NodeAddress isn't defined
-
imported 'NodeAddress'
- put a test in to see if node has prefix specified in parameter
- Should PagerankGraph be implementing this prefix filter at all, or passing the prefix to graph and let graph filter? why do this at both sites, duplicate tests, etc
- Does node decomposition do this?
This form has the default HTML form behavior of browsing to a new page when the user submits the form. It's convenient to have a JavaScript function that handles the submission of the form and has access to the data that the user entered in the form. In React, you do this w/ 'Controlled Components'
In HTML, form elements such as , <textarea>, and typically maintain their own state and update it based on user input. In React, mutable state is typically kept in the state property of components and only updated with 'setState()'. We can combine the two by making the React state the single 'source of truth'. Then the React component that renders the form also controls what happens on subsequent user input. An input form element whose value is controlled by React in this way is called a 'controlled component'
-
Break the UI into a component hierarchy
-
Build a static version
- components will only have
render()
methods and useprops
. The component at the top of your hierarchy will take your data model as a prop - To build a static version of your app that renders your data model, you’ll want to build components that reuse other components and pass data using props. props are a way of passing data from parent to child. If you’re familiar with the concept of state, don’t use state at all to build this static version. State is reserved only for interactivity, that is, data that changes over time.
- components will only have
-
You can build top-down or bottom-up. That is, you can either start with building the components higher up in
/* what do these log ? */ | |
var a; | |
console.log(a); | |
var n = null; | |
console.log(n + 2) | |
console.log('The value of c is ' + c); |
Chrome 71, Mac
- re: -> the white columns: appears to be an issue in Chrome: https://stackoverflow.com/questions/52395298/chrome-shows-thin-line-if-table-has-td-background-image. Firefox and IE don't have issue.
- Highlight will get stuck sometimes:
- description:
/* | |
1. break the UI into a component hierarchy | |
2. build a static version in React | |
3. identify the minimal (but complete) representation of UI state | |
4. Identify where your state should live | |
5. Add inverse data flow | |
3. identify the minimal (but complete) representation of UI state | |