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


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?      
      end    
    end
    
    def owner_handle      
      '@' + owner.username unless owner.nil?    
    end    

    private

    def private_method     
      ...   
     end  
  end

  class_methods do
    def self.search(search)
       ...
    end
  end
end

Networking tools to troubleshoot issues.
Like JavaScript anonymous undefined functions

With the yield statement

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


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

With each on array

array.each do |element|
  puts element
end

Reduce
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
  end
end 



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


Filter/Select
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)
  array.select { |element| element % 2 != 0 }
end 



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

Map
array = ["11", "21", "5"]

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

hash = { bacon: "protein", apple: "fruit" }

hash.map { |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.

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

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

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

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

100BaseTF 
  • Ethernet over fiber

1000Base-T
  • Gigabit Ethernet
  • Category 5 UTP wiring
  • Up to 100 meters long.

1000Base-TX
  • Gigabit Ethernet 
  • Category 5 UTP wiring
  • Up to 100 meters long

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

10Gbase-SR
  • 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

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

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