May 032013
 

4clojure problems

새로운 언어를 배우고 있다. 바로 클로저(clojure). 2년 정도 꾸준히 공부해 볼 생각이다. 일 년에 새로운 언어 하나는 아무리 생각해봐도 무리. 그렇게 말한 아자씨들은 지금 실천하고 있을까?

그래서 대충 보고 묵혀놨던 프로그래밍 클로저를 최근에 다 봤다. 물론 최대한 코드를 많이 짜면서 책을 읽었다. github에 hello-clojure 프로젝트를 만들고 책에 나온 내용에 대한 unit test 코드를 짰다. 이제 조그만 장난감 프로젝트를 시작할 차례다. 현업에서 사용 안 하는 언어기 때문에 필수.

장난감 프로젝트를 하기 전 예열이 필요했다. 아직 클로저가 많이 낯설기도 하고. 심시티를 하려고 점심시간을 비워놨건만 서버가 개판이라서 점심시간에 할 놀이도 필요했고. 그래. 이럴 땐, 프로젝트 오일러 문제가 딱이지. 그러던 차에 4clojure 사이트를 알게 됐다.

Continue reading »

by-nc-sa

Apr 102013
 

Building an army of robots by Kyle Neathgithub 내부 툴을 소개한 발표자료. github 아저씨들은 발표자료 참 잘 만든다.

hubotjankyplay, ... 공개한 내부 툴도 많은데, 다 이유가 있었다. 바로 내부 툴은 문화이고 더 나아가 DNA라는 철학을 가지고 있기 때문.

Continue reading »

by-nc-sa

Apr 082013
 

컴퓨터 프로그램의 구조와 해석(SICP), 해커와 화가 책을 통해 Lisp에 대한 빠심을 계속 충전해왔다. 이제 그 막연한 빠심을 실체화해야 할 시기.

표현력이 강한 언어를 배우고 싶었다. 그래서 찍어 놨던 언어가 바로 Lisp. 제대로 공부하고 싶었으나 실용성 때문에 망설였다. 분명 언어와 그 철학을 배우면서 얻는 것도 많겠지만, 무엇보다 필요할 때 적극 활용할 수 있는 언어를 원했다. 그러던 중에 발견한 클로저. JVM 기반 언어다. Lisp dialect다. 이쯤 되면 망설일 이유가 없다.

Continue reading »

by-nc-sa

Apr 042013
 

Study Group

4개월간 아이패드 스터디에 참여했다. 아꿈사가 아닌 다른 스터디 모임에. 다른 스터디는 어떻게 진행되나 궁금했기 때문이다. iOS 쪽 스터디 모임을 찾아보니 생각보다 없었다.

모두가 노트북을 들고 와서 실습 위주로 공부했다. 안 그래도 바랬던 방식인데, Xcode가 익숙하지 않았기 때문. 직접 타이핑하면서 공부하니 확실히 이해는 잘 됐다. 몰랐던 Xcode 기능도 많이 알게 됐고. 하지만 너무 오래 걸린다. 3주 정도 한 챕터만 한때도 있었다. 이렇게 너무 오래 걸리니깐 결국 문서로 코드를 전달하고 copy & paste로 진행하게 된다.

Continue reading »

by-nc-sa

Feb 182013
 

computer_cat_08

아침에 출근하면 가장 먼저 하는 일. 전날 커밋된 코드를 읽는다. 물론 읽는 건 내 코드가 아니라 동료가 커밋한 코드.

처음에는 코드를 읽을 때, 2~3시간을 썼다. 코드를 읽는 것도 중요하지만 이렇게 시간을 써버리면 곤란하다. 왜냐하면, 아직 내 역할은 코드 품질 유지보다는 생산 쪽이기 때문이다. 물론 모든 프로그래머는 둘 다 신경을 써야 한다. 하지만 역할이 한쪽으로 더 치우쳐 있기 마련이다. 현재 나는 생산 쪽에 더 치우쳐 있다. 그래서 원칙을 세웠다. 길어야 40분. 초과하면 커밋 코멘트만 보거나 내 업무와 연관된 코드만 읽는다.

Continue reading »

by-nc-sa

Jan 082013
 

Now, some people will claim that having 8-character indentations makes the code move too far to the right, and makes it hard to read on a 80-character terminal screen.

The answer to that is that if you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.

Linux Kernel Coding Style - Linus Torvalds

걍 8이 좋아서. 이게 아니다. 들여쓰기 레벨을 규제하려고 8칸 tab을 사용한다.

들여쓰기 레벨을 3 이하로 할 것을 권고한다. 이렇게 문서로만 살아있는 지침보다 더 큰 효력을 지닌 코딩 컨벤션(coding convention)이다.

코딩 컨벤션을 정할 때, 토론이 필요한 건 이렇게 결과를 이끌어 낼 수 있는 규칙이다. 취향에 따라 갈리는 공백 위치 같은 건 다수결로 채택하거나 팀장이 그냥 정해도 상관없다고 생각한다. 통일만 되면 장땡이니깐.

 

by-nc-sa

Dec 172012
 

.NET tagger?

C#을 다시 쓸 일이 생겼다. 주력으로 계속 안 쓰니깐 까먹게 된다. 그래서 다시 봤던 책을 보려고 했는데, 이런 생각이 들었다.

C# in Depth처럼 버전별 기능 정리를 하면 어떨까?

그래서 github에 csharp-features 프로젝트를 만들었다. 2.0에서 4.0까지 정리. unit test를 사용해서 피처를 확인했다. vs unit test 괜찮네. mock이 없는 거 빼고는 마음에 든다. 이것 좀 기본으로 넣어주지.

lua를 배울 때 project euler를 풀었는데, 이 방법도 괜찮다. 하지만 script 언어로 먼저 문제를 풀어봐서 그런지, C#으로는 풀 맛이 안 생기더라. 나중에 ruby를 배울 때, 다시 풀어볼 생각이다.

 

by-nc-sa