Skip to content

Instantly share code, notes, and snippets.

@garudareiga
garudareiga / template-method-pattern.java
Created January 13, 2015 07:43
Template Method Design Pattern
public abstract class CaffeineBeverage {
void prepareRecipe() {
boilWater();
brew();
pourInCup();
if (customerWantsCondiments())
addCondiments();
}
abstract void brew();
@garudareiga
garudareiga / observer-pattern.java
Last active August 29, 2015 14:12
Observer Design Pattern
public interface Subject {
public void registerObserver(Observer o);
public void removeObserver(Observer o);
public void notifyObservers();
}
public interface Observer {
public void update(float temp, float humidity, float pressure);
}
@garudareiga
garudareiga / strategy-pattern.java
Last active August 29, 2015 14:12
Strategy Design Pattern
public interface FlyBehavior {
public void fly();
}
public interface QuackBehavior {
public void quack();
}
public class FlyWithWings implements FlyBehavior {
public void fly() { System.out.println("flying!"); }
@garudareiga
garudareiga / singleton-bill-pugh.java
Last active August 29, 2015 14:09
Singleton Design Pattern
public class Singleton {
private Singleton() {}
private static class SingletonHolder {
private static final Singleton uniqueInstance = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.uniqueInstance;
}
@garudareiga
garudareiga / abstract-factory-pattern.java
Last active February 18, 2022 11:47
Design Patterns in Java
// ingredients: dough, sauce
public interface Dough {};
public interface Cheese {};
public interface Pepperoni {};
public class ThinCrustDough implements Dough {
public String toString() { return "This Crust Dough"; }
}
public class ParmesanCheese implements Cheese {
@garudareiga
garudareiga / dependency-inversion-rinciple.java
Last active April 5, 2021 15:51
SOLID Design Principles in Java
public class Switch {
private Engine engine;
private boolean on;
public Switch(Engine engine) {
this.engine = engine;
this.on = false;
}
public boolean switchOn() {
create table countries (country_code char(2) primary key, country name text unique);
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns
Mutex lock/unlock 25 ns
Main memory reference 100 ns
Compress 1K bytes with Zippy 3,000 ns
Send 2K bytes over 1 Gbps network 20,000 ns
Read 1 MB sequentially from memory 250,000 ns
Round trip within same datacenter 500,000 ns
Disk seek 10,000,000 ns

Sublime Text 2 – Useful Shortcuts (PC)

Loosely ordered with the commands I use most towards the top. Sublime also offer full documentation.

Editing

Ctrl+C copy current line (if no selection)
Ctrl+X cut current line (if no selection)
Ctrl+⇧+K delete line
Ctrl+↩ insert line after
@garudareiga
garudareiga / logger0.py
Created January 16, 2014 07:35
A Python logging module file
import logging
def foo():
logging.debug('Dump debug message')
logging.info('Dump info message')
logging.warn('Dump warn message')
logging.error('Dump error message')
logging.critical('Dump critical message')