Skip to content

Instantly share code, notes, and snippets.

EdwardDiehl /
Created February 6, 2023 21:56 — forked from wojteklu/
Summary of 'Clean code' by Robert C. Martin

Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.

General rules

  1. Follow standard conventions.
  2. Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  3. Boy scout rule. Leave the campground cleaner than you found it.
  4. Always find root cause. Always look for the root cause of a problem.

Design rules

EdwardDiehl / globals-debugger.js
Created February 19, 2022 20:03 — forked from mmazzarolo/globals-debugger.js
Track down the JavaScript code responsible for polluting the global scope
View globals-debugger.js
* GlobalsDebugger
* Inspect the stack when a global variable is being set on the window object.
* Given a global variable name, it proxies the variable name in the window
* object adding some custom code that will be invoked whenever the variable
* is set. The custom code will log the current stack trace and halt the code
* execution to allow inspecting the stack and context in your browser DevTools.
* You can use the "globalsToInspect" query-parameter to set a comma-separated
* list of names of the variables you want to inspect.
EdwardDiehl /
Created February 8, 2022 05:54 — forked from zmts/
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Last major update: 25.08.2020

  • Что такое авторизация/аутентификация
  • Где хранить токены
  • Как ставить куки ?
  • Процесс логина
  • Процесс рефреш токенов
  • Кража токенов/Механизм контроля токенов
EdwardDiehl / github-to-bitbucket
Created July 27, 2019 08:23 — forked from sangeeths/github-to-bitbucket
Forking a Github repo to Bitbucket
View github-to-bitbucket
Go to Bitbucket and create a new repository (its better to have an empty repo)
git clone
cd myforkedrepo
Now add Github repo as a new remote in Bitbucket called "sync"
git remote add sync
Verify what are the remotes currently being setup for "myforkedrepo". This following command should show "fetch" and "push" for two remotes i.e. "origin" and "sync"
git remote -v
View simple_railway.rb
module SimpleRailway
class Result
attr_accessor :success, :data
def initialize(success, data)
@success = success
@data = data
def success?; !!success; end
def failure?; !success?; end
View simple_state_machine.rb
# Usage:
# class Mail
# include SimpleStateMachine
# self.initial_state = 'unread'
# self.transitions_map = {
# read: {from: 'unread', to: 'read'},
# unread: {from: 'any', to: 'unread'},
# delete: {from: 'any', to: 'deleted'},
EdwardDiehl / Intro to Common Table
Created November 19, 2018 07:38 — forked from felixyz/Intro to Common Table
Introduction to transitive closure / Common Table Expressions / iterative queries in SQL
View Intro to Common Table

Teh Social Netswork!


INSERT into users VALUES

EdwardDiehl / geoip.rb
Created July 24, 2018 20:53 — forked from zarqman/geoip.rb
Benchmark various GeoIP gems
View geoip.rb
# Related blog post:
require 'benchmark'
PASS = 1 # 1 or 2
### libraries for C extensions
# brew install geoip
# brew install libmaxminddb
EdwardDiehl / Bracket
Created May 28, 2018 13:16 — forked from Integralist/Bracket
[Bracket Terminology] #bracket #terminology
View Bracket
parentheses:     ( ) 
braces:          { } 
brackets:        < > 
square-brackets: [ ]
EdwardDiehl /
Created February 22, 2018 11:34 — forked from cflee/
Discoveries about Ruby Blocks, Procs and Lambdas

Ruby: Blocks, Procs, Lambdas

Note that for blocks, {} and do ... end are interchangeable. For brevity, only the former will be listed here.

Version differences

Pre-1.9, lambda and proc are synonyms. Essentially the difference is between proc and block.

def method(&block) p block.class; p block.inspect; end
l = lambda { 5 }