-
이맥스 버퍼, 윈도우, 프레임 그리고 새로운 기능 탭Programmer/Emacs 2022. 5. 10. 21:04
이맥스 27.1의 다중 편집 UX에 새로운 기능인 탭이 포함되었다. 이 글에서는 이맥스의 기존 다중 편집 UX인 버퍼, 윈도우, 프레임에 대해서 간단하게 설명하고, 탭을 사용해 본 후기와 기존 방법과 비교, 개인적인 추천 방법까지 소개하겠다. 버퍼는 이맥스와 외부 I/O를 연결하는 인스턴스로 편집 중인 텍스트, 열려 있는 파일, 이맥스에서 구동한 프로세스 입출력 등과 연결되어 있다. 이 버퍼는 윈도우를 통해서 사용자에게 보여진다. 버퍼가 윈도우를 통해서 안보이더라도 후면에 여전히 존재하며 자신의 기능을 수행한다. 윈도우는 디스플레이 공간(프레임)을 전부 차지하여 하나만 보여질 수도 있고, 타일처럼 여러 개로 분할된 공간으로 표시될 수도 있다. 요즘 UI 개념으로 보자면 화면 분할과 같다. 프레임은 GUI..
-
구루 개발자의 개발 방법Life/Software Engineer 2021. 11. 29. 08:52
나는 실무를 제대로 안해본 사람들이 실무이야기를 하는 것에 대한 거부감을 가지고 있다. 실무는 그냥 천방지축 얼렁뚱땅 빙글빙글 돌아가는 전문가들의 일상인데 조은, John Cho 조은, John Cho(@euncho__) 님 | 트위터 @euncho__ 님 언뮤트하기 @euncho__ 님 뮤트하기 팔로우 @euncho__ 님 팔로우하기 팔로잉 @euncho__ 님 팔로우 중 언팔로우 @euncho__ 님 언팔로우하기 차단됨 @euncho__ 님이 차단됨 차단 해제 @euncho__님 차단 해 twitter.com 조은님의 트윗을 읽고, 구루 개발자에 대한 환상을 가졌던 내가 떠올랐다. 그런 개발자라고 생각되는 분을 만나고 바뀐 내 생각을 적었다. 이 트윗의 반응이 꽤 좋았다. 그리하여 블로그에 옮겨 적는..
-
깃털처럼 가벼운 Emacs인 mg의 키바인딩Programmer/Emacs 2021. 10. 25. 11:26
기본 키 바인딩 Category Key Binding Command Leaving Mg C-z suspend-emacs C-x C-c save-buffers-kill-emacs Files C-x C-f find-file C-x C-s save-buffer C-x s save-some-buffers C-x C-q toggle-read-only Getting Help C-h C-h help-help C-h a apropos C-h b describe-bindings C-h c describe-key-briefly Error Recovery C-g keyboard-quit C-x u undo C-_ undo C-l recenter Incremental Search C-s isearch-forward C-r i..
-
러스트로 MPEG-4 파일 시스템 라이브러리를 만들어보자.Streaming Media/Media Tech 2021. 7. 12. 13:33
스푼라디오에 재직하던 시절 작성한 "러스트로 MPEG-4 파일 시스템 라이브러리를 만들었던 경험"을 소개합니다. ISO BMFF를 구현한 순수한 러스트 크레이트는 전부 인큐베이팅 수준에 불과했습니다. 미디어 데이터를 읽어서 재생할 수도 인코딩된 데이터를 저장할 수도 없었습니다. 새로운 크레이터를 만들까 고민하다가, 약간이라도 진행된 mp4rs를 선택하여 사용 가능한 수준으로 개선하기로 했습니다. https://medium.com/spoontech/rust로-mpeg-4-파일-시스템-라이브러리를-만들어보자-4dd73e3bf77b 전체 내용은 원문으로 확인하세요. 추가 mp4rs에서 mp4-rust로 이름이 바뀌었다. 코드는 https://github.com/alfg/mp4-rust에서 문서는 https:/..
-
원자적(atomic) 연산과 순서(ordering) 제약Programmer/Computer Science 2021. 7. 12. 12:37
스푼라디오에 재직하던 시절 작성한 "원자적 연산과 순서 제약"에 관한 글을 소개한다. 멀티코어, 멀티쓰레드 환경의 고성능 병렬(parallel) 프로그래밍에는 여러가지 함정이 있다. 그중에 하나는 프로그래머의 의도와는 상관없는 시스템의 최적화이다. 이 글은 시스템 최적화에 프로그래머의 의도를 전달하는 두가지 기법, 원자적(atomic) 연산과 순서(ordering) 제약을 소개한다. https://medium.com/spoontech/원자적-atomic-연산과-순서-ordering-제약-ed25e39c4646 전체 내용은 원문으로 확인하자.
-
언어별 형식 출력 함수 비교Programmer/Programming 2021. 7. 9. 12:50
언어별 형식 출력 함수와 형식 변환 지정자 C Go C++ fmt Rust Python Javascript ES6 Template literals Common Lisp 표준출력 printf( "%d", 3) fmt.Printf( "%d", 3) fmt.print( "{}", 3) print!( "{}", 3) print( "{}".format(3)) let n = 3; console.log( `${n}`) (format t "~d" 3) 파일출력 fprintf( fh, "%d", 3) fmt.Fprintf( fh, "%d", 3) fmt.print( fh, "{}", 3) write!( fh, "{}", 3) print( "{}".format(3), file = fh) let n = 3; fs.write..
-
강화도 루지는 위험해요Life/Society 2021. 2. 15. 23:48
강화도에서 루지를 타고 내려온 막내 아이의 얼굴이 사색이 되었다. 어깨를 움켜쥐고 아프다고 했다. 이유를 물었더니 루지가 뒤집혀져서 다쳤고, 속도를 조절하지 못해서 무서웠단다. 꽤나 긴 거리를 무서운 속도로 질주하며 중간 중간 속도에 못이겨 뒤집어지기도 했다는 말이다. 어떻게 된 일인가? 그림과 글로 설명하겠다. 루지의 레버는 아래 그림과 같다. 당기지 않으면 ①의 위치에 있다. 여기에 레버가 위치하면 바퀴가 움직이지 않는다. 말하자면, 주차 상태인 셈이다.레버를 힘있게 당겨서 ② 위치로 가다가보면, 어느 지점에서 주차 브레이크가 풀린다. 루지는 브레이크 없이 자유롭게 가속하며 비탈길을 내려갈 수 있다. ②에서 ③으로 당기면 자동차의 풋브레이크 처럼 서서히 제동이 걸린다. ①(주차 브레이크)와 다르게 ③..
-
여러가지 데이터 표현 양식 비교Programmer/Computer Science 2020. 3. 11. 11:11
XML - 과거의 찬란했던 데이터 교환 양식(라떼는 말이야~). 지금은 JSON에 밀려... XML XML은 EXtensible Markup Language의 약어로써, 데이타를 저장하거나 주고받는데 사용하는 마크업(markup) 언어이다. 특징과 장단점 뛰어난 호환성을 제공한다. 많은 프로그램 언어와 웹, 소프트웨어에서 XML을.. unipro.tistory.com 유연함 시스템이 읽고/쓰기 쉬움 유효성 검증(Validation) 주석 IDE의 지원 사람이 읽고 쓰기 어려움 장황함 유연하고 시스템 친화적이며 데이터 검증에 매우 강력하다. 따라서, 엔터프라이즈에서는 여전히 강한 면모가 있다. 하지만, 개발과 디버깅은 사람이 한다. 사람이 읽고 쓰기 어려다는 것은 치명적인 단점이다. JSON - "왕위를 ..