I hereby claim:
- I am dineshba on github.
- I am dineshba (https://keybase.io/dineshba) on keybase.
- I have a public key ASAV74ALoKc9qPC27Wsupaqr6xAXXG3PK9KF6SKaZePFyQo
To claim this, I am signing this object:
| // ==UserScript== | |
| // @name Jenkins console Scroll to bottom | |
| // @namespace http://tampermonkey.net/ | |
| // @version 0.1 | |
| // @description try to take over the world! | |
| // @author You | |
| // @match *jenkins* | |
| // @grant none | |
| // ==/UserScript== |
| // ==UserScript== | |
| // @name Local Jenkins job dates | |
| // @namespace http://tampermonkey.net/ | |
| // @version 0.1 | |
| // @description use local date for Jenkins jobs | |
| // @author You | |
| // @match *jenkins* | |
| // @grant none | |
| // ==/UserScript==(function() { | |
| 'use strict'; |
I hereby claim:
To claim this, I am signing this object:
| Learning | |
| - Technical | |
| - Use stderr and stdout properly (60% content for this 5w1h) (why do we need stderr, redirection, identify) | |
| - Use feature toggles | |
| - Write modular code in pkg dir so that anybody can import and use it (Eg helm, kubectl) | |
| - Easy dev setup (Makefile) | |
| - Logging at different log level (--debug flag) | |
| - 12 factor app (file, env, flag) | |
| - hyperfine for benchmark | |
| - NonTechnical |
| ### custom shell prompt ### | |
| parse_git_branch() { | |
| git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' | |
| } | |
| PS1='\[\e[31;47m\]$(kubectl config current-context)\[\e[m\]\[\e[36;47m\]$(kubectl config view --minify --output 'jsonpath={..namespace}')\[\e[m\]\w\[\033[32m\]$(parse_git_branch)\[\033[00m\] \$ ' | |
| ### cd dir interactively ### | |
| alias godir='cd $(find ~/projects -type d -maxdepth 2 | fzf)' | |
| ### load tmux session interactively ### |
| # usage show_commit commit-sha | |
| # usage show_commit HEAD | |
| #!/bin/sh | |
| show_tree() { | |
| spacing=$2 | |
| printf "$spacing showing tree $1 \n" | |
| for one in $(git cat-file -p $1 | awk '{printf $2"--"$3 "\n"}'); do | |
| printf "$spacing $one \n" | |
| done; |
| var optionalValue: Int? | |
| if let value = optionalValue { // unwraps optionalValue and assigns | |
| // it to variable named value | |
| print(value) // type of value = Int | |
| else { | |
| print("not able to unwrap optionalValue as it is nil") | |
| } | |
| //Let's rewrite the sum function using if-let | |
| func sum(_ optionalAugend: Int?, _ optionalAddend: Int?) -> Int? { |
| var anyValue: Any // If we don't know the type at compile time, | |
| // we can use `Any`. It is mostly used for data | |
| // coming from network which can be type casted as below. | |
| anyValue = "string value" // assinging string value | |
| anyValue is String // true | |
| // type checking using `is` operator | |
| if let stringValue = anyValue as? String { // if anyValue is castable to String, it will | |
| print(stringValue.uppercased()) // store in stringValue and enter into `if-let` |
| struct ComputerLab { // Computer Lab contains list of laptops. | |
| let laptops: [Laptop] | |
| } | |
| // we want to get the list of mac laptops | |
| // Traditional way | |
| var macLaptops: [Laptop] = [] | |
| for laptop in computerLab.laptops { | |
| if laptop.name.contains("Mac") { | |
| macLaptops.append(laptop) |
| let a = 5 // Int | |
| let b = 5.0 // Double | |
| let c = Float(5.3) // Float | |
| let sugar = Sugar(taste: .sweet) // Sugar | |
| let sweet = Taste.sweet // Taste | |
| let sour: Taste = .sour // Taste | |
| let sum = sum(5, nil) // Int? | |
| let firstValue = [1,2,3].first // Int? |