Skip to content

Instantly share code, notes, and snippets.

View neolee's full-sized avatar

Neo Lee neolee

View GitHub Profile
@neolee
neolee / Doom info
Last active November 25, 2022 04:38
❯ doom info
generated Nov 25, 2022 12:37:56
system MacOS 13.0 Darwin 22.1.0 arm64
emacs 28.2 ~/.emacs.d/
doom 3.0.0-pre PROFILE=_@0 HEAD -> master, origin/master, origin/HEAD
9d4d5b75 2022-10-31 16:18:16 +0100 ~/.doom.d/
shell /opt/homebrew/bin/zsh
features ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS
XIM ZLIB
(setq org-agenda-files-base org-agenda-files)
(defun vulpea-project-p ()
"Return non-nil if current buffer has any todo entry.
TODO entries marked as done are ignored, meaning that this
function returns nil if current buffer contains only completed
tasks."
(seq-find ; (3)
(lambda (type)
@neolee
neolee / treenode_start.py
Created August 11, 2020 07:53
Starter Source Code for WoP Assignment #3
# coding=utf-8
class TreeNode:
def __init__(self, name='root', data=None, parent=None, children=None):
self.name = name
self.data = data
if parent:
assert isinstance(parent, TreeNode)
parent.add_child(self)
@neolee
neolee / garfield.py
Created July 18, 2020 06:02
Neo's assignment #1
from time import sleep
from termcolor import colored
import random
from simpleeval import simple_eval
class Bot:
wait = 1
require('console-stamp')(console, '[HH:MM:ss.l]')
const request = require('request')
const categories = [4754, 4755, 4756, 4635, 4634, 4620, 4892, 4621, 4622]
function getData(id) {
console.log("Started fetching courses in category " + id)
import Foundation
func randomDouble() -> Double {
return Double(arc4random_uniform(UInt32.max)) / Double(UInt32.max)
}
struct CalculatorBrain {
var numberFormatter: NumberFormatter?
@neolee
neolee / Equity.md
Last active August 29, 2015 14:10 — forked from isaacsanders/Equity.md

This is a post by Joel Spolsky. The original post is linked at the bottom.

This is such a common question here and elsewhere that I will attempt to write the world's most canonical answer to this question. Hopefully in the future when someone on answers.onstartups asks how to split up the ownership of their new company, you can simply point to this answer.

The most important principle: Fairness, and the perception of fairness, is much more valuable than owning a large stake. Almost everything that can go wrong in a startup will go wrong, and one of the biggest things that can go wrong is huge, angry, shouting matches between the founders as to who worked harder, who owns more, whose idea was it anyway, etc. That is why I would always rather split a new company 50-50 with a friend than insist on owning 60% because "it was my idea," or because "I was more experienced" or anything else. Why? Because if I split the company 60-40, the company is going to fail when we argue ourselves to death. And if you ju

@neolee
neolee / cheerio.js
Created May 17, 2013 13:45
Using cheerio and request to scrape clojure.github.io/clojure
function runClojureOrg(redis) {
var request = require('request');
var cheerio = require('cheerio');
var urlClojureAPI = 'http://clojure.github.io/clojure/';
console.log('Start scrapping index: ' + urlClojureAPI);
redis.flushdb();
function runClojureDocsOrg(redis) {
var assert = require('better-assert');
var request = require('request');
var jsdom = require('jsdom');
// URL for web scrapping
var siteUrl = 'http://clojuredocs.org';
var category = 'clojure_core';
var pageUrl = siteUrl + '/' + category;
@neolee
neolee / primes
Created March 23, 2013 14:15
Lazy primes generator by using a map, a Sieve of Eratosthenes modified by Christophe Grand (co-author of the great book 'Clojure Programming').
(defn primes []
(letfn [(enqueue [sieve n step]
(let [m (+ n step)]
(if (sieve m)
(recur sieve m step)
(assoc sieve m step))))
(next-sieve [sieve candidate]
(if-let [step (sieve candidate)]
(-> sieve
(dissoc candidate)