Skip to content

Instantly share code, notes, and snippets.

@franzwong
franzwong / setup.sh
Created December 21, 2015 08:37
Change apt mirror
# switch apt mirror
sudo sed -i 's/http:\/\/archive\.ubuntu\.com/http:\/\/ftp\.cuhk\.edu\.hk\/pub\/Linux/g' /etc/apt/sources.list
sudo sed -i 's/http:\/\/security\.ubuntu\.com/http:\/\/ftp\.cuhk\.edu\.hk\/pub\/Linux/g' /etc/apt/sources.list
@franzwong
franzwong / node.sh
Created February 24, 2016 03:45
nodejs daemon
#!/bin/bash
USER=nodejs
PIDFILE=/var/run/sample.pid
SCRIPT=/home/$USER/sample/index.js
NVM_SCRIPT=/home/$USER/.nvm/nvm.sh
start() {
echo "Starting service"
@franzwong
franzwong / pom.xml
Created March 23, 2016 07:20
Sample pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.franzwong</groupId>
<artifactId>test-app01</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<guice.version>4.0</guice.version>
<common-io.version>2.4</common-io.version>
<java.version>1.8</java.version>
@franzwong
franzwong / index.js
Last active April 24, 2016 08:27
redux router example
import React, { PropTypes } from 'react';
import ReactDOM from 'react-dom';
import { createStore, combineReducers } from 'redux'
import { Provider, connect } from 'react-redux';
import { Link, Router, Route, IndexRoute, browserHistory } from 'react-router'
import { syncHistoryWithStore, routerReducer } from 'react-router-redux'
const reducer = combineReducers({
products: (state = []) => state,
@franzwong
franzwong / Dockerfile
Created February 10, 2017 00:34
Enable JMX for Cassandra docker image
FROM cassandra:3.0
ENV LOCAL_JMX no
COPY jmxremote.password /etc/cassandra/jmxremote.password
RUN chown cassandra:cassandra /etc/cassandra/jmxremote.password
RUN chmod 400 /etc/cassandra/jmxremote.password
RUN sed -i '/monitorRole readonly/a cassandra readwrite' /etc/java-8-openjdk/management/jmxremote.access
RUN sed -i '/JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT/a\
\ \ JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=192.168.99.100"\
' /etc/cassandra/cassandra-env.sh
CMD ["cassandra", "-f"]
@franzwong
franzwong / app.go
Last active October 16, 2017 03:32
Quick sort implemented in Golang
package main
import (
"fmt"
"math/rand"
"time"
)
func Quicksort(elements []int, low int, high int) {
if (high > low) {
@franzwong
franzwong / BinaryTreeNode.java
Created December 3, 2017 09:36
BinaryTreeNode
public class BinaryTreeNode<T> {
private T value;
private BinaryTreeNode<T> leftChild;
private BinaryTreeNode<T> rightChild;
public T getValue() {
return value;
}
@franzwong
franzwong / VertxApplication.kt
Created April 6, 2018 11:27
Simple Vert.x Webapp
import io.vertx.core.Vertx
import io.vertx.core.json.Json
import io.vertx.ext.web.Router
data class Person(
val name: String,
val nationality: String
) {
}
@franzwong
franzwong / coding_guideline.md
Last active April 11, 2018 00:52
Coding guideline

Coding guideline

Coding recommendation

  • Composition over inheritance
  • Extract code to separate method instead of putting code comment
  • Return early
  • Don't ignore exception
  • Avoid singleton pattern
@franzwong
franzwong / setup_local_dev_env_with_docker.md
Last active April 14, 2018 15:49
Setup local development environment with docker

Setup local development environment with docker

MySQL

Start MySQL docker

docker run --name local-mysql -d \
  -v <local data dir>:/var/lib/mysql \
 -e MYSQL_ROOT_PASSWORD= \