분류 전체보기
-
러스트(Rust)를 위한 SyntaxHighlighter 3.0 플러그인 개선Programmer/Programming 2019. 2. 14. 18:27
2019년 Rust로 개발을 시작했다. 새롭게 알게 된 내용을 블로그에 기록하고 있다. 러스트 코드를 예쁘게 보여줄 기능이 필요했다. 아쉽게도, 내가 사용하는 SyntaxHighlighter의 기본 패키지는 러스트를 지원하지 않는다. 지난번 리스프 패키지 작성과 마찬가지로 서드파티 패키지를 추가해야했다. 운이 좋게도 누군가 만들어서 공개했다. https://silight.hatenablog.jp/entry/2015/06/18/211724 써보니 그리 나쁘지 않았지만, 부족한 부분이 엿보였다. 이전 글을 작성하면서 발견한 멀티라인을 추가했다. 2019년 2월 14일에 raw string, byte string을 추가했다. 코드는 https://github.com/unipro/shBrushes에 있다. le..
-
러스트와 다른 언어의 멀티라인 처리 비교Programmer/Programming 2019. 2. 12. 14:38
새줄문자가 들어간 스트링 리터럴 출력 Rust fn main() { println!("In the rooom the women come and go, Singing of Mount Abora"); } 결과 : 스트링 리터럴의 새줄문자와 공백문자를 그대로 출력 In the rooom the women come and go, Singing of Mount Abora C #include int main() { printf("In the rooom the women come and go, Singing of Mount Abora"); putchar('\n'); } 결과 : 빌드 실패 cc -Wall -O2 -o prt_nl_str prt_nl_str.c prt_nl_str.c:5:12: warning: miss..
-
시작할 때는 아무도 모른다.Leader/Developer Leading 2019. 2. 11. 12:48
마크 저커버그 (페이스북 CEO) 시작할 때는 아무도 모릅니다. 아이디어란 것은 원래 완성 상태로 떠오르지 않습니다. 오직 행동하는 과정에서 명료해질 뿐입니다. 아이디어 뿐만 아니라 질문도 마찬가지다. 물음도 처음에는 정확히 떠오르지 않는다. 물어보는 과정에서 진짜 질문이 드러난다. 초기 생각이나 질문은 "뻘 속의 진주" 또는 "모래 섞인 사금"과 같다. 처음에는 노이즈가 많아서 본질이 보이지 않는다. 방해하는 요소를 잘 걷어내면 비로서 보인다. 또한 여린 새싹과도 같다 막 피어오른 싹은 매우 취약하여 쉽게 부러진다. 초기에는 보호하고 성장시키는데 주력해야한다 그렇지 않으면, 가능성을 보여주기 전에 꺽인다. 어느정도 길러봐야 가치를 평가할 수 있다. 일부 시니어(라고 쓰고 "꼰대"라고 읽는다)는 당연히 ..
-
러스트에서 문자열을 효과적으로 연결하기Programmer/Programming 2019. 2. 8. 17:41
러스트(rust)에서 문자열을(&String or &str)을 연결(concatenation)하는 방법에는 여러가지가 있다. SliceConcatExt::concat() -> String SliceConcatExt::join(sep: &str) -> String Add::add(rhs: &str) -> String String::push_str(string: &str) -> String write! and writteln! macros SliceConcatExt::concat() -> String 문자열의 슬라이스(slice)에서 concat() 메서드를 호출하면 각 요소를 연결한 문자열을 생성한다. SliceConcatExt::join(sep: &str) -> String 각 문자열 요소 사이에 지정된..
-
직급별 리더의 차이점Leader/Developer Leading 2019. 2. 7. 16:25
내가 꼬꼬마였을 때, 훌륭한 선임은 물어보는 질문에 답을 잘 해주셨다. 나: 바퀴없는 의자가 어디있어요? 선임: 회의실에서 봤어요. 답을 빨리 주는 그는 나에게 능력자다. 좀 더 노련한 책임은 좀 더 적합한 해결책을 찾아주었다.책임: 무엇때문에 그런거예요? 나: 불이 안켜지는 전등을 교체하려구요. 책임: 그런 일이라면, 사다리가 더 적합할 것 같은데... 사다리라면 경지실에서 알고 있을꺼예요빨리 보다는 좀 더 나은 답을 찾아 주었다. 나도 키보드 끈이 제법 길어졌다. 문제가 정확히 주어지면 웬만하면 답을 찾는다. 이따금씩 좀처럼 실마리를 찾을 수 없는 문제를 수석과 상의한다. 수석은 직접적인 답을 곧바로 주지는 못한다. 바로 답이 나오는 단순한 문제가 아니기 때문이다. 대신에 모호한 질문을 명확하게 이끌..
-
힙스터의 문제 해결 방법 오류Life/Software Engineer 2019. 2. 1. 18:28
여기서 언급하는 "힙스터"란 힙한 기술만을 "맹목적으로 추종"하는 사람을 뜻한다. 기술 허세, 설레발 주도 개발(Hype Driven Development)과도 맥락이 맞닿아 있다. 웹 힙스터, TDD 힙스터, 데이터과학 힙스터, 머신러닝 힙스터, MSA 힙스터, 등 무수히 많다. 기술과 마케팅 용어의 콜라보가 잘 이루어지는 지점에서 힙스터가 발생한다. 기술 마케팅(이라고 쓰고 "약팔이"라고 읽는)이 성공하는 곳마다 힙스터가 존재한다고 여기면 된다. 힙스터의 접근 방법은 좀 특이하다. 문제 해결에 힙한 기술만 주장한다. 지금 해야할 과제 중에 없으면, 그 기술을 적용하기 위한 문제를 만든다. 힙한 기술은 특정 난제 해결을 위해 나왔다. 모든 회사에서 그런 방식의 풀이가 필요한 것은 아니다. 가장 중요하거..
-
James Long "나는 어떻게 더 나은 프로그래머가 되었는가"의 인상 깊은 문장들Life/Software Engineer 2018. 9. 27. 11:48
엄청나 보이는 사람도 실제로 일하는 모습을 보면 우리가 일하는 모습과 그리 다르지 않습니다. 모든 수단과 방법을 가리지 않고 작동하는 코드를 쓰려 합니다(Hacks everywhere). 매일 등장하는 대부분의 새로운 라이브러리 등은 그저 기존에 있던 같은 아이디어의 재탕입니다. 진정 혁명적인 물건은 몇 년에 한번씩 나타납니다. 해결하고자 하는 문제 및 추상화 계층에 많은 시간과 노력을 들이는게 더 낫습니다. 모든 문제가 정리되었다면 약간의 시간을 들여서 코드를 정리하는 작업을 하면 됩니다. 특정 주제를 며칠 정도 조사해보는 버릇은 언제나 문제를 해결하는 방법을 송두리째 바꿔줍니다. 논문을 읽는 방법을 배우는 것도 좋습니다. [번역] 나는 어떻게 더 나은 프로그래머가 되었는가
-
'ps aux'와 'ps -ef'의 차이Programmer/Computer Skills 2018. 2. 13. 17:28
ps -e와 ps ax를 모든 프로세스를 보여준다는 의미에서 같다. ps -f와 ps u는 보여주는 필드를 정하는데 아래와 같은 소소한 차이가 있다. ps -f 프로세스의 식별 정보를 더 잘 보여준다. PPID : 부모 PID ps u 프로세스의 상태 정보를 더 잘 보여준다. %CPU : CPU 사용율 %MEM : 메모리 사용율 VSZ : 가상 메모리 크기 RSS : 실제 메모리 크기 STAT : 프로세스 상태 부모 프로세스와 자식 프로세스의 관계를 보려면 ps -ef가 프로세스 상태를 보는 용도로는 ps aux가 더 적당하다.