Skip to content

Instantly share code, notes, and snippets.

@ariellephan
ariellephan / gist:1710007
Created January 31, 2012 11:28
Ruby 1.2
class Person
attr_accessor :name, :age
def initialize(name, age)
@name = name
@age = age.to_i
end
def inspect
"#@name (#@age)"
end
end
#Newbie programmer
def factorial(x):
if x == 0:
return 1
else:
return x * factorial(x - 1)
print factorial(6)
#First year programmer, studied Pascal
@ariellephan
ariellephan / cron_clean.sh
Created May 24, 2012 23:35
Shell script to keep system clean
#!/bin/bash
OLDCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')
CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
YELLOW="\033[1;33m"
RED="\033[0;31m"
ENDCOLOR="\033[0m"
@ariellephan
ariellephan / Swich tab in Sublime
Created August 3, 2013 05:18
switch tab in sublime
[
{ "keys": ["ctrl+pagedown"], "command": "prev_view" },
{ "keys": ["ctrl+pageup"], "command": "next_view" }
]
@ariellephan
ariellephan / intefaceabtract
Created February 26, 2015 09:44
loose interface vs abstract in php
interface Mail {
public function sendMail();
public function getFuel();
}
abstract class MyAbstractClass implements Mail {
function myAbstractFunction() {
echo "not abstract";
}
1. When there's unreleased feature on active branch A and its not on trunk.
-> Bring the feature to trunk and comment out on branch A so future merge won't bring the feature on branch A to trunk.
@ariellephan
ariellephan / gist:ecd42fd32e50a610b4da2db1c9d615ef
Last active September 13, 2016 00:07
jQuery best practice. patterns/anti patterns
//bad
$("#agree").bind("change", function() {
if ($("input[type=submit]").hasClass("disabled")) {
$("input[type=submit]").removeClass("disabled");
} else {
$("input[type=submit]").addClass("disabled");
}
});
//good
@ariellephan
ariellephan / gist:a1742faecc9fc47c86bced21d0b759d1
Created June 23, 2016 19:12
jsDoc improvement suggestions
1. search
2. auto list file/url that references current function/class/namespace
3. framework specific tags like Angular directive, controller, module
4. nested functions
@ariellephan
ariellephan / gist:0e869e20279c256928d73181ca5d71a7
Last active August 16, 2016 23:38
Front End Best Practices
1. Write semantic and accessible HTML5
Goals:
+ Avoid div soup/code bloat
+ Accessibiity
+ Improve SEO
a/ Semantic aka has meaning
http://html5doctor.com/downloads/h5d-sectioning-flowchart.pdf
b/ Content models:
https://www.w3.org/TR/2011/WD-html5-20110525/content-models.html#kinds-of-content
@ariellephan
ariellephan / ycombinator.js
Last active August 17, 2016 19:37
Y Combinator in js
// Credits: http://matt.might.net/articles/implementation-of-recursive-fixed-point-y-combinator-in-javascript-for-memoization/
// Ymem takes a functional and an (optional)
// cache of answers.
// It returns the fixed point of the functional
// that caches intermediate results.
function Ymem(F, cache) {
if (!cache)
cache = {} ; // Create a new cache.