Group of words with a meaning not deducible from those individual words.
Story  -  Task    -   Bug
     \              |              /

Epic - Goal or large user story
Story - Typically development work and focused on the user's perspective ("User Stories")
Task - Often maintenance and operations work
Bug - Defect in software
Sub-Task - Smaller part of story, task, or bug
Scale and chord patterns for major, natural minor, harmonic minor, and melodic minor scales.
# shared model methods (and callbacks, validates, scopes, associations) - instance and class

module Item  
extend ActiveSupport::Concern
  # instance associations, scopes, validations, callbacks, methods, private methods  
  included do    
    belongs_to :user    
    has_many :collaborations, as: :record, dependent: :destroy    
    has_many :collaborators, :through => :collaborations, source: :user
    validates_presence_of :visibility
    before_destroy do      
      tags.each do |tag|        
        tag.destroy if tag.should_delete?      
    def owner_handle      
      '@' + owner.username unless owner.nil?    


    def private_method     

  class_methods do

Networking tools to troubleshoot issues.
Like JavaScript anonymous undefined functions

With the yield statement

def test
   puts "You are in the method"
   puts "You are again back to the method"
test {puts "You are in the block"}

def test
   yield 5
   puts "You are in the method test"
   yield 100
test {|i| puts "You are in the block #{i}"}

With each on array

array.each do |element|
  puts element

The above functions/methods take in an array, multiply all the elements together, then return the result. The main idea behind reduce is taking a bunch of things and reducing them down to a single value.

# Ruby
def getProduct(array)
  array.reduce do |accumulator, element|
    accumulator * element

// JavaScript
const getProduct = array => {
  return array.reduce((accumulator, element) => {
    return accumulator * element

The main idea behind filter / select is passing each element to a block; if the element makes the block truthy, the element is added to a new array.

# Ruby
def getOddNums(array) { |element| element % 2 != 0 }

// JavaScript
const getOddNums = array => {
  return array.filter((element) => {
    return element % 2 !== 0

array = ["11", "21", "5"] { |str| str.to_i }
# [11, 21, 5]

hash = { bacon: "protein", apple: "fruit" } { |k,v| [k, v.to_sym] }.to_h
# {:bacon=>:protein, :apple=>:fruit}
7 - Application -> Application

6 - Presentation  -> Application

5 - Session  -> Application

4 - Transport -> Transport

3 - Network -> Network

2 - Data Link -> Network Interface

1 - Physical -> Network Interface

Mnemonic: All People Seem To Need Data Processing (OSI)

TCP/IP: Application - Transport - Network Interface

fiber-connector-types.png 497 KB
1. ST connectors: These connectors are the most common type of commercial fiber optic connector. These connectors utilize an exposed plastic tube housing the optical fiber.

2. SC-Connector: SC is short for Subscriber Connect is one of the most frequently used connectors. Used in fiber-optic networking, it has caps to prevent laser light reaching eyes.

3. FC connector: It is similar to ST connectors, these fiber optic connector's screws into their mating jacks. 

4. LC cables: latch and release into their jacks in a manner similar to Ethernet connectors. Smaller in form than SC connectors, their durability is not compromised, nor is cost increased. Instead of snapping or thermo forming the connector to the cable, it is glued. This makes it a popular connector for field use. 
Straight through is the most common type and is used to connect computers to hubs or switches. They are most likely what you will find when you go to your local computer store and buy a patch cable. 

Crossover Ethernet cable is more commonly used to connect a computer to a computer and may be a little harder to find since they aren’t used nearly as much as straight through Ethernet cable.

  • 10Mbps over thin coaxial cable
  • maximum length is 185 meters

  • 10 Mbps 
  • category 3 unshielded twisted pair (UTP) wiring
  • up to 100 meters long

  • known as Fast Ethernet
  • category 5, 5E, or 6 UTP wiring
  • up to 100 meters long.

  • a version of Fast Ethernet that uses multi-mode optical fiber
  • Up to 412 meters long

  • Ethernet over fiber

  • Gigabit Ethernet
  • Category 5 UTP wiring
  • Up to 100 meters long.

  • Gigabit Ethernet 
  • Category 5 UTP wiring
  • Up to 100 meters long

  • 10 Gbps connections over category 5e, 6, and 7 UTP cables

  • Short Range fiber
  • 10 gigabit Ethernet over multi-mode fiber
  • up to 300 meters in length. Some of the older style of fiber may only go to 80 meters in length. T

  • Extended Range fiber
  • 10 gigabit Ethernet over multi-mode fiber
  • max distance of 40 km

  • similar to 10Gbase-ER
  • designed to connect to SONET equipment