Posts by Year

2024

#TIL sudo 명령어에서 유지할 환경 변수 설정

less than 1 minute read

시키는대로 설치 명령을 입력해도 실패해서 알아보니 환경 변수 문제였다. 그냥 sudo 커맨드를 사용하면 환경 변수로 설정된 프록시(proxy) 서버 세팅이 적용되지 않았기 때문이다. sudo -E 커맨드로 실행하면 환경 변수를 유지해서 설치했던 기억이 있다. 매번 sudo -E 를...

#TIL git diff 문맥 파악에 도움을 주는 hunk-header

less than 1 minute read

git diff에서 변경된 줄을 나타내는 Hunk를 보여준다. @@ -418,6 +418,8 @@ 이런 식으로 라인 넘버를 같이 표시해 준다. 여기에 header를 출력해 변경 사항에 정보를 제공한다. 예를 들어 header에 포함된 함수나 클래스 선언을 보여줄 수 있다. 라인 넘...

Back to Top ↑

2023

#TIL #elixirlang mix.lock에 있지만 사용하지 않는 의존성 검사

1 minute read

mix.exs 파일을 수정해 의존성을 추가해서 라이브러리를 사용하다가 mix.exs 파일에서만 의존성을 제거한다. mix.lock 파일에서도 지워야하는데, 그대로 놔뒀다. 이제 mix.lock 에 있어서 다운로드하지만 사용하지 않는 쓰레기 의존성이 생겼다.

#TIL #windows 수신 대기 port 확인 및 해당 프로세스 죽이기

less than 1 minute read

서버를 실행하면 특정 포트(port)를 열다가 실패하는 경우가 있다. 이미 수신 대기하고 있는 포트라는 메시지가 보인다. windows에서는 netstat, findstr, taskkill 프로그램을 사용해서 특정 포트를 수신 대기하고 있는 프로세스의 ID를 찾아 해당 프로세스를 ...

#TIL #elixirlang 긴 코드를 편하게 테스트하기

less than 1 minute read

elixir 대화형 셸(interactive shell)인 iex를 사용하면 코드를 evaluation해서 모듈을 실시간으로 추가할 수 있고 실행할 수 있다. iex 프로그램을 실행한다. 함수를 실행한다. 코드를 수정한다. 다시 컴파일한다. 함수를 실행한다. 이런 빠른 이터레이션이...

#TIL macOS에서 비밀번호를 아는 PDF 파일 암호화 풀기

less than 1 minute read

연말 정산을 하다가 암호가 걸린 PDF를 첨부해야 할 일이 생겼다. 암호를 풀고 첨부해야 하는데, macOS에서 제공하는 미리보기 프로그램으로 PDF를 열어서 암호화하지 않은 PDF로 익스포트 하는데 잘되지 않는다. 암호화가 풀린 게 아니라 내가 입력한 비밀번호를 기억해서 바로 열...

#TIL winget 패키지 설치 옵션 덮어쓰기

less than 1 minute read

winget을 사용하면 windows에서 커맨드라인으로 프로그램을 설치할 수 있다. apt-get, brew 처럼 손쉬운 설치가 windows에서 가능하다. 회사에서 코드 사이닝을 안 한 powershell 스크립트 파일을 사용 못 하게 도메인 정책으로 막아놓곤 해서 사용 못하던 ...

Back to Top ↑

2022

#TIL 윈도우 터미널(windows terminal)에서 git bash 사용하기

less than 1 minute read

마이크로소프트에서 만든 윈도우 터미널(windows terminal)은 셸(shell)을 호스팅하는 애플리케이션(application)이다. 즉 이 애플리케이션을 사용해 cmd, bash, powershell 등을 띄울 수 있다. 화면 분할도 지원해서 그동안 사용하던 ConEmu를...

#TIL 에어팟(airpod) 자동 연결 옵션 변경

less than 1 minute read

’에어팟(AirPods, 2019) 2세대’를 잘 사용하고 있다. iOS, iPadOS 14 이후로 지원되는 자동 전환을 켜서 사용하고 있었다. macOS도 지원돼서 기기간 연결이 잘 넘어간다. macOS에서 음악을 듣다가 별도 작업 없이 iOS로 듀오링고를 켜서 영어 공부를 하면...

#TIL 닌텐도 스위치에 저장된 스크린샷 옮기기

less than 1 minute read

닌텐도 스위치와 컴퓨터를 USB 케이블로 연결한다. 바로 인식하지 않는데, 별도 프로그램이 필요하다. 닌텐도 스위치 OS가 안드로이드인가보다. Android File Transfer 프로그램을 설치해야 한다.

Back to Top ↑

2021

#TIL #elixirlang iex에서 pid 만드는 법

less than 1 minute read

프로그래밍할 때는 숫자를 인자로 넣어서 pid(프로세스 아이디)를 만들 일이 없지만, elixir 대화형 셸(iex, elixir’s interactive shell)을 사용해 프로세스에 직접 메시지를 보낼 때, 가끔 사용한다.

#TIL #elixirlang EUC-KR 인코딩을 utf-8 인코딩으로 변환

less than 1 minute read

때가 어느 때인데, EUC-KR 인코딩을 UTF-8 인코딩으로 변환하는 걸 찾아봐야 하는가? 대부분 UTF-8 인코딩을 사용하고 있지만 많은 레거시 시스템은 아직도 EUC-KR 인코딩을 사용하고 있다.

Back to Top ↑

2020

Back to Top ↑

2019

#TIL #jenkins #git sparse checkout으로 사용 공간을 아껴쓰자

less than 1 minute read

빌드 머신 저장 공간이 가득 찰 일은 없겠지? 저장 공간 FULL이 나서 빌드 몇 번 실패해보면 정신을 차린다. 너무 헤프게 쓰고 있었구나. 게다가 mac mini라 저장 공간을 바로 늘릴 수도 없다. 필요한 것만 checkout 해서 쓰자. checkout 속도가 빨라져 빌드하는...

#TIL #batch 무한 루프

less than 1 minute read

C:\> help for FOR /L %변수 IN (시작,단계,끝) DO 명령 [명령-매개 변수] 집합은 단계별로 증가/감소하는 시작부터 끝까지의 일련의 숫자입니다. 따라서 (1,1,5)는 1 2 3 4 5를 나타내며 (5,-1,1)은 5 4 3 2 1을 나...

#TIL #linux #sed 첫번째 라인만 교체

less than 1 minute read

$ cat test.csv header1,header2,header3 1,2,3 2,3,1 3,1,2 $ sed -i.bak -e "1s/[^,]/x/g” test.csv $ cat test.csv xxxxxxx,xxxxxxx,xxxxxxx 1,2,3 2,3,1 3,1,2

Back to Top ↑

2018

#TIL #PostgreSQL pager off

less than 1 minute read

대화형 터미널(interactive terminal)에서 쿼리 결과가 길면 pager가 편하다. 한 페이지에 결과가 다 안 보이기 때문이다. 앞뒤로 왔다 갔다 하면서 확인할 수 있어서 편하다. 하지만 결과가 짧거나 결과를 참고하며 이후 쿼리를 짜고 싶을 때는 pager가 방해된다.

#TIL #elixirlang get_in 함수에 default 값을 넣는 곳은 없나?

less than 1 minute read

리턴 값이 nil인지 검사해서 다른 값을 사용하는 것보단 nil일 때, 사용할 default 값을 인자로 넘길 수 있다면 로직이 깔끔해진다. 인자를 3개 받는 get_in/3을 기대했지만, get_in/2 밖에 없다. 필요하면 만들어 써야 한다.

#TIL #docker 종료하지 않고 계속 exec로 명령을 할 수 있게 하려면

less than 1 minute read

docker를 tpass 프로그램을 테스트하는 데 사용했다. 간단한 테스트다. 다음과 같은 순서로 진행한다. docker exec 명령을 내린다. 결과값을 검사한다. 다만 이렇게 하려면 컨테이너가 입력을 받을 수 있는 상태여야 한다. 즉, 실행 상태여야 한다. 종료하면 안 된다.

#TIL vagrant로 docker 세팅

less than 1 minute read

’#TIL vagrant로 centos, docker 세팅’ 글처럼만 해도 편했는데, 더 편하게 할 수 있다.

#TIL #git origin 리모트 저장소 변경

less than 1 minute read

$ cd existing_repo $ git remote rename origin old-origin $ git remote add origin new_repo_url $ git push -u origin --all $ git push -u origin --tags $ git re...

#TIL #vim 변경이 일어난 곳을 기억한다

less than 1 minute read

vim은 변경이 일어난 곳을 기억한다. 끝이 안 보이는 문서에서 마지막 수정한 위치로 가려고 u 키로 undo를 해서 가던 무식한 날들은 이제 안녕.

#TIL #vim goto file, goto definition

less than 1 minute read

g d 키는 로컬 정의(local definition)로 이동하고 g D 키는 글로벌 정의로 이동한다. 소스 코드에서 많이 사용한다. g d 키를 눌러서 정의를 보고 Ctrl o 키를 눌러서 원래 자리로 온다.

Back to Top ↑

2017

#TIL #vim #visual_studio #emacs jump forward, backword 키바인딩 통일

less than 1 minute read

vim은 커서 위치를 jump list로 관리한다. `, /, n 등 커맨드로 이동할 때, 위치를 기록해 놓는다. 커서 위치를 바꾼다고 모두 저장하진 않는다. hjkl 키처럼 깨작깨작 움직이는 커맨드는 제외한다. jump list에 기록된 위치를 CTRL-I 키와 CTRL-O 키로...

#TIL #ExifTool 이미지에 지오태깅

less than 1 minute read

지오태깅이 안 되는 옛날 카메라를 사용하고 있다. GPS 로그는 Moves 앱을 사용해서 기록하고 Moves Export를 사용해서 GPX 포맷으로 저장한다.

#TIL MSYS2? MinGW?

1 minute read

MSYS2 refers to the libraries and programs that use the POSIX emulation layer (“msys2 runtime”, derived from Cygwin’s cygwin1.dll). It i...

#TIL #vim 찾기 이후 찾은 단 강조를 지우고 싶을 때

less than 1 minute read

* 키로 찾던가 아님 / 커맨드로 찾던가하면 일치하는 단어가 강조된다. 다음 찾기를 할 때까지 강조가 유지된다. 지우고 싶을 때면 /adfafddsaf 처럼 일치하는 단어가 없게 마구잡이로 넣어서 강조를 지웠다.

Back to Top ↑

2016

#TIL #xcode #vim 지원 플러그인 xvim

less than 1 minute read

Since Apple decided not to load 3rd party plugins, we have to make change to it. What we have to do overall is to re-codesign Xcode. This allows us to loa...

#TIL #git 이전 commit 쪼개기

less than 1 minute read

Start an interactive rebase with git rebase -i <commit>^, where <commit> is the commit you want to split. In fact, any commit range will ...

#TIL #unix #bash exec builtin command

less than 1 minute read

#!/bin/sh ... export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH" exec node_modules/.bin/hubot --name “hubot" "$@...

#TIL #unix 방금 전 명령 실행하기

less than 1 minute read

$ gem update jemoji Updating installed gems Updating jemoji Fetching: jemoji-0.6.2.gem (100%) ERROR: While executing gem ... (Gem::FilePermissionError) ...

#TIL #docker 컨테이너에 파일 복사

less than 1 minute read

$ docker exec -i gerrit ls /var/gerrit/review_site/plugins delete-project.jar events-log.jar $ docker cp reviewassistant.jar gerrit:/var/gerrit/review_site/...

#TIL #gerrit 플러그인 빌드

less than 1 minute read

$ git clone --recursive https://gerrit.googlesource.com/gerrit $ cd gerrit/plugins $ git clone https://gerrit.googlesource.com/plugins/reviewassistant/ $ cd...

#TIL docker 용어 image, registry, container, data volume

1 minute read

레지스트리에서 이미지를 다운로드 받고 격리해서 실행하는데 필요한 설정을 추가해서 컨테이너를 생성해 실행한다. 데이터 볼륨을 만들어서 컨테이너에 마운트해서 사용할 수 있다.

Back to Top ↑

2014

Back to Top ↑

2013

인용구 저장소에서 랜덤으로 뽑아서 트윗

less than 1 minute read

바퀴 자국 안에 빠지게 되면 아무리 바퀴를 돌려도 계속 제자리고, 유일한 진척이라고는 더 깊게 파이는 자국뿐이다. from 트와일라 타프, 'The Creative Habit' {프로그래머의 길, 멘토에게 묻다}— 프로그래밍 책 인용 봇 (@book_quo...

인용구들을 어디에 저장할까?

less than 1 minute read

랜덤으로 뽑아 트윗할 인용구들을 어디에 저장할까? 가장 인기 있는 인용구나 이런 정보를 수집하고 싶다. 이러면 DB를 사용하는 게 가장 편하다. 하지만 그건 좀 먼 일. 이건 나중에 고민하기로 한다.

oauth 세팅을 어디에 저장할까

less than 1 minute read

root path에 config.clj를 뒀다. 실수로 체크인하지 않게 gitignore에 추가. 귀찮은 parsing을 할 필요 있겠어? clojure map을 사용했다. 이 파일을 평가하면 map이 만들어진다. 편하네.

hello twitter

less than 1 minute read

Hello, Twitter!— 프로그래밍 책 인용 봇 (@book_quote_bot) May 8, 2013

Back to Top ↑