Skip to content

Instantly share code, notes, and snippets.

@ngzhian
ngzhian / cs2103-eclipse-formatter-profile.xml
Created April 27, 2014 05:13
Eclipse Java Formatter Profile for CS2103T
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="12">
<profile kind="CodeFormatterProfile" name="CS2103T" version="12">
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
@ngzhian
ngzhian / ScissorsPaperStoneSortExpt.java
Created April 28, 2014 14:19
An experiment to see how sorting Scissors Paper Stone (objects with circular ordering) will work out
import java.util.Collections;
import java.util.List;
import java.util.Vector;
public class ScissorsPaperStoneSortExpt {
public static void main(String[] args) {
List<Move> list = new Vector<Move>();
list.add(Move.paper());
list.add(Move.scissors());
@ngzhian
ngzhian / uberdata
Created August 25, 2014 16:37
Data chart js for ez
var data = {
"NED": {
"positions": 16,
"fillKey": "MEDIUM"
},
"IRL": {
"positions": 1,
"fillKey": "LOW"
},
"MEX": {
@ngzhian
ngzhian / d3clone
Created August 25, 2014 16:45
d3 clone
!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null!=n&&!isNaN(n)}function e(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function r(n){return n.length}function u(n){for(var t=1;n*t%1;)t*=10;return t}function i(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function o(){}function a(n){return ia+n in this}function c(n){return n=ia+n,n in this&&delete this[n]}function s(){var n=[];return this.forEach(function(t){n.push(t)}),n}function l(){var n=0;for(var t in this)t.charCodeAt(0)===oa&&++n;return n}function f(){for(var n in this)if(n.charCodeAt(0)===oa)return!1;return!0}function h(){}function g(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function p(n,
@ngzhian
ngzhian / stackclock
Last active August 29, 2015 14:10
Clock question
from __future__ import division
from datetime import datetime, time, timedelta
import unittest
ONE_SECOND = timedelta(seconds=1)
HOUR_HAND_DEG_PER_SECOND = 1/120
HOUR_HAND_DEG_PER_MIN = 1/2
HOUR_HAND_DEG_PER_HOUR = 30
@ngzhian
ngzhian / stackclock-answers
Last active August 29, 2015 14:10
The times for stackclock
00:16:22
00:49:05
01:21:49
01:54:33
02:27:16
03:00:00
03:32:44
04:05:27
04:38:11
05:10:55
@ngzhian
ngzhian / gist:553296fb5c606a8156917385bc0ad626
Created February 13, 2017 07:44
Convert ^M to new lines
:%s/<Ctrl-V><Ctrl-M>/\r/g
http://stackoverflow.com/questions/811193/how-to-convert-the-m-linebreak-to-normal-linebreak-in-a-file-opened-in-vim
@ngzhian
ngzhian / bst_to_ll.ml
Created April 8, 2017 19:27
Convert a binary search tree into a linked list in place.
(**
* This file contains 3 ways to solve the problem of:
*
* converting a binary search tree into a sorted linked list in-place
*
* In place means that no extra memory should be used, no structures are copied
*
* 1. Using ref nodes
* 2. Using records with mutable fields
* 3. Using immutable Cons and Nil linked list
@ngzhian
ngzhian / claim-cs2100-lab.js
Created April 13, 2017 03:12
CS2100 MYSOC claim script
var Claim = function () {
// ***********************************************************
// REQUIRED CONSTANTS, DO NOT MODIFY
// ***********************************************************
var ASSIGNMENT_MARKING = 'Assignment Marking';
var COURSE_MATERIAL_PREPARATION = 'Course Material Preparation';
var TUTORIAL = 'Tutorial';
var CONSULTATION = 'Consultation with students';
var MIDTERM_MARKING = 'Midterm Marking';
var PROJECT = 'Project Evaluation';
@ngzhian
ngzhian / bash_snippets.sh
Last active April 16, 2017 11:46
bash snippets
# read line by line from file
while read p; do
echo $p
done <file
# change first letter from upper to lower
q="$(tr '[:upper:]' '[:lower:]' <<< ${p:0:1})${p:1}"
# sed variable substitution
sed "s/$var/r_str/g" file_name >new_file