Skip to content

Instantly share code, notes, and snippets.

View elegantcoder's full-sized avatar

Constantine Kim 김현진 elegantcoder

View GitHub Profile
@elegantcoder
elegantcoder / git-mv-singularize
Last active October 20, 2023 11:02
Git-mv-singularize
# Get the original name and the singularized name
original_name="$1"
singularized_name=$(singularize "$original_name")
# Compare the original name and the singularized name
if [[ "$original_name" != "$singularized_name" ]]; then
# If they are different, execute git mv
git mv "$original_name" "$singularized_name"
fi
@elegantcoder
elegantcoder / README.md
Created September 2, 2012 15:31
Most Common Regexp
@elegantcoder
elegantcoder / OAuth2Response.type.ts
Created August 14, 2022 15:30
OAuth2Response.type.ts
// Following RFC6749 5.1 Successful Response
export interface OAuth2SuccessfulResponse {
access_token: string;
token_type: string;
expires_in?: number;
refresh_token?: string;
scope?: string;
}
@elegantcoder
elegantcoder / while-in-workflow.yaml
Last active March 4, 2022 14:15
You can use while in workflow `steps.run`
name: using while in Github Workflow
on:
push:
branches:
- '**'
jobs:
test-loop:
timeout-minutes: 2
@elegantcoder
elegantcoder / findFirstAnnotatedArgument.java
Last active September 25, 2020 16:04
[findFirstAnnotatedArgument] #java #springboot #@aspect
@Aspect
public class ControllerJsonStyleAdvice {
private Object findFirstAnnotatedArgument(JoinPoint joinPoint, Class annotation) {
Object[] args = joinPoint.getArgs();
MethodSignature signature = (MethodSignature) joinPoint.getSignature();
Method method = signature.getMethod();
Annotation[][] parameterAnnotations = method.getParameterAnnotations();
for (int i = 0; i < parameterAnnotations.length; i++) {
@elegantcoder
elegantcoder / gist:9b6592c4ea6e9e6464c7a7792b1473a6
Created August 27, 2020 07:45 — forked from rctay/gist:819924
[Java][GAE][Mockito] testing servlet requests/responses
import static org.junit.Assert.*;
import static org.junit.matchers.JUnitMatchers.*; // for non-hamcrest core matchers
import static org.mockito.Mockito.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
@elegantcoder
elegantcoder / PojoFactoryWithDI.java
Last active August 27, 2020 04:41
[PojoFactoryWithDI] #java #spring
import org.springframework.stereotype.Component;
import lombok.RequiredArgsConstructor;
@Component
@RequiredArgsConstructor
class AFactory {
private final AComponent aComponent;
@elegantcoder
elegantcoder / korean_marker.rb
Last active February 16, 2019 11:41
한글 은/는, 이/가 (Powered by ActiveSupport::Multibyte::Chars)
# require 'active_support/all'
def korean_topic_marker(str)
k = str[-1] # last one char
return '는' if k.mb_chars.decompose.size < 3 # 종성이 없는 경우
return '은'
end
def korean_subject_marker(str)
k = str[-1] # last one char
@elegantcoder
elegantcoder / sidekiq.py
Created July 30, 2018 12:27
Sidekiq.py
from redis import Redis
import simplejson
import os
class Sidekiq(object):
"""Dirt simple Sidekiq client in Python. Can be used to create jobs."""
def __init__(self):
host = os.environ['SIDEKIQ_REDIS_HOST']
port = os.environ['SIDEKIQ_REDIS_PORT']
db = os.environ['SIDEKIQ_REDIS_DB']
@elegantcoder
elegantcoder / extract_korean_initials.rb
Last active July 22, 2018 14:44
한글 초성 분리기
# 삼성전자 => ㅅㅅㅈㅈ, 유안타제3호스팩 => ㅇㅇㅌㅈ3ㅎㅅㅍ
def extract_korean_initials(keyword)
initials = ['ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ', 'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ']
# hangul_range = '가'..'힣'
hangul_first = 44032 # '가'.ord
size = 588 # '까'.ord - '가'.ord
keyword.split('').collect do |k|