Skip to content

Instantly share code, notes, and snippets.

View evan-moon's full-sized avatar
🐢
거북이처럼 살기

Evan Moon evan-moon

🐢
거북이처럼 살기
View GitHub Profile
@evan-moon
evan-moon / MyContract.sol
Created November 9, 2021 12:59
솔리디티 연습
pragma solidity ^0.8.3;
contract MyContract {
address payable private owner;
uint256 totalTokens;
constructor() public payable {
owner = payable(msg.sender);
totalTokens = 1000000000000;
}
@evan-moon
evan-moon / repo-migration.sh
Created May 22, 2020 13:57
비트버킷 -> 깃허브 레포 마이그레이션 쉘 스크립트
#!/bin/bash
echo '========== Welcome to Bitbucket -> Github migration!!! =========='
echo 'Please insert github repository URL ->'
read -p '[URL] : ' githubURL
echo 'Checkout to master branch...'
git reset --hard HEAD
git co master
@evan-moon
evan-moon / useCircularCounter.ts
Last active February 11, 2020 15:41
0 ~ max까지의 값을 무한하게 순환할 수 있는 카운터 훅
import { useState, useCallback } from 'react';
export function useCircularCounter(
initialValue: number = 0,
max: number
): [number, () => void, () => void, () => void] {
const [value, setValue] = useState(initialValue);
const init = useCallback(() => setValue(0), []);
@evan-moon
evan-moon / extends-object-without-create-method.js
Last active October 26, 2019 14:47
Object.create 메소드 없이 상속 구현
function SuperClass (name = 'name') {
this.name = name;
}
SuperClass.prototype.say = function () {
console.log(`Hi, I am ${this.name}`);
}
function SubClass (name) {
SuperClass.apply(this, [name]);
}
@evan-moon
evan-moon / max_heap.js
Last active October 12, 2019 09:38
MaxHeap 구현체
class MaxHeap {
constructor (maxLevel = 1) {
this.nodes = [];
}
// phase2
insert (value) {
this.nodes.push(value);
this.bubbleUp();
}
@evan-moon
evan-moon / create-jira-issue-prepare-commit-msg.sh
Last active October 9, 2019 07:16
커밋 전에 JIRA 이슈 번호를 브랜치에서 따와서 넣는 쉘 스크립트를 Git의 prepare-commit-msg 훅에 입력
#!/bin/bash
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
NO_COLOR='\033[0m'
TILDE='~'
echo -e "[${YELLOW}Insert path of your project directory.${NO_COLOR}]"
let avg = 0;
const numbers = [];
function average (numbers = []) {
const sum = numbers.reduce((prev, current) => prev + current, 0);
return sum/numbers.length;
}
console.time('avg1');
for (let i = 1; i < 100001; i++) {
numbers.push(i);
@evan-moon
evan-moon / git_clean_up_local_branch.sh
Created July 27, 2019 02:21
리모트 저장소에서 지워진 브랜치를 로컬에서 삭제
#!/bin/bash
echo '====================================================================='
echo '========Please insert the directory name that you want to go========='
echo '====================================================================='
read -p '[Git Directory Path] : ' prompt
cd ~/$prompt
@evan-moon
evan-moon / mersenne_twister.js
Created July 27, 2019 02:14
메르센 트위스터 난수 생성 알고리즘
const N = 624;
const M = 397;
const F = 1812433253;
const UPPER_MASK = (2 ** 32) / 2; // 0x80000000
const LOWER_MASK = UPPER_MASK - 1; // 0x7fffffff
const MATRIX_A = 0x9908b0df;
class MersenneTwister {
constructor () {
@evan-moon
evan-moon / xorshift.js
Last active July 27, 2019 02:13
XOR Shift 128+ 난수 생성 알고리즘
const state = [1827981275, 1295982171];
function xorshift128plus () {
let s1 = state[0];
let s0 = state[1];
state[0] = s0;
s1 ^= s1 << 23;
s1 ^= s1 >> 17;
s1 ^= s0;