Review of the OSI Model

TL:DR

In that case, I recommend watching  the OSI Model Demystified video by Eli the Computer Guy.

What is the OSI Model?

The Open Systems Interconnection (OSI) model is a reference guide to help manufacturers make sure components could communicate with each other.  Its a useful tool in troubleshooting.  Having a checklist to work through helps prevent people from making minor errors due to forgetfulness or complacency.  Go through the layers of the OSI, and you’ll likely have identified where the deficiencies are.

What are the OSI layers and what should my team do with this?

Each OSI layer is an abstraction of a component.  Think of the OSI model as a guide, these general layers help to thoroughly investigate your device.

For each layer your team deals with, you should develop documentation and troubleshooting checklists to improve their turnaround time on defects.

Application: The Top Layer - 
Interfaces to obtain access to services.  
Commonly the end-user interface.
Presentation: Formats the transferred data.
Data is formatted so it can be understood by different devices.
Session: Ongoing communications between connected apps/devices.
The session can allow data to be shared one direction at a time
or simultaneously.
Transport: Data from the Session layer is accepted and 
packaged into smaller parts to pass through the Network layer.
This layer acknowledges if data was received and corrects errors.
Network: This layer is concerned with the connection.
Routers and IP protocols operate on this layer.
Confirmation that the same number of packets sent were received.
This layer corrects for issues including congestion of 
too many data packets.
Data Link: The layer switches operate on.  
Switches are the controllers that enable devices to communicate.  
Packet switching is used to receive, process, and forward data.
Physical: The mechanical, electrical, functional and procedural
interfaces that transmit data. One example is the cabling system.

Detailed information can be read in the SANS Institute InfoSec Reading Room’s The OSI Model: An Overview.

Helpful Acronyms

There’s lots of acronyms to help remember the OSI model.  Here is mine:

Picard   Doesn’t   Need   To   Set   Phasers   Again

 

Advertisements

Getting an out dated Mac ready for automation testing development

 

The original title of this post was “Lets get ready for fun automation testing with Webdriver.io!”  It became “Getting an out dated Mac ready for automation testing development”  This post is a cautionary tale.

Best practice is to update your machine regularly.  Updates will include security updates and other improvements to your OS.

For Security news and advice I recommend listening to SECURITY NOW, with Steve Gibson.

Getting automation testing started with Webdriver.io

A good starting point is the Webdriver.io Developer Guide.

Your Java is what version?

There you are on your Mac, setting up Webdriver.io, getting excited to start your automation test.  You decide to start a Selenium server in the console by entering ‘node_modules/.bin/selenium-standalone start‘ then an error appears!

Error: Selenium server did not start.
Be sure to check the official Selenium release notes for minimum required java version: https://raw.githubusercontent.com/SeleniumHQ/selenium/master/java/CHANGELOG

There’s many ways to fix this.  Below is one solution using Homebrew.  Enter the following in the console:

brew update
brew cask install java
brew tap caskroom/versions
brew cask install java8

This should properly install Java 8 on your Mac, and you’ll be able to start a Selenium server.  You can check your Java version by entering the line below in your console.

java -version

 

No Yarn for old OS

We’re going to need to install Yarn.  Yarn is a package manager.  If your environment is stale because the Mac has only been used to browse websites and store vacation videos and pictures, Yarn install will likely gets errors similar to those below.

Error: You are using macOS 10.9.
 We (and Apple) do not provide support for this old version.
 You may encounter build failures or other breakages.
 Please create pull-requests instead of filing issues.
Error: Your Xcode (5.1.1) is outdated.
 Please update to Xcode 6.2 (or delete it).
 Xcode can be updated from the App Store.

This is not going to be a good time…

As of this post, I had to upgrade to macOS High Sierra, requiring 14.3GB of free storage space. If its been this long since you updated the environment, its likely you’ll need to update a wide range of dependancies including Node.  This process will remind you that NPM and Brew are our friends.

Four time consuming steps are now required of you…

  1. Find a place to back up 15GB worth of space
    • Find a reliable place for those cherished travel pictures and family videos
  2. Update your OS
  3. Update Xcode through the Apple App Store
  4. Update all other environment dependancies

Final Note:

Update your computer regularly.  Regular updates will keep you current and ready to code.

Winning Through Intimidation, a self defense book

With a name like “Winning Through Intimidation” you’d expect Robert Ringer to be teaching you how to be a domineering monster.  The turtle on the cover is disarming.  Upon further reading the truth is that Robert is not teaching you how to throw hammers, but is instead teaching the social Jiu Jitsu required for the little guy to win.

Years ago, on my first day working at an adservicing company I remember three things distinctly…

  1. Getting the best quality company hoodie ever.
  2. Feeling welcomed by the balloons at my desk.
  3. How people would speak in whispers when mentioning one of the Senior Quality Assurance (QA) Analysts at the company.

When I met the nice Senior QA Analyst I didn’t understand why people were intimidated by her.  She was friendly, warm and witty.  She didn’t mask her intent with blur words, that could obscure or sully her communication.

It wasn’t until a developer messed up, by blaming the QA team and the QA environment, that I saw why this Senior QA Analyst held such authority.  I don’t know if she was conscious of it but she acted in compliance of the Theory of Intimidation, where results are always inversely proportionate to the degree to which you allow others to intimidate you.

The Senior QA Analyst was open to a conversation, but any attempt to avoid accountability by shifting  blame on QA was shut down with prepared arguments and facts.  She understood that QA was the gatekeeper of quality.  Preventing defects from reaching production may have hurt ego of a few developers, but it built up the Senior QA Analyst’s credibility and protected the integrity of our platform.

 

Why use WordPress?

There are surely some who will ask…

Why use WordPress?

There are plenty of options.  I once used Ruby on Rails to create a blog for cats, perhaps I could create another platform from scratch.  Leaning back and considering all the things I’d like to work on, developing a blog from scratch wasn’t as exciting as working on a new project or venture.

WordPress is established, powering a quarter of the internet.  Being able to hold a conversation about technical trends at the dinner party should include being familiar with a tool that impacts more lives than American Idol.

Was WordPress everything that was promised?

So far it has.  After a short easy set up I’m typing this post.  As I explore themes, customizations and plugins I’ll let you know what I find to work or not.  As goals change so will the format for this blog.  In the meantime, lets get out there and build something.