Skip to content

Instantly share code, notes, and snippets.

@smugen
smugen / compositeDesignPattern.ts
Created December 3, 2022 12:21
221203 Composite Design Pattern
abstract class Asset {
abstract getDetails(): string[];
}
class Machine implements Asset {
constructor(
private readonly machineId: number,
private readonly machineModel: string,
private readonly machineName: string,
) {}
@smugen
smugen / flattenObject.js
Created November 6, 2022 11:44
221103 Practice
const SEP = '.';
/**
* traversal an object and flatten its nested objects property keys,
* concatted by a `.` into a single level non-nested object
*
* @param obj object
*
* @returns object
*/
@smugen
smugen / remove_youtubePlayer.js
Created April 2, 2017 15:17
Remove YouTube Player on SHOWROOM
javascript:void document.getElementById('youtubePlayer').remove();
@smugen
smugen / ClassAndInstances.swift
Last active August 29, 2015 14:17
Swift 1.2 notes
class ClassName : NSObject {
static var i = 0
// static / class function (seems the same)
static func fn() {}
class func fn2() {}
init() {}
@smugen
smugen / NSObjectExtension.h
Created January 27, 2015 08:54
Add `performSelector` back to swift
//
// NSObjectExtension.h
// KeyOUcare
//
// Created by CYWang on 2015/1/27.
// Copyright (c) 2015年 OUcare. All rights reserved.
//
#ifndef KeyOUcare_NSObjectExtension_h
#define KeyOUcare_NSObjectExtension_h
@smugen
smugen / constructor.js
Created December 25, 2013 10:14
constructor compatible with be calling as ordinary function
// check the prototype
function init(args){
if (Object.getPrototypeOf(this) !== init.prototype) {
// called without `new`
return new init(args);
}
this.args = args;
}
// check the constructor
@smugen
smugen / Dockerfile
Created October 4, 2013 08:37
docker redis service
# RUN apt-get update && apt-get -y install build-essential
FROM mugen/ubuntu-build-essential:latest
# install redis
ADD http://download.redis.io/redis-stable.tar.gz /tmp/
RUN cd /tmp && tar xzf redis-stable.tar.gz
RUN cd /tmp/redis-stable && make
RUN cd /tmp/redis-stable/src && cp redis-server /usr/bin/; cp redis-cli /usr/bin/
# run redis server
@smugen
smugen / Dockerfile
Created October 4, 2013 08:37
docker nodejs runtime
FROM ubuntu:latest
# install nodejs
ADD http://nodejs.org/dist/v0.10.20/node-v0.10.20-linux-x64.tar.gz /tmp/
RUN cd /tmp && tar xzf node-v0.10.20-linux-x64.tar.gz --strip-components=1 -C "/usr"
# install git
RUN apt-get update && apt-get install -y git
@smugen
smugen / dav-server.py
Created July 1, 2013 16:42
Python WSGI WebDAV server on Gevent
from gevent.monkey import patch_all
patch_all()
import argparse
from wsgidav.fs_dav_provider import FilesystemProvider
from wsgidav.version import __version__
from wsgidav.wsgidav_app import DEFAULT_CONFIG, WsgiDAVApp
from gevent.pywsgi import WSGIServer
@smugen
smugen / foundicons-more-than-one.css
Created May 10, 2013 08:20
Foundation 4 Basic Markup
i[class*="foundicon-"] {
font-style: inherit;
}
i[class*="foundicon-"]:before {
font-family: "GeneralFoundicons";
}
i[class*="enclosed foundicon-"]:before {
font-family: "GeneralEnclosedFoundicons";