출력하기 print("이렇게 출력합니다") (message "이렇게 출력합니다") 이렇게 출력합니다 emacslisp-배워보기 표현식 이해하기 리스트 형태의 표현식이 계산될 때 좌에서 우로 계산 되며 첫번째 원소는 함수의 정의로 나머지 원소는 인자들로 계산된 후 함수를 호출하게 된다. 호출된 함수가 리턴하는 값을 그 표현식의 값(value)라고 부른다. (message "hello workd") hello workd (message "hello: %d" (+ 1 2)) hello: 3 메시지는 “hello: %“와 3을 argument로 받아 실핵된다. 심벌 이해하기 자신의 그대로 값으로 계산되지 않은 message + 를 심벌이라고 부른다....
SICP :: 설치방법(MacOs)
우선 brew로 Racket을 설정하고 racket에서 제공하는 SCHEME BatteryPack을 설치한다. brew install --cask racket raco pkg install sicp racket-mode 설정 emacs에서 문제를 풀기위해서 Paredit과 racket-mode를 설치하고 ob-racket을 설치한다. (use-package racket-mode :config (add-hook 'racket-mode-hook (lambda () define-key racket-mode-map (kbd "<f5>") 'racket-run) ) ) (use-package paredit :ensure t :config (dolist (m '(emacs-lisp-mode-hook racket-mode-hook racket-repl-mode-hook)) (add-hook m #'paredit-mode)) (bind-keys :map paredit-mode-map ("{" . paredit-open-curly) ("}" . paredit-close-curly) ) (unless terminal-frame (bind-keys :map paredit-mode-map ("M-[" ....
@angular/cli와 같은 At(@)이 포함된 package 이름은 왜 그럴까?
When you sign up for an npm user account or create an Org, you are granted a scope that matches your user or Org name. You can use this scope as a namespace for related packages. A scope allows you to create a package with the same name as a package created by another user or Org without conflict. 당신이 NPM user 계정을 만들거나, org를 만들면 사용자 또는 org이름과 일치된 scope가 제공된다....
ytd-dl
macos 설치 방법 # homebrew로 설치하기 brew install yt-dlp/taps/ytldp 아래와 같이 -F {URL} 옵션을 이용하면 다운로드 가능한 포맷을 얻을 수 있다. yt-dlp -F https://www.youtube.com/watch?v=kPTvTnKqXRY 만약에 내가 여기서 Mp3만 얻고 싶다면 아래와 같이 –audio-format mp3 -x {url}을 사용하면 된다. yt-dlp --audio-format mp3 -x https://www.youtube.com/watch\?v\=kPTvTnKqXRY
Racket 설치 및 emacs 개발 환경
https://docs.racket-lang.org/pollen/Installation.html 아래와 같이 환경변수를 bashprofile에 추가. export PATH="/Applications/Racket v{설치한 라켓의 버전}/bin:$PATH" emacs 설정 (use-package racket-mode :config (add-hook 'racket-mode-hook (lambda () define-key racket-mode-map (kbd "<f5>") 'racket-run) ) ) (use-package paredit :ensure t :config (dolist (m '(emacs-lisp-mode-hook racket-mode-hook racket-repl-mode-hook)) (add-hook m #'paredit-mode)) (bind-keys :map paredit-mode-map ("{" . paredit-open-curly) ("}" . paredit-close-curly)) (unless terminal-frame (bind-keys :map paredit-mode-map ("M-[" . paredit-wrap-square) ("M-{" . paredit-wrap-curly)))) (provide 'init-racket) racket file을 생성하고 아래와 같이 작성한 뒤에 F5를 눌렀을 때 잘 되면 문제 없음...
finalcut :: 자막 편집 워크 플로우
finalcut :: 영상에 자막 넣기 caption file > import > caption 자막 편집하기 이 상태에서 Ctrl + shift + c를 입력하면 와 같이 자막 편집 창이 뜹니다. 그리고 편집하고 ESC키를 입력하면 창이 닫히면서 편집을 이어갈 수 있습니다. 이걸 끝까지 반복하면 됩니다.
Generic Recursive Type Bound 이해하기(Item30)
문제 상황을 이해하기 위해서 다음과 같은 문제를 풀어 보자 interface Fruite { Integer getSize(); } // apple.java class Apple implements Fruit, Comparable<Apple> { private final Integer size; public Apple(Integer size) { this.size = size; } @Override public Integer getSize() { return size; } @Override public int compareTo(Apple other) { return size.compareTo(other.size); } } // orange.java class Orange implements Fruit, Comparable<Orange> { private final Integer size; public Orange(Integer size) { this....
Hugo :: 정적 블로깅 방법
설치 방법 brew install hugo 디렉토리 구조 만들기 hugo new site {blog_name} git submodule add -b master https://github.com/karohani/karohani.github.com/ public git submodule add https://github.com/budparr/gohugo-theme-ananke.git google에서 사이트가 검색 되도록 하기 Google Search Console에 SiteMap에 등록 https://www.google.com/webmasters 파일을 다운 받은 뒤에 static 폴더 안에 넣고 검증 버튼을 누르면 완료된다. DONEHugo Directory 구조 설명 The following is a high-level overview of each of the directories with links to each of their respective sections within the Hugo docs....
Emacs Lisp 이해하기
출력해보기 String 다루는 방법에 대해서 설명하라, 2가지 함수 string <-> int join-string regex memq progn org-add-link-type sort-lines Emacs Lisp Functions buffer display-buffer display-buffer-at-buttom display-buffer-no-window Overriding the default placement actions display-buffer-alist emacs-lisp으로 이것저것 {{c1::dfasdfasdlfij}} 출력해보기 M-x ielm (message "하이 %d" (+ 2 3)) #'(1 2 3) (cons 1 '(2 3 4)) ;; (1 2 3 4) (let ((a 2) (b 3)) (message "%s" (+ a b)) ) (let (a b) (setq a 2) (setq b 3) (message "%s" (+ a b)) ) ;; (message a) // let은 local variable ;; (let ((a 2) (b 3) (c (+ a b)))) // error 심볼은 각각 평가 되므로 초기화 단계에서 서로 참조 불가 (let* ((a 2) (b 2) (c (+ a b))) (message "%s" (+ a b c)) ) String 다루는 방법에 대해서 설명하라, 2가지 함수 (split-string "123123 123123 123123" " ") ;; ("123123" "123123" "123123" (concat "a" "b") string <-> int join-string regex memq (memq 1 '(7 1 2 3)) (memq ELT LIST)로 정의 되어 있고, ELT가 LIST의 엘리먼트라면 non-nil을 반환한다....
clojure :: 환경 설정
환경 설정 brew install clojure/tools/clojure