Skip to content

Instantly share code, notes, and snippets.

@jonnyjava
jonnyjava / LeanStartup.md
Created July 6, 2017 16:21
What i learnt about Lean Startup

LEAN STARTUP

Books

  • Business Model Generation and Value Proposition Design: - Alexander Osterwalder
  • The Lean Startup: - Eric Ries
  • The Startup Owner's Manual: The Step-By-Step Guide for Building a Great Company - Steve Blank / Bob Dorf
  • The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers - Ben Horowitz
  • The Four Steps to the Epiphany Hardcover – Steve Blank (Author)
  • The Lean Product Playbook: How to Innovate with Minimum Viable Products and Rapid Customer Feedback - Dan Olsen (Autor)
@jonnyjava
jonnyjava / Clean Arquitecture.md
Last active December 22, 2021 08:22
Clean Arquitecture

Clean architecture

  • The goal of software architecture is to minimize the human resources required to build and maintain the required system.
  • The only way to go fast, is to go well.

A TALE OF TWO VALUES

BEHAVIOR

The first value of software is its behavior. Programmers are hired to make machines behave in a way that makes or saves money for the stakeholders.

ASK

The Ask Formula is a series of surveys (or questions) designed to determine what a customer wants, along with customized sales language based on those answers to get that customer to buy. Think of it like a funnel. A funnel is a tube or pipe that is wide at the top and narrow at the bottom, used for guiding liquid or powder into a small opening. A survey (or question) funnel operates the same way. You start by asking big wide questions at first, and then those questions narrow, and narrow more, as you ask your customers simple, more precise questions about their situation; until you have enough information to speak to their specific wants, needs, and desires.

People don’t know what they want.

People are really good at telling you what it is they don’t want.

Understanding ECMAScript 6

1 Block Bindings

Variable declarations using var are treated as if they are at the top of the function (or in the global scope, if declared outside of a function) regardless of where the actual declaration occurs; this is called hoisting.

Block-level declarations declare bindings that are inaccessible outside a given block scope. Block scopes, also called lexical scopes, are created in the following places:

  • Inside a function
  • Inside a block (indicated by the { and } characters)

let declarations are not hoisted to the top of the enclosing block; use let to declare a variable but limit the variable’s scope to only the current code block.

@jonnyjava
jonnyjava / roadmap.md
Last active September 27, 2019 09:58
Become a good programmer roadmap
@jonnyjava
jonnyjava / bash_aliases.txt
Last active May 20, 2019 08:56
Everyday aliases
alias 1pass='wine ~/.wine/drive_c/Program\ Files\ \(x86\)/1Password\ 4/1Password.exe'
alias apalogs='cd && tail -f /var/log/apache2/error.log'
alias checkstyle='rubocop -a -f fuubar ; scss-lint'
alias gl='git lg'
alias openmysql='mysql --defaults-file=~/.local_db_conf'
alias quality_test='checkstyle ; rake traceroute ; rubycritic'
alias testall='bin/rspec'
alias update_me_motherfucker='git checkout master && git pull origin master && bundle install && rake db:migrate'
-----------------------------
@jonnyjava
jonnyjava / bashrc
Created October 14, 2015 15:41
git show branch and state in prompt
function parse_git_dirty {
[[ $(git status 2> /dev/null | tail -n1) != "nothing to commit, working directory clean" ]] && echo "*"
}
function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='\u@\h \[\033[1;33m\]\w\[\033[0m\]$(parse_git_branch)$ '
[user]
email = example@email.com
[color]
ui = true
[alias]
co = checkout
ci = commit
lg = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
[core]
editor = subl -n -w