Skip to content

Instantly share code, notes, and snippets.

View rohitnarayan's full-sized avatar
Exploring!

Rohit Jaiswal rohitnarayan

Exploring!
  • Gojek
  • Bengaluru
View GitHub Profile
@rohitnarayan
rohitnarayan / System Design.md
Created October 15, 2020 19:37 — forked from vasanthk/System Design.md
System Design Cheatsheet

System Design Cheatsheet

Picking the right architecture = Picking the right battles + Managing trade-offs

Basic Steps

  1. Clarify and agree on the scope of the system
  • User cases (description of sequences of events that, taken together, lead to a system doing something useful)
    • Who is going to use it?
    • How are they going to use it?
@rohitnarayan
rohitnarayan / tmux.conf
Created May 28, 2019 11:31 — forked from spicycode/tmux.conf
The best and greatest tmux.conf ever
# 0 is too far from ` ;)
set -g base-index 1
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
#set -g default-terminal screen-256color
set -g status-keys vi
set -g history-limit 10000
@rohitnarayan
rohitnarayan / composer.json
Created February 11, 2019 10:14 — forked from woozy/composer.json
Git hook to validate modified code against PSR-2 code standard
{
"require-dev": {
"squizlabs/php_codesniffer": "^3.2",
"exussum12/coverage-checker": "^0.10.0"
}
}
@rohitnarayan
rohitnarayan / tmux-cheats.md
Created October 18, 2018 07:09 — forked from Starefossen/tmux-cheats.md
My personal tmux cheat sheet for working with sessions, windows, and panes. `NB` I have remapped the command prefix to `ctrl` + `a`.

Sessions

New Session

  • tmux new [-s name] [cmd] (:new) - new session

Switch Session

  • tmux ls (:ls) - list sessions
  • tmux switch [-t name] (:switch) - switches to an existing session
@rohitnarayan
rohitnarayan / tmux-cheatsheet.markdown
Created October 17, 2018 10:07 — forked from MohamedAlaa/tmux-cheatsheet.markdown
tmux shortcuts & cheatsheet

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
// XPath CheatSheet
// To test XPath in your Chrome Debugger: $x('/html/body')
// http://www.jittuu.com/2012/2/14/Testing-XPath-In-Chrome/
// 0. XPath Examples.
// More: http://xpath.alephzarro.com/content/cheatsheet.html
'//hr[@class="edge" and position()=1]' // every first hr of 'edge' class
@rohitnarayan
rohitnarayan / optparse-template.rb
Created July 30, 2018 15:49 — forked from rtomayko/optparse-template.rb
Ruby optparse template
#!/usr/bin/env ruby
#/ Usage: <progname> [options]...
#/ How does this script make my life easier?
# ** Tip: use #/ lines to define the --help usage message.
$stderr.sync = true
require 'optparse'
# default options
flag = false
option = "default value"
@rohitnarayan
rohitnarayan / optparse_example.rb
Created July 30, 2018 15:48 — forked from jensendarren/optparse_example.rb
An example of using OptionParser in Ruby
# Restrict arguments to a specified class.
require 'optparse'
class HelloParser
def self.parse(args)
options = {}
opts = OptionParser.new do |opts|
opts.banner = "Usage: name"
opts.on('-n', '--name NAME', 'The name of the person to say hello to') do |name|
# Sort a list of dictionary objects by a key - case sensitive
from operator import itemgetter
mylist = sorted(mylist, key=itemgetter('name'))
# Sort a list of dictionary objects by a key - case insensitive
mylist = sorted(mylist, key=lambda k: k['name'].lower())