태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'코딩도장'에 해당되는 글 3건

  1. 2009.01.09 코딩도장: 회고 (1)
  2. 2008.08.01 투명 필름 문제(Scheme) (4)
  3. 2008.06.16 후기: 코딩도장 오프모임 (2)

코딩도장: 회고

Daily life/Hard study 2009. 1. 9. 00:12
오랜만에, 정말 오랜만에 코딩도장 모임에 다녀왔습니다. 오늘은 책 소개도, 코딩 모임도 아닌 회고 모임이었는데요... 사실 애자일 회고를 제대로 읽어본 적이 없는데,

애자일 회고를 읽어오시면 좋습니다

라는 공지글을 보고, 사람들이 책을 읽고 올테니 가서 쪽쪽 빨아먹자! 라는 생각을 번뜩 하고는 후다닥 참석한다고 손을 들었습니다. ... 네, 네, 제가 원래 이렇게 삽니다. 흐흐흐흐 ~

모임에는 열명 내외의 분들이 참석해 주셨습니다. (열 한...명?) 전에 봤던 분도, 첨 보는 분도 섞여 있었네요. 기억력이 나빠서 담에 볼때 기억 할 수 있을런지... 약 30분 정도의 뜸들이기 시간을 가진 후에 코딩도장 관장, 아샬님이 고고싱 하셨습니다.

- 회고 준비: 각자 소개, 느낌, 왜 나왔는지에 대한 이야기
- 자료 수집: 모임(or 모임 밖이어도...)에서 있었던 일들, 느낀것 정리
- 통찰: 수집된 자료를 정리, 분류. 5-Whys - 다섯 단계의 "왜?" 라는 물음을 통해 근원으로의 여행을 ...
- 무엇을: 전 단계에서 얻은 "이유"에 대해서, 해법/대응을 서로에게 묻고 답함
- 마무리: 누군가에게 감사, 궁금한거 하나, 무엇을 실천할까 골라골라 ~

정도의 순서로 진행이 되었습니다. 주사위의 등장이라던가, 5-Whys 의 시도 같은 것은 왠지 임팩트가 있었습니다. 앞으로도 한동안 계속 떠오를 듯. 하지만, 시간의 부족으로 보다 심도있는 대화를 나누지 못한 것은 좀 아쉬웠습니다. 더욱이 시간의 부족이 모임을 예정보다 늦게 시작하게 되어서 - 의 영향도 있기 때문에 좀 더 아쉽네요. - 제가 마지막에 던진 궁금한거? 에 대한 대답은 왜 항상 늦게 시작할까? 였습니다. ;-)

개인적으로 나왔던 실천강령(???) 중 마음에 들었던 것, 혹은 그럴싸한데? 라고 생각했던 것은,

- 알고리즘 문제보다는 실용적인 문제를!
- 문제 풀어오는 사람에게 쿠폰을 줄까? - 문제 내는 사람한테도 주면...?
- 문제 여러개를 내자 - 근데 누가? ㅠ_ㅠ
- 사회적 기여 - 어떤 ... 모임이 있다고 한다

정도였던 것 같습니다. 적지는 않아서 기억이 가물가물(벌써ㅠ_ㅠ)

일단 까먹기 전에 남기는 후기는 이걸로 완료 ;-)
Trackbacks 1 : Comments 1
  1. Favicon of http://da.uggpaschermz.com ugg 2013.04.03 00:58 Modify/Delete Reply

    아름다운 여자가 해바라기하는 걸 좋아해요

Write a comment


투명 필름 문제(Scheme)

Tech 2008. 8. 1. 08:44
코딩도장에서 풀고 있는 투명 필름 문제. UVA 에서 뽑아온 문제인데 ... 그쪽 스타일은 입출력이 귀찮아서 열심히 하기는 싫다. 그냥 내맘대로 문제를 줄여서(-_-a) scheme 으로 뚝딱. 아직 공부가 부족한가보다. ... 더 잘 할 수 있을텐데. 위키보다는 여기가 어울릴 것 같아서(문서가 아니라 코드!) 붙임. SICP 스타일로,

Representation 정하기
Selector 등 Abstraction layer 만들기
Logic 구현

의 순서를 밟았다. 실제로 Abstraction layer를 만들어둔게 디버깅 할때 꽤나 큰 도움이 되었다. <시작, 끝> 에서 시작이 끝보다 작은 필름의 경우 make-film을 고치는 것 만으로 해결된 것.

-----
(load "utility.scm")

; My film system!
(define (make-film s e t)
(if (> s e)
(list e s t)
(list s e t)))
(define (start-point film) (list 's (car film) (transparency film)))
(define (end-point film) (list 'e (cadr film) (transparency film)))
(define (start-point? point) (eq? 's (car point)))
(define (end-point? point) (eq? 'e (car point)))
(define (point-pos point) (cadr point))
(define (point-transparency point) (caddr point))
(define (transparency film) (caddr film))

; Test cases!
(define test-case-1 (list (make-film 2.0 9.0 0.9)
(make-film 4.0 13.5 0.7)
(make-film 7.0 17.0 0.8)))
(define test-case-2 (list (make-film 6.0 24.0 0.9)
(make-film 5.5 22.0 0.7)
(make-film 9.0 18.0 0.8)
(make-film 16.0 16.0 0.9)
(make-film 8.5 15.0 0.7)
(make-film 4.0 11.0 0.8)
(make-film 2.2 5.0 0.9)
(make-film 90.5 1.0 0.7)))
(define test-case-3 (list (make-film 1.0 2.0 0.5)
(make-film 1.0 3.0 0.5)
(make-film 2.0 3.0 0.5)))

; Main solver
(define (solve films)
; Input manager
(define (adjoin-point-list p l)
(cond ((null? l) (list p))
((< (point-pos p) (point-pos (car l))) (cons p l))
((or (> (point-pos p) (point-pos (car l))) (= (point-pos p) (point-pos (car l))))
(cons (car l)
(adjoin-point-list p (cdr l))))
(else
(error "Error!"))))

(define (make-point-list l)
(cond ((null? l) '())
((= (point-pos (start-point (car l))) (point-pos (end-point (car l))))
(make-point-list (cdr l))) ; for a vertical film
(else
(adjoin-point-list (start-point (car l))
(adjoin-point-list (end-point (car l))
(make-point-list (cdr l)))))))

(define expanded-input (make-point-list films)) ; This is the very input for main solver function

; Utility functions for main solver
(define (add-film cur-transparency added-transparency)
(* cur-transparency added-transparency))

(define (sub-film cur-transparency added-transparency)
(/ cur-transparency added-transparency))

; Main solver
(define (iter output before cur-trs remaining_input)
(let ((next-point (if (null? remaining_input)
'() ; It's not gonna be used
(car remaining_input))))
(if (null? remaining_input)
output
(iter (append output (list (list before (point-pos next-point) cur-trs)))
(point-pos next-point)
(if (start-point? next-point)
(add-film cur-trs (point-transparency next-point))
(sub-film cur-trs (point-transparency next-point)))
(cdr remaining_input)))))

; Direct output from main solver. It has some duplicates and useless info
(define raw-output (iter '() 0 1 expanded-input))

; Filter out some meaningless output element
(define output-filter
(lambda (sequence)
(filter (lambda (x)
(< (car x) (cadr x)))
sequence)))

; Combine(Reduce) some outputs for compact result
(define (combinable? x y)
(and (= (cadr x) (car y))
(= (caddr x) (caddr y))))

(define (combine x y)
(list (car x) (cadr y) (caddr x)))

(define output-reducer
(lambda (sequence)
(cond ((null? (cdr sequence)) sequence)
((combinable? (car sequence) (cadr sequence))
(cons
(combine (car sequence) (cadr sequence))
(cddr sequence)))
(else (cons
(car sequence)
(output-reducer (cdr sequence)))))))

; So, this is my final output!
(output-reducer (output-filter raw-output)))
-----

ordered-list 에 대한 일반적 구현을 만들어서 분리하면 코드가 확 줄어들 것 같다.

'Tech' 카테고리의 다른 글

하위 디렉토리에 있는 모든 .svn 을 날리는 법  (5) 2008.09.11
Spiral number galaxy  (4) 2008.08.09
투명 필름 문제(Scheme)  (4) 2008.08.01
Statement vs Expression  (4) 2008.07.22
emacs: switch indentation  (0) 2008.07.18
방법당하다 by python-mysqldb 1.2.1_p2  (5) 2008.06.11
Trackbacks 0 : Comments 4
  1. Favicon of http://palabras.egloos.com comkid 2008.08.01 09:39 Modify/Delete Reply

    scheme으로도 코드가 상당히 길게 나온다고 생각했는데 테스트 케이스가 포함되서 그런거군요..
    왠지 손으로 써보지 않고는 해석이 안 될 것 같은.. ~_~

  2. Favicon of http://shurain.egloos.com 슈레인 2008.08.01 11:03 Modify/Delete Reply

    uva는 정말 입력이 즐 -_-

  3. Favicon of http://deisys.net deisys 2008.08.01 15:00 Modify/Delete Reply

    comkid // 제가 능력이 딸려서 코드가 긴겁니당... ㅠㅠ
    슈레인 // 그러게... 탑코더가 좋아~

  4. Favicon of http://92074secat.net/uggboots.php ugg boots 2013.07.14 01:41 Modify/Delete Reply

    지금은 반짝반짝 빛이 나겠지,, 하지만 시간이 흐르면 그빛은 사라저버릴거야,지금 우리처럼

Write a comment


후기: 코딩도장 오프모임

Daily life/Hard study 2008. 6. 16. 20:20
아래 있는 SICP 스터디 6월 모임 - 에서 솔리드원님의 소개로 코딩도장의 오프라인 모임에 참석했습니다. 모임 이름은 코딩도장이었지만, 제가 참석한 모임은 "책 소개" 모임이었네요. 순수문학도 있고, 수학 관련된 녀석도 있고, 메타-사고에 관한 책도 있었습니다.

저까지 포함해서 다섯명이었는데, 도장의 관장님 한분(아샬님)과 엔에스알, Pod, SolidOne님이 참석하셨습니다. 아샬님은 제일 마지막에 오셨는데, 다른 분들이 롸커같다고 이야기해서 어떨까 했었는데 딱 오시니 아, 그렇군 이라는 생각이 들더군요. ;-)

모임에서도 이야기 했지만, 물 흐르듯이 스르륵~ 자연스럽게 진행되어서 참 좋았습니다. 관장님의 능력이겠지요. 크게 세션을 나누면 책에 대한 이야기와 모임의 방향에 대한 이야기, 두 개가 되겠습니다.

: 각자 읽은 책을 보여주고 설명하고 공유한 다음, 많은 사람의 관심을 얻은 녀석에 대해 좀더 in-depth로 까보는 ... 의도였지만, 시간이 꽤 많은데다가 읽지 않은 상태로 추천(?)된 책이 있어서 모든 책을 돌아가면서 이야기했습니다. 저는 준비되지 않은 관계로 넘어갈...리가 없으니, 그나마 가장 최근에 읽었던 리만가설을 꺼냈습니다. ... 읽긴 읽었는데 리뷰조차 쓰지 못하고 있는 고로 한번 더 읽어야 하는 책이지요. :'(

  • 아샬님: 아이디어 머신, 효과적인 문제해결 - 두권 모두 Meta-Thinking 이라는 범주로 넣고 싶군요.
  • 솔리드원님: 수학으로 생각한다 - 수학 교양서와 전공서의 중간쯤에 있는 듯 합니다. ... 아 전투요정 유키카제도 있었습니다. ... 이거 나올줄은 몰랐다능 -0-/
  • 엔에스알님: 익스트림 프로그래밍 Explained, 국경의 남쪽 태양의 서쪽, 스키니 비치 - Extreme programming은 읽어봤던 책인데, 역시 다른 분들이 읽고 하는 이야기를 들으니 새로운걸 깨닫게 됩니다. 역시 돌멩이는 부딪쳐야 불꽃이 튀나봅니다. 국경의 남쪽 태양의 서쪽에 대해서는 하루키와 류씨의 책에 대한 이야기들이 나왔습니다. ... 상실에 대한 이야기가 인상깊군요. 스키니 비치는 그냥 패스했습니다. >_</
  • Pod님: 컨버전스 컬쳐 - ... 잘 모르겠어염 ㅠ_ㅠ 아직 별 느낌이 없었습니다. Hybrid와 Convergence가 뭐가 다를까요? 라는 의문이 생겼습니다.
  • D-goon: 리만가설 - ... 저 스스로 떡실신.

대충 이렇게 정리할 수 있겠군요. 다른 분들의 지식을 훔치는 풍요로운 시간이었습니다. 그리고, 두번재 세션에서는 모임에 대한 이야기를 했습니다. 왠지 써놓고 보니 그 전타임에 뛰었던 SICP 스터디 모임에서와 비슷한 느낌이 드는군요. ;-)

모임의 방향: 사실 저는 이 오프모임이 처음이었기 때문에, 할 수 있는 말이 별로 없... 었습니다만, 그래도 왠지 어색하지 않아 이런 저런 이야기를 꺼낼 수 있어 좋았습니다. 앞으로 오프 모임이 활성화 될 조짐이 있는데, 저도 가보고 싶... - 긴 합니다만, 시간과 위치가 안좋으면 낭패... =_=a

몇 가지로 느낌을 정리하자면,

  1. Proactive members
  2. 다양성에 대한 갈망
  3. 깊이에의 추구

이런 것이 인상깊습니다.



... 일단 온라인에서 코딩 문제를 풀다가 적당한 때와 장소를 기다려 보면 되지 않을까 합니다. ;-)


'Daily life > Hard study' 카테고리의 다른 글

SICP 스터디 7월 정모  (5) 2008.07.29
지름: GEB  (0) 2008.07.19
후기: 코딩도장 오프모임  (2) 2008.06.16
후기: SICP 스터디 모임 6월(+5월) 정모  (5) 2008.06.15
SICP 스터디 모임 4월 정기모임  (3) 2008.04.26
SICP 스터디 모임 늦은 후기  (4) 2008.03.27
Trackbacks 0 : Comments 2
  1. Favicon of http://etnalry.tistory.com etnalry 2008.06.16 22:28 신고 Modify/Delete Reply

    아. 이 곳이 그 곳이었군.

  2. Favicon of https://deisys.tistory.com 가난한 d-goon 2008.06.17 13:35 신고 Modify/Delete Reply

    etnalry // ㅇㅇ

Write a comment