Object-Oriented Design Course review by Simon Allardice on Lynda

Course notes from Object-Oriented Design by Simon Alladice

This was an exceptional course that I followed along with on Lynda.com. It was language agnostic, but Simon put in great examples of how different things would be implemented in differing languages.

It was broken down into very easy to understand concepts that I will 100% take to work with me. He touched on UML design and how to structure your programs in an Object Oriented fashion.

Below are my rough notes that I took while following along. If you want to really get to know OOP principles I would probably reccommend learning a strong static typed language like C# or Java.

https://www.lynda.com/Java-tutorials/Foundations-Programming-Object-Oriented-Design/96949-2.html

Abstraction: Abstract out a new object. Only focus on the essentials.

Encapsulation: Hide code, show only what you need.

Inheritance: Write a new class but base it on an existing class.

Person > Customer. Customer inherits from the person. THen we say, what do we add to it.

customer number

Person is the superclass or parent class and customer is child class or subclass.

More common to inherit from one class. C#/Java/Ruby/Obj C all enforce this.

Polymorthpism: Many forms. Automatically do the correct behavior?

  • sign will automatically do the correct behavior. We can do the same idea. concat vs adding

ovverriding a behavior. Is to re-write it.

Example of investment account, add penality to the withdraw method.

What classes do you need and what do you want?

  1. Gather requirements

    Always write it down.

  2. Describe app

    In plain conversational language, what does the app do. use cases, user stories.

  3. ID most important objects

    Pick out the most important ideas and things and discard what is irrelevent.

  4. Describe the interactions

    what needs to happen and what order do they need to happen in

  5. create a class diagram.

    Be really specific about inheritence and polymorphism. The output is on paper for now or a whiteboard. The class diagram is the most common method.

Creating requirements

Functional Requirements. What does it do.

non-functional requirements

help, legal, performance, support, security.

FURPS

Functional, usability, reliability, performance, supportability requirements

design, implementation, interface and physical requirements.

Creating a use case for you app.

Title:

Actor:

Scenario:

1.

2.

3.

Workout use cases as good as you can, but finish it and move to the next step.

Use active voice and focus on intention. Keep exxtra words and pseudocode out of it.

Identifying objects: Identify all of the nouns.

Customer confirms items in shopping car. customer provides payment and address to process sale. system validates payment and responds by confirming order, and provides order number that customer can use to check on order status. System will send customer a copy of order details by email.

Customer, item, shopping card, payment, address, order, order number, email

Create a basic UML Diagram and then assign responsibilities.

Always multiple successful ways to incorporate different ideas.

CRC: Class responsibility collaboration.

Class Name, Responsibility, collaborators(other classes).

Use nouns in the description.

Payment

Store payment detaisl, validate payment.

Product

Attributes

name

isActive

launchDate

itemNumber

Operations

getName

setActive

getProductDetails

verbNoun

instantiation: Create a new object.

Customer fred = new Customer();

Constructor: Special method that exists to construct the object.

Spaceship

name

shieldStrength

fire();

reduceShields();

Spaceship turny = new Spaceship();

//Object exists, but has a meaningless state.

name: null

shieldStrength: 0

Constructors allow you to populate meaningful values when a new object is instantiated.

public Spaceship() {

name = “theTurny”

shieldStrength = 100;

}

overloaded, allow you to set the values to different values. Allows flexibiliy.

static: one object shared accross all levels. One copy along all objects.

Inheritance describes an “Is A” relationship.

An employee is a person a customer is a person

Abstract classes are never instantiated.

Interface: <ust provide the methods the interface calls out. Many differnt classes can use the same interace.

Well tested best practices to write code. design pattern

design patterns, gang of 4

DRY: Dont repeat yourself.

YAGNI: You ain’t gonna need it.

Don’t write speculative code, keep it simple and write for today.

Code smell, unecessary code. Code smell.

long method

short identifiers

pointless comments

god object

feature envy

SOLID

uncle bob

single resp

One reason to exist.

open close

open to extension but closed to modification

GRASP

Sales Dogs book review

Sales Dogs: You don’t have to be an attack dog to explode your income.

3/10/18

Different types of sales dogs

Pitbull: The most aggressive and most stereotyped salesperson. Used car salesmen example.

Tips from the pit bull: When in doubt, do something. Do anything. Just make a sales call. Making even a bad decision creates movement, action and can be corrected upon.

This habit will open more doors and generate more momentum that you would ever imagine possible.

Golden retriever: To the retriever, customer service is everything. The more you give prospects the more they will love you and the more they will eventually buy.

Much different than the seek and destroy methods of the pit

Always be the first to give. True in a negotiation, sale, argument etc. Gives first has the advantage.

Poodle: Live in a world of high class sales. Presentation is everything. Flashy. The poodle is the ultimate marketing dog. Sell big ticket items.

Learn to speak well to groups and practice this art as often as you can. One on one skills are important, but being able to speak before a crowd increases exposure and confidence 100x.

Learn how to present yourself physically through grooming and attire.

Chihuahua: the data driven one

Learn how to learn. Get to know your specific learning strategy and learn how to absorb critical material. Experience first, talk about it afterward, write down what you’ve learned.

Basset hound: Integrity, consistency and trustworthiness.

  1. Learn to listen. Track your ear to the listener

  2. Learn to match body language and modality of the language of the person you are talking to.

Play to your strengths. The purpose of a cold call is not to sell anything, but to train yourself for sales situations.

Adopt winning skills when you need them. Assimilate the behavior and skills that are a bit foreign to them can learn to be the ultimate sales dog.

Conditioning and training process is the repetition of drills and skills that may come naturally to other breeds, but are often foreign to yourself. The conditioning is only for burning the pathway in your brain.

Checklist for motivating high-performance salesdog teams

  1. Celebrate all wins. Actively acknowledge all participation and tasks well done.

  2. Establish a code of honor.

  3. Debrief all wins and learning experiences early and often.

  4. Use peer pressure to motivate the pack.

  5. Don’t try and teach pigs to sing.

  6. Use common terms vs convoluted corporate-speak.

  7. Feed the hot hand. WHen you’re on a roll, keep fueling the fire until it cycles out.

  8. Set short term goals that can be accomplished quickly and cleanly. Most dogs have very little concept of the future. They can scarcely thing beyond dinner.

  9. Get your dogs to practice standing in the head of pressure, confrontation and challenge often so they will become used to it. Be sure to surface and acknowledge the emotion that arises. The object.rejection system is good.

  10. Manage and address emotional needs more than tangible needs

  11. Give them a way to feel that they are contributing something to a higher purpose.

  12. Establish and maintain ritual behavior, events and routines that promote team, family and camaraderie.

  13. Always look for champions and allies within the team and use them to lead the team.

  14. Look for and acknowledge heroes all the time.

  15. Find a way to change the environment, mood routine or physical location when the team gets stuck mentally or emotionally. Don’t get lethargic.

  16. Manage and focus on energy and emotions continually.

  17. Throw their problems beck to them to solve.

  18. Be a student of people, psychology, management and change.

4 mindsets of champion sales dogs

  1. Face the challenge

    1. Strength can come from the past. You must learn to capture those successes and use them in the present.
  2. Respond to negative experiences

    1. Shift the blame away from you. Prospect having a bad day, bad timing, information was unavailable to you, personal issues.

MEMORIZE THIS

  1. Problem occurs

  2. As soon as you discover the problem, you experience a flash of emotion.

  3. Dialogue in brain begins

  4. What am I saying to myself right now?”

  5. In 10 seconds you can recognize that you are using a universal descriptive work. Always, never, every time, all.

  6. When you recognize that word, check in smile and say “there it is”

  7. Mentally correct the universal word to..”this time”, “just happens that”, “in this case it didn’t work”

  8. Ask yourself, how would you really want to be feeling right now.

  9. Respond to a successful endeavor: Celebrate all wins

    1. A physical anchoring of the win with a high five handshake etc are all successfully.
  10. View yourself and other on your team. Project the power of your personal intention.

    1. Think of a dog chasing a squirrel. They just GET AT IT.

Training for the hunt: Chapter 11

5 critical skills for salesdog success

  1. Mastering the art of referrals

    1. Friend gets prospect to call you

    2. Fend tells the prospect you will call him.

    3. Friend tells you who to call and allows you to mention that he or she referred you.

    4. Friend gives you a name, any name.

Never jump on strangers. Never ever ever neglect existing clients. They are the greatest source of add-on sales, testimonials and referrals that you have.

  1. Delivering on powerful presentations

  2. Tapping the desire to serve others.

  3. Managing the personal marketing versus selling formula.

  4. S/M = Sales Effort

    1. The more marketing you do, the less selling effort you have to deal with. The more quality time you spend marketing, the less you have to physically sell. Prospects put their hands up and come looking your you.

    2. S * M = Results..double the M spend half the time on sales.

  5. Handling of objections or rejections.

    1. When a prospect says no, all he is saying is he is not interested in your product at this time or that he doesn’t understand something. It is not a reflection on you.
  • Create coop relationships with other individuals or companies that are already in contact with your prospects.

  • Send out sales letters

  • Advertise

  • Volunteer at industry functions

  • Conduct free educational seminars

  • Generate testimonials and referrals

Of all the things you can learn, the time you spend on the subject of handling rejections and objections is the most valuable.

At first, it’s important to just hear objections/rejections and just say “Thank you.”

Follow the objection with honest probing questions. Then reiterate and restate the objection.

In corporate sales “honor thy client’s secretary”. Treat them as they were the decision-marker.

Direct sales are three things

  1. Prospects

  2. Appointments - telephone or face to face

  3. Making arrangements(closing)

Don’t worry about qualifying prospects in the beginning.

  1. Sales is an energy business, what you expend comes back. So just getting out there and speaking to people is valuable from an energy-generation POV.

  2. You could be wrong, but they might know someone that does need a website.

  3. It will assist you to get desensitized to rejection and you can practice your objections on a relatively unimportant prospect.

Step 1: You should never be talking to anybody who does not know who you are.

Step 2: Make initial contact in whatever way you are most comfortable.

E-mail and then follow-up phone call.

  1. THank them for taking the call, assure them it won’t take super long and ask if they received the intro communication and if they have any questions.

Step 3: Do your market research. Learn everything you can about the prospects business and industry. Being equipped with information will give you confidence and show prospects that you take them seriously.

Prepare a list of questions that you would like to ask the prospect in advance, and rehearse them as if you’ve never done this before.

Know what kind of person you are talking to.

Step 4: The appointment. Be well groomed and well dressed. If you look good, you feel good and that comes across in your communication.

Be excited, enthusiastic and be happy.

Step 5: As you walk into the appointment remember on what you want to focus on what you want to happen as an outcome to the meeting. Anchor that positive moment by reliving the moment in your head and allowing yourself to feel that emotion.

Design a conversation solely to find out as much as you can about the prospect. Ask about what they do, why they do it, why they like it, what their ideals are and what their frustrations and problems are. DO NOT TRY TO SELL. Spend time asking relevant questions. Be truly interested, but not interesting.

How did you hear about our service or product?

What particular needs do you have regarding our service or product?
WHen this product or service was referred to you, what was it that specifically sparked your interest?

2nd level of questions

Ask questions about the prospects themselves, their business and the nature of their needs and what they specifically want.

  1. Their specific tangible goals

  2. Their opinion about how to implement or make use of the product or service

  3. Their emotional expectation.

Step 6: Present a proposal from that conversation, outlining how the customer will reach those goals in question.

Step7 7: Give them whatever they want.

“If I could wave a magic wand, what is it that you really want in terms of xyz”

Step 8: CLosing

When would you like delivery? How quickly would you like to begin? How soon would you like to begin to take advantage of this opportunity?

Nutshell

Gaining prospects

  1. Speak to people you know first

  2. Make initial contact the way you are most comfortable.

  3. Do your market research

Appointments

  1. Make great first impression

  2. Focus on what you want to happen at the appointment in advance, not on your fears.Make an appointment to call or visit again..a reason to stay in touch.

Give them whatever they want.

Making arrangements

  1. Ask questions and handle objections. Listen and watch your prospect for buying signals.

Career cycle

Retail sales > Corporate sales > network marketing / franchise sales > Entrepreneur sales > business sales.

  1. If you cannot sell, then you cannot run a successful business. You have to sell to your customers, vision to your staff, investors associates.

  2. Cannot or will not put together a team. Have to be able to gather others who have more skill than you in specific areas. Enough confidence in your adea.

Seek opportunities. Enablement. Barrier to Override. Ownership. Feedback.

Dogs don’t think about it. They look across the room, see you as an opportunity for some companionship and simply walk over and nuzzle their sloppy face into your lap. Try it - it might work.

The Automatic Customer By John Warrillow - Book Notes

The automatic customer by john warrillow

Read: 2/21/18

Part I

Business are much easier to sell that have some form of recurring revenue.

Find two forms of revenue.

  • Installation revenue for building the main site/project whatever.

  • Monitoring revenue in the form of the monthly payment for keeping an eye on things.

The reason amazon is so successfull with prime. Is that people want to ‘get the most of it’ and buy from amazon.

Subscription model is back in full swing because people trust enter their credit card online, internet speeds are fast.

The internet has lowered the cost of distribution for many products and services.

Customers want to express their individuality and increasingly they are using subscriptions to do that.

Amazon, adobe, microsoft, apple are all moving towards subscription models to supplement their income 5 to 10%.

Subscription models are cannibalizing local pet food stores, vitamin shops etc.

Subscriptions are good because….

  1. They increase the value of your largest asset.

    1. Most businesses are valued at discounted cash flow.

MRR: monthly recurring revenue

ARR: annual…duh

Security businesses that monitor alarm systems and charge a recurring monthly monitoring fee to do so are worth around double what security businesses that just do system installations are worth.

Example: Mosquito squad. Subscription based pest control vs you call when their is a problem.

  1. The $29 sale vs the $4,524 sale. Flower shop example

  2. Smooth out demand

  3. Free market research

  4. Get paid automatically

In a subscription business, the model is reversed. The customer subscribes and pays.

  1. Customers get sticky..from the convenience of it.

  2. Subscribers purchase more

  3. Recession-proof your business. Focus on high margin recurring maintenance revenue.

Part II

9 subscription business models.

“How could this model be applied to web development?”

“What part of this model could I borrow for FM Web Studios?”

The membership website model:

Publishing your know-how behind a paywall that requires members to buy and access to your secrets.

This could be applied to web development in creating a course in how to build a site, how to make your site accessible.

If you have developed a unique approach to running your business or have been able to achieve above average results in a competitive industry, other web people may want to know about it.

The most financially successful membership websites tend to focus on helping business owners master a specific industry or niche.

Restruantowner.com

Contractorselling.com

B2B sites are some of the more successful memberships.

Monetizing your members…the subscription could be an entry into selling a larger ticket item.

$7 article example to a $1500 conference.

The best response rate will always come from customers who bought something similar less than three months prior.

Who the membership website model works best for

Consider it if you:

  • A tightly defined niche market, dance studio owners or italy junkies.

  • Access to steady flow of unique knowledge or expertise/insider information that is constantly changing and that subscribers need to stay in the know about.

  • Another product or service you can sell to your subscribers.

What the insiders say

  • The most profitable membership sites are those of B2B companies that solve a real problem. Offering must have information and maintaining constantly evolving forums that require a subscriber stay lower over the long term.

  • Most successful operators produce a piece of content in multiple formats (video, podcast, blog/transcript) to accommodate subscriber preferences for consuming information and increase the chances the site will be found by Google’s search engine.

  • It can be difficult to make a good living from just revenue you get from subscribers along. So having other ways to monetize through adjacent selling (conferences, courses, coaching) is the best way to build a significant business around a membership website.

The all you can eat library model

Early iTunes example in early 2000s.

Vs current day spotify.

Netflix, hulu pandora etc.

Winning formula is a two stepped approach.

  1. Get unique visitors to your website to opt in to a relationship with your company by subscribing to an e-mail newsletter or joining a facebook fan page.

  2. Then convert opt-ins to paying subscribers through a sales funnel.(what is a sales funnel?)

The private club model

Mastermind groups.

Consider it if:

  • Something that is in limited supply, always a service or experience and is in high demand among affluent consumers

Font of the line model

Buy your way to the front of amusement park rides.

Salesforce: everyone gets basic level support. Submit a ticket and you can get a response within 2 business days. If you want it faster than 2 business days pay more. 15 minutes turnaround pay even more

You’re being transparent about who gets served first, which is in some ways fairer than deprioritizing customers without telling them why.

You can offer faster response times through an application like zendesk/desk can easily route subscribers to the front of the que.

Consider the front of the line model

  • A complex product or service

  • Customers who are not price sensitive

  • Customers who waiting in line too long can have catastrophic results(lost revenue etc.)

  • Front of the line model can be used in conjunction with other subscription models to add additional stream of recurring revenue.

  • Need a good reputation for baseline service.

  • Leverage technology/systems to automatically put these customers to the front

The consumables model

Dollar shave club

https://www.youtube.com/watch?v=ZUG9qYTJMsI

Must differentiate yourself..mega retailers or e-tailers: Let us buy your or we’ll put you out of business.

Ie. facebook to instagram.
Facebook stories vs snap

Best defense is branding.

  1. Must differentiate to care about the product

  2. Focus on building a brand

When comparing apples to apples, amazon will most definately be cheaper and faster.

The more we beleive a product is unique and offers a better experience, the more the providor has the leeway to set his own price.

The surprise box model

Ie. blue apron

Vetts out products. Before google, vetting of products was done by department store buyers who would consider hundreds of products a year and select only the very best for their customers.

Standard cocoa - nyc chocolate subscription model.

Specialty manufactueres of chocolate/any other craft product, don’t enjoy economies of scale.

The simplifier model

Stuff is getting more and more complex. The number of systems we each must now use ona daily basis that causes our mental overload.

Hassle free home service. Get assigned a tech that will manage your home throught the year.

Able to hire and easily see if you need to hire more help or not.

Can supplement by helpful email summaries, statemends and reminders of work that has been on and has been planned. Want to be in touch with your customers via one way or another every other week.

All that interaction breeds familiarity over time, which means you can become a trusted resource for other things web related. When something goes awray or another big project comes along. You can come in and do the job for an extra fee.

Now you don’t have to remember to A) renew your hosting account B) Post to social media C) Do google citations for local SEO. anything.

Mosquito squad smaller company with less than $500k revenue. Small companies can pump out profit margins of 20 - 30 % before tax. Recurring revenue.

Enormous value in ‘setting it and forgetting it’ systems. You get the recurring revenue and steady work. Customer gets the benefit of knowing its one less thing to remember to do.

Simplifer model

  • A service that your customers need on an ongoing basis(web hosting, seo)

  • The ability to sell to releviley affluent, busy clients

  • A personal service

Insiders

  • Discover your simplifier model by interviewing your target customer. Have her describe a typical day and ask her to show you her to do list. Ask yourself what you could offer to tick something off that list.

  • Part of the value prop is you will remember to do a task so your customer doesn’t have to. Make sure to setup a regular schedule.

  • Its also a platform for cross selling and upselling. Delivering the tasks associated with your service conract offers a built in way to see what else you could provide your customer

  • You don’t need to bundle all of your services in a contract, just pick the ones a customer needs regulary and those tasks should act as a platofrm to ensure you’re the first person they think of for other jobs.

Network model

The utility of the subscription gets more and more valuable as more people subscribe to it.

Ie. facebook, telephone companies.

Peace of mind mode

Offers insurance against something your customers hope they’ell never need.

Website monitoring services. Site24x7.com or dotcom monitoers.

Radian6.

Reputationloop etc

You can listen in on conversations about their brands on social networks so they can know what people are saying about them and tell their side of the story.

Underwriting profit: is the difference between premiums generated and claims paid, while float is the money you make investing the cash people pay in insurance premiums before they make a claim.

You could keep the $75/month in your pocket….or you could invest it. Invest it into the stock market or a vanguard blended fund..or put the money back into your business to make you even more money or save some more time.

Big insurance companies employ an army of actuaries who use statistical models to predict the likelehood of a claim being made.

Tread lightly

  • Offer the peace of mind subscription to only a few handful of customers so you can get a sense on how the claim is made.

  • Limit your customer offer. Offer to cover fixes up to a certain dollar amount

  • Reinsure the risk

Chapter 4

The psychology of selling a subscription.

Subscription fatigue. Once more and more subscriptions the small monthly charges add up. Our bar for a subscription service is getting higher.

  1. Think 10x vs 10%: Make the customer enjoy the alternative 10x more than the competition.

  2. Appear to their rational side.

  3. Give the customer an ultimatum

Netflix, salesforce etc are 100% all in on the subscription model.

  1. Give them the freemium option

  2. Offer a trial

    Osler example. A bajillian 14 day free trial options.

Zendesk example. Have the main focus not on buying the product, but on using the product. This will become the endowment effect in psychology. If you use the product there is a greater chance of you becoming a subscriber.

  1. Offer your subscription as a gift.

  2. Set fire to the platform.

    Have an ‘oh shit’ moment where you drop the price briefly or offer a good deal.

The best salespeople set fire to the platform only when the customer has made the decision to subscribe and it is only a question of when.

CAC = Customer acquisition cost.

LTC = lifetime value of the customer

Chrun = cancellation rate of customers.

3:1

LTV: CAC

Chapter 15: Scaling Up

Can have a growth business or lifestyle business. Can have a ton of freedom with this and fund mini-sabbaticals.

Lowering Churn.

First step is to understand WHY they are leaving your business.

If your customers can avoid your product or service and they still get their jobs done, you’ll have a MUCH higher churn rate than if they need to interact with your service to complete their daily tasks.

Watch the 90 day onboarding clock.

  • Afte the first 90 days the customers LTV and profitability will have been practically set in stone.

  • Customers expect a high level of interaction

  • They expect to be asked for personal information

  • They are in switch mode and are open to new offers.

  • They are much more likely to defect before ‘bedding in’

For a subscription to stick, customers need to change their behavior and use your service.

Need to track a group of cusomers called co-horts

Have co-horts of 3 and try different things on each of them.

Reduce churn #3: wow up front

Churn #4: Charge up front..weed out people not super commited.

Offer a price reduction if they pre-pay for a year. 10%. Charign up front and using your service for a year makes your service ‘stickier’ deeper commitment and end up staying longer as a result.

Churn #5: Over communicate

6-7 points of contact is ideal..

Churn #7: Drop a hapiness bomb.

Drop a small gift of spontinaety.

Amazon patent ‘anticpioatory shipping’

Chrun #7: Target larger businesses

Larger businesses..more stable more employees and less likely to change strategy ona dime.

Churn #8: Focus on net churn

React Component types

Their are a few different ways to create class methods. You can create render methods with a class method. Be a little more declarative and use ES6. Or be ‘the best’ and use a stateless functional component.

Destructing is typically a good idea, to make the react code less cluttered. Use stateless componenets whenever possible, functional way to use components and also offer some performance benefits.

This is the react class method

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import React from 'react'
import '../stylesheets/ui.scss'

export const WaterDayCount = React.createClass({
decimalToPercent(decimal) {
return ((decimal* 100) + '%')
},
calculateGoalProgress(total, goal) {
return this.decimalToPercent(total/goal)
},
render() {
return (
<div className="water-day-count">
<div className="total-days">
<span>Total Days: {this.props.total}</span>
</div>
<div className="sail-days">
<span>Sailing Days: {this.props.sail}</span>
</div>
<div className="sup-days">
<span>SUP Days: {this.props.sup}</span>
</div>
<div className="goal">
<span>Goal Progress: {this.calculateGoalProgress(this.props.total, this.props.goal)}</span>
</div>
<span>Goal: {this.props.goal}</span>
</div>

)
}
})

This is the ES6 component method

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { Component } from 'react'
import '../stylesheets/ui.scss'

const decimalToPercent = (decimal) => {
return ((decimal* 100) + '%')
}
const calculateGoalProgress = (total, goal) => {
return decimalToPercent(total/goal)
}

export const WaterDayCount = (props) => (

<div className="water-day-count">
<div className="total-days">
<span>Total Days: {props.total}</span>
</div>
<div className="sail-days">
<span>Sailing Days: {props.sail}</span>
</div>
<div className="sup-days">
<span>SUP Days: {props.sup}</span>
</div>
<div className="goal">
<span>Goal Progress: {calculateGoalProgress(props.total, props.goal)}</span>
</div>
<span>Goal: {props.goal}</span>
</div>

)

Stateless compnent method

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import { Component } from 'react'
import '../stylesheets/ui.scss'

const decimalToPercent = (decimal) => {
return ((decimal* 100) + '%')
}
const calculateGoalProgress = (total, goal) => {
return decimalToPercent(total/goal)
}

export const WaterDayCount = ({total, sail, sup, goal}) => (

<div className="water-day-count">
<div className="total-days">
<span>Total Days: {total}</span>
</div>
<div className="sail-days">
<span>Sailing Days: {sail}</span>
</div>
<div className="sup-days">
<span>SUP Days: {sup}</span>
</div>
<div className="goal">
<span>Goal Progress: {calculateGoalProgress(total, goal)}</span>
</div>
<span>Goal: {goal}</span>
</div>

)

Roofstock Case Study

After hearing about roofstock on a Listen Money Matters podcast. I was very interested in rental real estate investing. Below is my own case study and times.

08/28/17

  • Submitted an offer of $83,000 on an $85,000 house.
  • Contacted by Zach At roofstock to go over the process
  • PSA was sent over

8/29/17

  • PSA was completed
    -Earnest money was sent to meridian title company $1500
    -$20 wire fee
    -I have recieved the current lease, lease extension from 2016 - 2018
  • Zach looked at insurance options and sent them over

8/30/17

  • I selected the insurance with realprotect with a $5000 deductable.

8/31/17

  • Title company confirms with me that they received by earnest money deposit
  • Zach contacts me back saying their have been no updates and we are waiting on the lender
  • I called the lender, they are waiting on the title company
  • Title company contacts me asking if I want a Permits & Cases search done for an extra $100. I decline. If I didn’t respond they would have run it.

9/1/2017

  • Lender contacts me to fill out a bunch of paperwork in their TRU Mortgage - eDisclosure Request.
    • Borrower’s Certification & Authorization
  • Authorization to Release Information
  • Acknowledgement of Intent to Proceed
  • Disclosures - 4506T
  • 1003 - URLA
  • Notice of Right to Receive Copy of Written Appraisal/Valuation
  • Loan Estimate
  • SSA-89_Borrower
  • SSA-89_Co-Borrower
  • Hazard Insurance Authorization, Requirements and Disclosure
  • Notice of Furnishing Negative Information
  • Mortgage Fraud is Investigated by the FBI
  • Fair Credit Reporting Act
  • Equal Credit Opportunity Act Notice
  • USA Patriot Act Information Disclosure
  • 2015 Settlement Service Provider List
  • Acknowledgement of Receipt of Loan Estimate
  • IN Notice to Borrower/Prospective Borrower
  • IN Right to Choose Insurance Provider
  • RESPA Homeownership Counseling - List
  • Most can be esigned, but a few had to be printed out, scanned and uploaded.

9/5/17

  • Got an email requesting for a lender payment of $650 and payed it via credit card.

9/09/17

  • Got a call from meridian title company confirming what address my wire transfer was for.

9/11/17

  • Received an updated PSA extending the Appraisal contingency to 9/27/17 and the close on escrow to 10/06/17.
  • Appraisal has been scheduled for 9/18/17
  • Home loan has officially been approved.

    • Needed to completed an inquiry letter with recent credit pulls
    • Needed to show proof earnest money came out of my account with the before and after balance.

    9/13/17

    • Received the insurance verification files in my inbox. Saved them to my cloud storage.

React essentials training

I am being put on an exciting new project at work that uses, you guessed it, react!

It seems that react is the hot new thing for us. It has many benefits of delivering content client side and is much easier to develop in than our standard C# .NET libraries.

  • All we really need is a text editor and an API endpoint and we are pretty much good to go.
  • This on a large scale reduces our server load and delegates it to the client.
  • Rich site interactions
  • Faster website rendering after inital load
  • Great for web apps

Plus, its the hot new thing in the web development world and it seems that’s where things are headed.

  • Another benefit is that it is easier to hire for and seek out candidates that know this stack. Plus, it is always smart to add new skills to your resume.

Performance gains

  • No full page load required
  • Lazy loading is possible(load only what you need)
  • Cheaper hosting and easy deployments

I am currently dog sitting in the mountains in a town called Nederland which is about 40 minutes from my work in Boulder, CO. I have a free bus pass that work provides me and I don’t like driving, so I’d rather take the bus and be productive.

Over the next work week, I will delve into react esseintail training and post on what I have learned here. Hopefully you will learn something new!

If you want to follow along it can be found on lynda.com
React.js Essential Training

Android's keyboard messes with viewport dimension

There is a little quirk on how the android soft-keyboard totally messes with css orientation rules. It’s probably a lesser known gotcha, but it tripped me up longer than I would have liked. Here I will explain it and how to get around it.

I was targeting a very specific set of devices using a media query of (orientation: portait) whenever the user selected the search bar the on screen soft-keyboard would open up on the android tablet and it would then break my styles.

I reached out to my team and another developer noticed that when the height was changed it would also break the layout in the same manner as the keyboard popping up. I did some google fu and came accross two excellent links.

It ultimately has to do with how orientation is calculated as I was using (orientation: portrait). The W3 calculates orientation portrait by checking if the height or width is greater, not the actual device orentation itself. So you could still have the device upright but if the height is less than the width you are in “landscape” mode.

W3.org says
The ‘orientation’ media feature is ‘portrait’ when the value of the ‘height’ media feature is greater than or equal to the value of the ‘width’ media feature. Otherwise ‘orientation’ is ‘landscape’.

So when the keyboard pops up the height is less than the width and it breaks out of the (orientation: portrait) media query. iOS doesn’t have this issue because the keyboard is overlaid over the browser window vs resizing the actual browser.

So the solution is to stuff the styles that you want to still be applied in an (orientation: landscape) media query.

Resources I am using to learn react

Currently I am ramping up on a project very soon that is react based. I have no prior experience writing react code and here are a list of resources that I have found most helpful in my learning.

Mastery

The five master keys

  • Instruction

  • Practice

  • Surrender

  • Intentionality

  • The Edge

Dealing with change and homeostasis

  • Be aware of the way homeostasis works

  • Be willing to negotiate with your resistance to change

  • Develop a support system

  • Follow a regular practice

  • Dedicate yourself to lifelong learning

Getting energy for mastery

  • Maintain physical fitness

  • Acknowledge the negative and accentuate the positive

  • Try telling the truth

  • Honor but don’t indulge your own dark side

  • Set your priorities

  • Make commitments. Take action

  • Get on the path of mastery and stay on it

Pitfalls along the path

  • Conflicting way of life

  • Obsessive goal orientation

  • Poor instruction

  • Lack of competitiveness

  • Over Competitiveness

  • Laziness

  • Injuries

  • Drugs

  • Prizes and medals

  • Vanity

  • Dead seriousness

  • Inconsistency

  • Perfectionism

Goals and contingencies are important, sure, but they exist in the future and in the past.

Practice, the path of mastery exists only in the present state.

To love the plateau is to love the external learning. Enjoy the accomplishments and accept the plateau that waits just beyond them.

Be in the hands of a master teacher.

  1. Teacher mentor.

  2. Practice staying on the path. The ups/downs barriers of the ego but it will lead to mastery.and staying on the path

  3. Surrender

  4. Intentionality

  5. The edge.

Early stages of learning you should have the spirit of the fool. Learning any kind of skill involves certain indignities. First few dives are sure to be belly flops, and everyone is bound to see them.

If you want to get there, be prepared to take it.

Surrendering to your teacher and to the fundamentals of the art are only the beginning.

Surrender means there are no experts, only learners.

Mental game is 50% visualization

40% setup

10% swing

Every master is a master of vision.

Tools

  1. Why resolutions fail.

    1. Homeostasis wants things to go back to the baseline normal. It is humane nature.

    2. Be aware of how homeostatis works

      1. Social homeostatyis, also is a big impact.

      2. Be prepated to experience falling back to the baseline

    3. Be willing to understand an notice your resistance to change.

  2. Develop a support system.

  3. Follow regular practice.

  4. Habit provides a help against homeostatis.

  5. Dedicate yourself to lifelong learning

To learn is to change….educate, books, behavior, changes the learner

The path of learning never ends…..

Getting energy for master

Best remedy for alertness if aerobic exercise.

  1. Maintain physical fitness.

  2. Acknowledge the negative and accentuate the positive.

Me: I’m not as good of a programmer that I’d like to be. Not much of a social life outside of the college bunch not as good with the ladies yet as I’d like to be, I sleep in late and go to work late.

  1. Try telling the truth

4 .Set your priorities.

A, B, C, D etc. of the day/week.
  1. Make commitments and take action.

  2. Get on the path to mastery and stay on it.

Inconsistency is my biggest pitfall.

Consistency is the practice if the mark of the master.

Continuity of time and place can establish a rhythum that bouys you up and carries you along your path.

Remember, most of life if in-btween time. That is it is waking up, getting, dress, commuting, working until llunch, taking lunch, working to 5,..NONE OF THAT COUNTS..but it should and does!