<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>LangDev</title>
		<link>http://langdev.net/board/discussion</link>
		<description>The latest posts from LangDev</description>
		<pubDate>Sat, 20 Feb 2010 10:32:36 +0900</pubDate>
		<item>
			<title><![CDATA[퍼키짱]]></title>
			<link>http://langdev.net/post/341</link>
			<description><![CDATA[
	
<p>일명 복 받은 사람들이 되겠습니다.</p>
<p>이런 코스가 필요한데..</p>
<p><a href="http://me2day.net/hyeshik/2010/02/20#00:56:25">http://me2day.net/hyeshik/2010/02/20#00:56:25</a></p>
<p>첫 번째 1월 9일 10시 20분~12시 45분 •공부모임 소개 •컴퓨터 •지식의 종류 •컴퓨터의 구조 •프로그램 내장형 컴퓨터 •메모리와 프로그램 실행 •프로그래밍 언어의 분류 •문법과 의미 •타입 •프로그래밍 •파이썬 깔기 •기본 연산 •(연습) 올해 나이 구하기 •비교 •변수 •조건 분기 •(연습) 루저 가려내기</p>
<p>두 번째 1월 23일 10시~12시 30분 •프로그래밍 •(연습) 나이, 이름, 루저 다시 해 보기 •블럭/조건분기 •(연습) T4 PNK 반응 농도식 계산하기 •루프 •(연습) 구구단</p>
<p>세 번째 1월 30일 10시~12시 30분 •컴퓨터 안에서의 숫자 나라~ •정수의 2진법 표현 •정수 덧셈 •2의 보수, 정수 뺄셈 •(연습) 2의 보수를 이용한 8비트 뺄셈 계산 •고정소수점 실수 •부동소수점 실수, IEEE754 연산 주의점 •프로그래밍 •문자열 포매팅 •(연습) PCR 시뮬레이션 •리스트 타입 •반복 •문자열 메쏘드: split, strip •(연습) miRNA 이름 목록에서 miRNA*, -3p miRNA 골라내기 •문자열 메쏘드 •파일 입출력 •(연습) miRBase hairpin.fa 에서 GGAG 모티프찾기</p>
<p>네 번째 2월 6일 10시~12시 30분 •논리회로 (1시간 동안 할 수 있는 곳까지만) •트랜지스터 •논리 게이트 •4비트 덧셈 회로, 캐리 •(연습) 캐리 룩어헤드 회로 설계해 보기 •RS래치 •클럭과 에지 트리거 •프로그래밍할 수 있는 논리 칩 (PLA, PAL) •(연습) 앞에서 설계한 회로 PAL로 변환하기 •프로그래밍 연습 •파일 입출력 더 연습 •(연습) BanI 이어붙이기 클로닝할 수 없는 miRNA 찾기 •(연습) 앞에서 찾은 miRNA도 클로닝할 수 있는 제한효소 골라주기 •딕셔너리 타입 •딕셔너리 반복 •(연습) CDS를 아미노산 서열로 번역하기 •(연습) CDS 받아서 코돈 최적화하기 (가장 많이 쓰이는 코돈만 쓰는 방법으로)</p>
<p>다섯 번째 2월 20일 10시~12시 30분 •프로그래밍 연습 •(연습) 소수성 분석으로 막단백질 위상 예측하기 •(연습) 피보나치 수열 •함수와 재귀호출 •(연습) 재귀로 구현한 피보나치 수열과 팩토리얼 •(연습) 재귀호출로 구현하는 간단한 RNA 2차구조 예측</p>
<p>여섯 번째 2월 27일 10시~12시 30분 •자료구조와 알고리즘 •스택 •큐 •(연습) BAS 플레이트 대여 순서 시뮬레이션 (환형 큐) •복잡도 •이분검색 •(연습) 이분검색으로 알맞는 버퍼 조성 추천하기 •이진검색트리 •(연습) 유전체에 정렬된 전사체 데이터에 주석달기 (입력과 트리 만드는 부분은 간단하게 템플릿으로 주어짐)</p>
<p>일곱 번째 3월 6일 10시~12시 30분 •트리 •(연습) neighbor joining으로 비슷한 seed를 가진 miRNA끼리 묶기 •정렬 •버블소트 •(연습) 버블소트 •머지소트 •time 모듈 •(연습) 머지소트, 시간재서 비교하기 •(연습) 서로 다른 세포에서 공통적으로 발현되는 miRNA 찾기 •(연습) mRNA, miRNA, rRNA, tRNA 등으로 분리되어 있는 정렬되어 있는 유전체 주석 (gff) 데이터 합쳐서 하나로 만들기</p>
<p>여덟 번째 3월 13일 10시~12시 30분 •정규표현식 •(연습) Trypsin으로 잘리는 최대 조각수 계산하기 •기초 정규표현식 •(연습) Trypsin 연습 정규식으로 다시 풀기 •(연습) TeV protease로 잘리는지 확인하기 •텍스트 파일 파싱 •(연습) PDB 파일 읽어서 서로 가까이에 있는 시스틴 쌍 찾기</p>
<p>아홉 번째 3월 20일 10시~12시 30분 •테스팅, 테스트 주도 개발 •프로그래밍 연습 •(연습) 숫자 영어로 읽기 •(연습) 만년 달력 그리기 •(연습) 스크래블 풀기</p>
<p>열 번째 3월 20일 10시~12시 30분 •동적 프로그래밍 •동적 프로그래밍을 이용한 퍼즐 풀기 알고리즘의 예 •Smith-Waterman 서열 정렬법 •다중 중첩 리스트/뮤터블 타입과 참조 •(연습) let-7 hairpin 서열 정렬하기 •(연습) 클로닝 중 시퀀싱한 데이터에서 정렬로 변이 금방 찾아내기</p>
<p>열한 번째 3월 20일 10시~12시 30분 •그래프 그리기 •matplotlib의 plot함수, scatter함수 •시스템 생물학 •주요 네트워크 모티프 •기본적인 선형미분방정식 세우기 •(연습) Dicer 절단과 RISC 로딩 과정 시뮬레이션 •시간차 지연을 포함한 선형미분방정식 세우기 •(연습) 음성 자가제어 되먹임 루프(negative autoregulatory feedback loop)를 구성하는 miRNA와 단백질 의 관계 시뮬레이션</p>
<p>열두 번째 3월 20일 10시~12시 30분 •파일 데이터베이스 •bsddb와 shelve •바이오파이썬 •SeqIO 모듈 사용법 •(연습) Illumina FastQ 파일 읽어서 나쁜 품질 리드 모두 버리고 리드 수 세기 •Pubmed 모듈 사용법 •(연습) 유방암과 가장 자주 같이 언급되는 miRNA 찾기 (shelve로 임시 저장 사용)</p>
<p>열세 번째 3월 27일 10시~12시 30분 •2세대 시퀀싱 •간단한 시장 상황 •데이터 분석 측면에서의 각 플랫폼별 특성 •샘플 준비 과정에서의 편향성 •프로그래밍 연습 •(연습) 작은RNA 시퀀싱 데이터에서 21U RNA 수 세기 •(연습) 작은RNA 시퀀싱 데이터 매핑하기 (bwa사용) •(연습) 여러 군데 매핑되는 리드를 뺀 리드수 세기 •(연습) 작은RNA 시퀀싱 데이터에서 mRNA 각각의 유래 조각수 세기</p>
<p>열네 번째 4월 3일 10시~12시 30분 •기초생물통계 분포 •균일분포, 포아송분포, 기하분포, 정규분포, 지수분포 •(연습) TBA •기초생물통계 가설검정 (1) •p-값 •t-검정 •(연습) TUT4를 KD했을 때 가장 유의미하게 늘어나는 miRNA 찾기</p>
<p>열다섯 번째 4월 10일 10시~12시 30분 •기초생물통계 가설검정 (2) •Mann-Whitney U-검정 •(연습) GGAG를 포함한 miRNA의 유리딘 첨가 경향의 유의미함 검정 •데이터 교환 •csv 읽고 쓰기 •(연습) 위에서 만든 프로그램을 모든 4염기 모티프로 확장해서 엑셀로 보내기</p>
<p>열여섯 번째 4월 17일 10시~12시 30분 •지속가능한 프로그램 (예시와 함께) •유지 가능한 소스코드 •이름 짓기 •함수, 모듈 인터페이스 설계 •중간파일/데이터베이스 저장 •(연습) TBA 중간파일이 유용한 사례 •모듈 •파이썬 모듈의 기본 개념 •(연습) TBA •패키지 구조 •(연습) TBA - 앞에서 만든 복잡한 프로그램 중의 하나를 패키지로 조금 과도하게 분해함</p>
<p>열일곱 번째 4월 24일 10시~12시 30분 •기초소프트웨어공학 •요구사항 분석, 의존성 분석 •(연습) TBA •프로젝트 진행 관리, 이슈 관리 •회고 •(연습) TBA •비교유전체학 데이터 다루기 •다중 서열 정렬, 데이터 다루기 •(연습) miRNA family의 seed 보존/비보존 miRNA 찾기 (pygr 사용)</p>
<p>열여덟 번째 5월 1일 10시~12시 30분 자유 팀 프로젝트</p>
]]></description>
			<author><![CDATA[wookay]]></author>
			<pubDate>Sat, 20 Feb 2010 10:32:36 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[질문) Scala를 Yacc에서 알아먹도록 하고 있는데 …]]></title>
			<link>http://langdev.net/post/340</link>
			<description><![CDATA[
	
<p>갑자기 문득 Scala Lexer와 Parser를 구현해보고 싶다는 생각이 들어서… 구현중에 문의를 드립니다. 짧은 지식으로 할려고 하니 힘드네요…</p>
<p>ScalaReference.pdf파일에서 가져온 EBNF문법은 다음과 같습니다.</p>
<p>Path&nbsp;: [id ‘.’] ‘this’ | StableId</p>
<p>StableId&nbsp;: id | Path ‘.’ id | [id ‘.’] ‘super’ [‘[’ id ‘]’] ‘.’ id</p>
<p>인데… 보시면 아시겠지만 Shift/Reduce Conflict가 나도록 되어 있습니다. (공식 문서에 나온 문법도 모호성이 있는 문법을 쓰고 있고… Scala구현은 손수 Parser를 만드셨더군요…)</p>
<p>이것을 모호하지 않은 문법 즉, Conflict가 안나도록 바꿔야 하는데 ㅠㅠ 잘모르겠더군요 ㅠㅠ 도움을 주세요!(아니 용기를…)</p>
]]></description>
			<author><![CDATA[dyanos]]></author>
			<pubDate>Fri, 19 Feb 2010 11:19:08 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[Factor 다루는 대학]]></title>
			<link>http://langdev.net/post/339</link>
			<description><![CDATA[
	
<p>Factor 다루는 대학교 간단히 정리 좀 합니다.</p>
<h1>프랑스 Telecom ParisTech</h1>
<p>INF355 Paradigmes et langages non classiques 관습에 얽매이지 않는 패러다임의 언어들 <a href="http://www.rfc1149.net/inf355/">http://www.rfc1149.net/inf355/</a></p>
<p>Articles에 대충 언급되는 언어로는</p>
<p>FACTOR, HASKELL, ADA, ERLANG, PROLOG, IO, LISP, SCHEME, PYTHON, RUBY, ICON, JAVA, SCALA, C++</p>
<ul>
<li>교수 홈페이지 Samuel Tardieu <a href="http://www.rfc1149.net/">http://www.rfc1149.net/</a></li>
</ul>
<h1>독일 Heilbronn University</h1>
<p>Software Engineering of Complex Systems</p>
<p><a href="http://denkspuren.blogspot.com/2010/01/factor-heilbronn-university.html">http://denkspuren.blogspot.com/2010/01/factor-heilbronn-university.html</a></p>
<blockquote>
<p>… During the project week, my students (about 30 persons) worked with Factor four out of five days almost 8 hours per day. For my students it was full contact combat with an almost unknown programming paradigm and an exotic language. But they did really well. On day 1, the students worked through the introductory material supplied with Factor. On day 2, we studied types and object-orientation in Factor. On day 3, parsing and macros were studied in Factor. For these two days, the students worked with tutorials and worked their way through a number of exercise, which required them to write tiny programs in Factor to pass unit tests. On day 4, we worked on a topic unrelated to Factor. On day 5, two students thoroughly presented their project work, a real-world application in Factor, they had done in another course in the previous semester. We concluded the week with discussing and reflecting Factor’s capabilities and the power of the concatenative paradigm in general.</p>
<p>Before I forget to mentioned it: Tim, research assistant in the software engineering department and PhD student, created the tutorials and the exercises and helped out a lot in class. Without him, the course wouldn’t have been possible! …</p>
</blockquote>
]]></description>
			<author><![CDATA[wookay]]></author>
			<pubDate>Fri, 29 Jan 2010 04:05:43 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[C언어를 저만(한글화)의 프로그래밍 언어로 개발하고 싶습니다]]></title>
			<link>http://langdev.net/post/243</link>
			<description><![CDATA[
	
<p>예를들어</p>
<p>printf(“Hello World\n”); 이 있다면</p>
<p>출력하다&nbsp;:</p>
<p>“안녕 세상”</p>
<p>이런식으로 바꿔 저만(한글화)의 프로그래밍언어로 개발하고 싶은데… C언어로 개발해야 하니까 C언어로 API나 MFC로 만들어야 하나요??</p>
<p>비베언어도 C언어로 개발된 언어잖아요…(맞나? ㅎㄷㄷ)</p>
<p>아, 그리고 게시글 보니까</p>
<p>개발 언어는 어디까지 진행하시나요..? G: 문법규격까지만 제정 P: Parser까지도 구현 아마 메뉴얼도 만드실텐데 문서화 도구로서 어떤 것을 진행 혹은 염두하고 계신지요..?</p>
<p>문법규격, parser, 메뉴얼 이란건 또 뭔가요;;;</p>
<p>제가 만들어 제가 사용할 것이기 때문에 할거면 parser까지 구현과 메뉴얼도 만들꺼거든요„,(뭔진 모르겠지만…)</p>
<p>질문이 좀 많았는데 다 알려주시면 감사효 ㅠㅠ</p>
]]></description>
			<author><![CDATA[t00722]]></author>
			<pubDate>Sat, 17 Jan 2009 08:40:47 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[쑥스럽구만유~]]></title>
			<link>http://langdev.net/post/338</link>
			<description><![CDATA[
	
<p>대안언어축제를 한번도 가보지는 않았지만, 또, LangDev 에 대해서 잘 알지는 못하지만, 제 주위에 함수형 프로그래밍을 하시는 분들이, 여기에 많이 가입되어 있는 것처럼 보여서,</p>
<p>가입도 안하고 기욱거렸는데요. 오늘 정식으로 가입을 했네요. 이름과 비밀번호는 쓰는 일이지만, 나름 의미가 있어요 ㅎㅎ</p>
<p>앞으로 잘 부탁드려요. 근데 사람이 많지 않네요 ㅎㅎ</p>
]]></description>
			<author><![CDATA[권민혁]]></author>
			<pubDate>Fri, 15 Jan 2010 11:51:46 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[졸작으로 컴파일러 공부중입니다. 조언 좀 부탁드립니다.]]></title>
			<link>http://langdev.net/post/336</link>
			<description><![CDATA[
	
<p>졸작으로 컴파일러 만들기로 했습니다. 그리고, 책을 잡고 공부를 시작해서 이제 간간히 Compilers(일명 드래곤북) 중간 코드 생성까지랑 컴파일러 입문(오세만 저)를 읽었습니다.</p>
<p>그리고 나서 뭘 구현할까 생각하다가 함수형 언어쪽으로 마음을 돌렸습니다. 이유는 왠지 멋져보이기 때문이죠-_-; (KLDP랑 블로그에서 함수형 언어에 대한 글 읽은거랑, 하스켈 책 한권 본게 제 지식의 끝입니다. 그것도 제대로 이해했다고 말하긴 절대로 무립니다.)</p>
<p>검색질 끝에 Scheme을 기반으로 하기로 했습니다. 이유야 뭐 문법이 아~~주 간단하기 때문이죠 심지어 파싱이 필요가 없더군요?!!!!!!! 저 같은 초보자한테 딱 좋겠더군요</p>
<p>그래서 교수님께 ‘Scheme 컴파일러를 만들어보겠습니다.’ 라고 말했더니 ‘이미 있는걸 또 만들어서 뭐하나?’ 라고 하시더군요 뭔가 창의적이거나 차별화된 무언가가 들어가야 된다고 하십니다.</p>
<p>생각해보니 얼랭이 떠오르는군요(물론 배워본 적은 없습니다) 그래서 병렬 처리를 Scheme에 접합시키면 어떨까 생각해보는 중입니다. 병렬처리 이론에 대해서 전혀 모른다는 사소한 문제가 있긴 하지만 방학동안 공부하면 어찌 되지 않을까 생각중입니다.</p>
<p>여기서 질문 하나 올리겠습니다.</p>
<p>가능할까요?</p>
<p>문법에 수정이 들어가야 될까요?</p>
<p>좀 더 좋은 아이디어가 없을까요?</p>
<p>P.S 오늘 세미나는 잘 되셨나 모르겠네요. 울산에서 올라갈까 생각하다가 매주 여신다길래 포기했습니다. 슬프군요 ㅠㅠ</p>
]]></description>
			<author><![CDATA[안승해]]></author>
			<pubDate>Sat, 02 Jan 2010 20:25:11 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[프로그래밍 언어론 교재]]></title>
			<link>http://langdev.net/post/337</link>
			<description><![CDATA[
		
<p>교재입니다. 아직 다 만든건 아니구요, 바빠서 -_-;;;;</p>
<p>이 글은 계속 수정되면서 내용이 추가되고 수정될 예정입니다.</p>
]]></description>
			<author><![CDATA[지러]]></author>
			<pubDate>Thu, 07 Jan 2010 19:56:44 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[Programming in Haskell(“하스켈로 배우는 프로그래밍” 원서) 온라인 강좌]]></title>
			<link>http://langdev.net/post/324</link>
			<description><![CDATA[
	
<p>KLDP 댓글로도 남긴 내용인데요 여기다도 남겨 두면 관심 있는 분들이 볼 것 같아서 올립니다. “하스켈로 배우는 프로그래밍”의 원서인 “Programming in Haskell”을 교재로 MS에서 운영하는 C9라는 온라인 TV채널에서 강의가 진행중입니다. 강의하는 Erik Meijer라는 분도 영어를 모국어로 구사하는 사람은 아니라서 말을 그렇게 어렵게 하진 않는 것 같습니다.</p>
<p>벌써 8장까지 나왔는데요, 앞으로 뒷부분 강의도 빨리 나와서 완결 봤으면 좋겠네요 ^^ (완결 된 다음에 심심하면 자막 작업이라도 할까 … 음)</p>
<p><a href="http://channel9.msdn.com/tags/Haskell/">http://channel9.msdn.com/tags/Haskell/</a></p>
<ul>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/">1장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/">2장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/">3장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/">4장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/">5장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/">6장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/">7장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/">8장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13/">9장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13/">10장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-11-of-13/">11장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13/">12장</a></li>
<li><a href="http://channel9.msdn.com/shows/Going+Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13/">13장</a></li>
</ul>
]]></description>
			<author><![CDATA[안기영]]></author>
			<pubDate>Sat, 31 Oct 2009 23:00:15 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[프로그래밍 언어론 기초 세미나 - 20100102 토요일 시작!]]></title>
			<link>http://langdev.net/post/333</link>
			<description><![CDATA[
		
<p>안녕하세요? 강지훈입니다.</p>
<p>다름이 아니라 이번에 제목 그대로 프로그래밍 언어론 기초 세미나를 열려고 해요.</p>
<p>대상은 언어를 아주 간단히 사용해본 적이 있으며 언어 개발에 관심이 있으나 어디서부터 공부를 해야할지 모르겠는 분들이구요,</p>
<p>“세미나”라는 이름을 달고 있지만 일단 강의록을 만들고, 그 강의록대로 공부해보는 형식을 가지려고 하는데요</p>
<p>1월부터 한 주에 한번씩 모여 공부하려고 하는데</p>
<p>관심있으신 분 있으신가요?ㅎ</p>
<hr />
<p>프로그래밍 언어론은 언어 개발하는데 있어서 필수적인 교양입니다. 최근에 유행하고 있는 lambda calculus, closure, eval(run), environment 등등이 어떤 맥락에서 나온 개념인지 제대로 알려면 그동안 축적된 프로그래밍 언어론의 지식이 필요해요. 그런 맥락에서 이 세미나를 제안해 봤습니다~ 많은 분들과 함께하면 좋겠네요!</p>
<hr />
<p>이제 시작하려구요~ 주말에 하자고 하시는 분들이 많아서 토요일 12시로 잡았습니다.</p>
<p>어차피 금요일에 다들 노시느라 바쁘실테니 (ㅋㅋ) 아침 안 드시고 11시에 같이 브런치 드실 분들 같이 먹구 12시부터 하는걸로 해요</p>
<p>시간 2010년 1월 2일 토요일 12시</p>
<p>장소 토즈 아트레온점 (http://www.toz.co.kr/v2/02place/02_main.htm)</p>
<p>커리 Parsing, AST, Execution 일부</p>
<p>전 11시부터 있을거구요, 제 전화번호 공1공ㅋ 육8영육ㅋ 칠1일6이니 오시면 연락주세요~</p>
<p><strong>오실 분들 답글로 좀 달아주세요~ 제 번호로 연락도 부탁드리구요</strong></p>
]]></description>
			<author><![CDATA[강지훈]]></author>
			<pubDate>Mon, 21 Dec 2009 01:32:48 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[게시물 삭제가 안되네요.]]></title>
			<link>http://langdev.net/post/335</link>
			<description><![CDATA[
	
<p>글을 먹어버린 줄 알고 다시 썻다가</p>
<p>한참 뒤에 뜨네요.</p>
<p>그래서 삭제할려고 하니</p>
<p>삭제가 안되네요.</p>
<p>중복된 글이 있으면 보기 흉할 거 같아서 제목이랑 글 내용 바꾸었습니다.</p>
]]></description>
			<author><![CDATA[안승해]]></author>
			<pubDate>Sat, 02 Jan 2010 20:16:21 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[랑데브 DEAP 2009 후기 (덧붙이실 내용 있으심 댓글로 ^^)]]></title>
			<link>http://langdev.net/post/334</link>
			<description><![CDATA[
	
<p><a href="http://langdev.net/deap/2009/">http://langdev.net/deap/2009/</a>에 후기 사진은 올라와 있긴 하지만 간단히 기억나는 바를 정리해 보겠습니다.</p>
<h2>시간순 행사 진행 상황 정리</h2>
<p>행사는 쉬는 시간이 좀 빠듯한 면이 있기는 했지만 시간적으로는 비교적 계획대로 진행되었으므로 프로그램과 크게 어긋나는 예상 밖의 일은 없었습니다. 따라서 행사 프로그램 공지에 나와있지 않는 내용을 중심으로 정리하겠습니다. 특히 발표자분들의 홈페이지만 링크해 놓았지 소개를 자세히 해 놓지 못했는데요, 중간중간 기억나는 대로 정리해 보겠습니다.</p>
<p>첫번째로 김승범 님께서 스퀵을 중심으로 스몰토크에 대해 발표해 주셨습니다. 김승범 님은 한국 스퀵 사용자 모임의 운영자이시며 컴퓨터 교육 관련 세미나나 교재/교구 개발 및 한글화 등의 교육 서비스를 제공하는 컴퓨터 교육 연구소 <a href="http://piny.cc/">파이니(PINY)</a>의 대표이시기도 합니다. 스몰토크의 간략한 역사 및 스퀵 사용법 및 스퀵을 기반으로 하는 교육용 플랫폼을 소개하고 파이니에서 개발하여 공개할 예정인 하드웨어와 연동하는 시연도 해 주셨습니다. 개인적으로 스퀵은 대학원 코스웍에서 접해 보긴 했지만 이렇게 역동적인 데모 및 교육용 플랫폼 시연은 처음 보았는데 준비를 많이 해 주신 것 같았습니다. 생각보다 프로젝터 해상도가 낮아서 스퀵 이미지 해상도를 바꿔서 보여주시느라 좀 기술적이 어려움이 있었음에도 불구하고 좋은 발표를 해 주셔서 감사합니다.</p>
<p>두번째로 김창준 님께서 APL계열 언어인 J언어 튜토리얼을 일상 생활에서 유용하고 편리한 계산을 하는 여러 예제를 튜토리얼로 보여 주셨습니다. 자세한 강좌 내용은 <a href="http://langdev.net/post/332">http://langdev.net/post/332</a> 링크를 올려 주셨습니다. APL 계열 언어는 처음 접해 보았는데 인상적이었습니다. 저는 김승범 님이나 김창준 님 두 분 다 처음 뵈었는데 정말 두분 다 발표하는 데 연륜이나 내공이 느껴지셨고 많이 준비하셔셔 짧은 시간 안에 최대한 많은 것을 흥미롭게 전달하셨다는 느낌을 받았습니다.</p>
<p>세번째로는 제가 하스켈 개발을 위한 가장 기본적인 하스켈 플랫폼 설치 및 하스켈 개발자들이 가장 일반적으로 사용하는 툴에 대한 소개를 하면서 직접 소프트웨어 패키지를 설치하고 아주 작은 예제를 통해 테스팅과 패키징을 시연한 후 하스켈 분산 서버 프레임워크 라이브러리인 happstack에 대한 소개와 간단한 데모를 보여 드렸습니다. 준비한 것을 다 보여드리기는 했지만 중간에 오류를 즉석으로 수정하기도 했고 여러가지를 급하게 다 다루려다 보니 제대로 전달이 되었는지 저도 잘 모르겠습니다. 실제로 저런 툴을 사용하는 이유가 뭐냐는 질문을 뒤풀이 비슷한 행사 후 모임에서 받기도 한 걸 보면 앞의 두 분마큼 잘 전달하진 못한 것 같았습니다 ㅠㅠ 발표하는 내공을 더 키워야겠다고 느끼는 시간이었습니다 -_-;; 그래도 강의 전반부는 비교적 자세히 정리해 놓았으니 <a href="http://langdev.net/post/329">http://langdev.net/post/329</a> 글을 따라 읽어보시면 대략의 전모가 파악이 되실 것이고 후반부 예제들은 일단 개략적인 소개와 예제 프로젝트 저장소 링크는 걸어 놓았습니다 <a href="http://langdev.net/post/330">http://langdev.net/post/330</a></p>
<p>네번째로 지금은 소프트웨어 테스팅 기술에 주력하는 슈어소프트(SureSoft)에서 팀장님으로 계시는 박달호 님께서 얼랑에 대한 기본적인 소개를 차분하게 차근차근 해 주셨고, 또 이전 직장에서 했던 프로젝트에 얼랑을 도입한 사례 및 현재 개인적으로 진행하고 있는 위키 시스템 프로젝트를 예제로 토큰분석(lexing) 구문분석(parsing)이 작동하는 것과 테스팅 등을 시연해 주시기도 했으며, 회사에서 Erlang같은 개발자들 사이에서 비교적 생소한 언어를 사용하게 된 배경이나 동기에 대해는 “생산성”과 “재미있게 살기 위해서”라는 재미있는 답변을 해 주셨습니다. (발표 슬라이드를 열심히 준비하셨는데 혹시 가능하다면 구해서 여기다 링크를 걸든지 합시다)</p>
<p>마지막으로 랑데브 운영자이시며 당시 소집해제가 얼마 남지 않으셨고 최근에 민간인이 되신 홍민희 님게서 마크다운과 Io에 대해 발표해 주셨습니다. 미리 내용을 준비하시긴 했겠지만 죄종적으로 랑데브 게시판에 실시간으로 발표자료를 행사 현장에서 정리하시는 모습을 제가 바로 옆에서 보았는데요 <a href="http://langdev.net/post/331">http://langdev.net/post/331</a> 그렇게 실시간으로 발표 자료를 최종 정리하시고도 막힘없이 발표 내용을 진행하시는 랑데브 대표로서 우월한 모습을 보여 주셨습니다. 마크다운 기본 문법과 pandoc을 비롯한 마크다운 프로세싱 툴/라이브러리 소개, 그리고 Io언어에 대해서도 짧은 시간 안에 특징을 정리해 주셨습니다. 참고로 후기 사진에서 보면 베스트 드레서(맨 앞줄 캐주얼 정장 스타일, 빨간 모자를 쓰신 김승범 님 바로 옆, 그 옆에 키크신 도인같은 포스를 풍기는 분이 김창준 님, 그 옆에 빨간옷 입은 사람이 바로 접니다;;; 근데 박달호님은 어디 계시죠 사잔 찍을 때도 계셨던 거 같은데 글쓰면서 찾아보니 또 못찾겠네요)로 패션을 선도하고 있는 분이 바로 홍민희 님입니다.</p>
<h2>행사에 대한 평가 및 토의사항</h2>
<p>우선은 추운 날씨이고 주말에 하는 행사임에도 불구하고 정말로 신청한 만큼 예상대로 많은 인원이 와 주셨습니다. 원래는 기말고사 기간이라 한 30명 정도 오면 많이 오는 정도라고 생각하고 기획했던 행사였는데 워낙 훌륭한 강사분들이 자리를 빛내 주셔서 아마도 저희가 처음 생각했던 것보다 훨씬 많은 50명을 훌쩍 넘게 참여했다는 점에서는 매우 성공적이었습니다. 하지만 그러다 보니 랩탑으로 발표자와 실습을 다같이 따라해 본다는 컨셉이 행사 규모를 따라가기에는 무리가 있어 계획했던 컨셉대로 원활하게 행사를 진행하는 데는 완전히 성공하지는 못했던 같습니다. 행사장 상황이 전원과 네트웍 모두 생각보다 열악했는데 전원은 멀티탭을 랑데브에서 미리 준비를 많이 해서 문제가 없었는데 네트웍 대역폭이 안나와서 많은 인원이 동시에 네트웍을 사용하기에 어려운 상황인 것도 실습에 많은 방해가 되지 않았나 생각합니다. 앞으로 이러한 모임을 또 기획하게 된다면 (1) 사람이 많아질 경우 관심 분야별로 여러 세션으로 모임을 분리해서 동시진행하여 한 세션당 참가 인원을 적정 수준으로 유지 (2) 랑데브가 언어 사용으로 끝나는 것이 아니라 언어 개발에 관심 있는 모임인 만큼 언어 개발에 보다 특화되고 전문적인 주제로 다음 번 모임은 진행해 보면 좋겠다 등의 의견이 나왔습니다.</p>
<p>그리고 한가지 더 아쉬웠던 점은 저희가 강의 내용을 녹화했으면 좋겠다고 생각을 했는데, 행사장 상황 문제로 여력이 없어 화면녹화 및 음성녹화 환경을 셋업을 제대로 하지 못해서 유익한 강좌 내용을 기록으로 남가지 못한 것이 대단히 아쉬웠습니다. 혹시 다음에 이런 행사를 하게 된다면 기록으로 남기는 것도 신경쓸 수 있는 여력이 되었으면 좋겠습니다.</p>
]]></description>
			<author><![CDATA[안기영]]></author>
			<pubDate>Thu, 24 Dec 2009 17:27:48 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[일상적 J 프로그래밍]]></title>
			<link>http://langdev.net/post/332</link>
			<description><![CDATA[
	
<p>파이어폭스와 맥 사파리에서 clipboard기능이 안되던 부분을 수정하고 전체적으로 설명을 더 넣었습니다.</p>
<p>http://agileconsulting.co.kr/dailyj.ijt</p>
<p>에서 최신 버전을 받으실 수 있습니다.</p>
]]></description>
			<author><![CDATA[김창준]]></author>
			<pubDate>Mon, 14 Dec 2009 00:11:46 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[The Go Programming Language]]></title>
			<link>http://langdev.net/post/327</link>
			<description><![CDATA[
	
<p>파이썬 메일링 리스트를 살펴보다가 누가 Go PL에 대해서 글을 올렸더군요.</p>
<p>구글에서 발표한 언어구요.</p>
<p>공식사이트를 가보니 a systems programming language 라고 대문에 적혀있네요.</p>
<p>과연 어떤 언어인지.. 구글 개발팀에서 자바처럼 프로젝트 domain 용으로 사용하다가 공식 발표를 한건지.. 살펴보는중입니다.</p>
<p><a href="http://golang.org/">공식사이트</a> <a href="http://www.youtube.com/watch?v=rKnDgT73v8s">발표동영상</a></p>
]]></description>
			<author><![CDATA[rafael]]></author>
			<pubDate>Thu, 12 Nov 2009 23:50:59 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[DEAP 2009 하스켈 강좌 전반부 - 하스켈 플랫폼 설치]]></title>
			<link>http://langdev.net/post/329</link>
			<description><![CDATA[
	
<p>하스켈 개발환경을 구성하는 가장 간단한 방법은 <a href="http://hackage.haskell.org/platform/">Haskell platform</a>이라는 하스켈 관련 툴/라이브러리 패키지를 설치한다. 주요 리눅스의 배포판에서 Haskell platform 패키지를 제공하므로 배포판 패키지가 있다면 배포판 패키지를 설치하는 것이 좋다. 윈도우즈의 경우, 설치를 제대로 마쳤다면 커맨드 라인에서 다음과 같이 ghc 컴파일러, ghci 대화식 환경, ghc-pkg 패키지 관리 유틸리티 및 cabal 하스켈 빌드 시스템이 동작함을 확인할 수 있을 것이다.</p>
<p>원래대로라면 하스켈 플랫폼(Haskell platform) 홈페이지에서 내려받아야 하지만, 국내에서 접속할 경우 회선 속도가 특히 느리기 때문에 이번 행사를 위해 따로 마련해 놓은 <a href="http://langdev.net/deap/2009/resources.html">DEAP 2009 리소스 페이지</a>에서 내려받으면 훨씬 빨리 받을 수 있다.</p>
<pre>
<code>Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\ahn&gt;ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.10.4

C:\Documents and Settings\ahn&gt;ghci
GHCi, version 6.10.4: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer ... linking ... done.
Loading package base ... linking ... done.
Prelude&gt; sum [1..10]
55
Prelude&gt; product [1..10]
3628800
Prelude&gt; :q
Leaving GHCi.

C:\Documents and Settings\ahn&gt;ghc-pkg list
C:/Program Files/Haskell Platform/2009.2.0.2\package.conf:
    Cabal-1.6.0.3, GLUT-2.1.1.2, HTTP-4000.0.6, HUnit-1.2.0.3,
    OpenGL-2.2.1.1, QuickCheck-1.2.0.0, Win32-2.2.0.0, array-0.2.0.0,
    base-3.0.3.1, base-4.1.0.0, bytestring-0.9.1.4, cgi-3001.1.7.1,
    containers-0.2.0.1, directory-1.0.0.3, (dph-base-0.3),
    (dph-par-0.3), (dph-prim-interface-0.3), (dph-prim-par-0.3),
    (dph-prim-seq-0.3), (dph-seq-0.3), extensible-exceptions-0.1.1.0,
    fgl-5.4.2.2, filepath-1.1.0.2, (ghc-6.10.4), ghc-prim-0.1.0.0,
    haddock-2.4.2, haskell-src-1.0.1.3, haskell98-1.0.1.0, hpc-0.5.0.3,
    html-1.0.1.2, integer-0.1.0.1, mtl-1.1.0.2, network-2.2.1.4,
    old-locale-1.0.0.1, old-time-1.0.0.2, packedstring-0.1.0.1,
    parallel-1.1.0.1, parsec-2.1.0.1, pretty-1.0.1.0, process-1.0.1.1,
    random-1.0.0.1, regex-base-0.72.0.2, regex-compat-0.71.0.1,
    regex-posix-0.72.0.3, rts-1.0, stm-2.1.1.2, syb-0.1.0.1,
    template-haskell-2.3.0.1, time-1.1.2.4, xhtml-3000.2.0.1,
    zlib-0.5.0.0

C:\Documents and Settings\ahn&gt;cabal --version
cabal-install version 0.6.2
using version 1.6.0.3 of the Cabal library
</code>
</pre>
<p>설치를 성공적으로 마쳤는지 더 확실히 확인하기 위하여 하스켈 프로그래머들이 주로 사용하는 하스켈로 짠 분산 버전 관리 시스템인 darcs와 또 앞으로 있을 홍민희 님의 강좌에서 사용할 pandoc이라는 마크업 변환 유틸리티를 cabal을 이용해서 소스로부터 컴파일하여 설치해 보겠다.</p>
<p>darcs나 pandoc을 설치하기 위해서는 하스켈 플랫폼(Haskell platorm)에 있지 않는 추가 라이브러리도 필요하다. 하지만 cabal은 BSD의 port처럼 패키지 의존성을 자동으로 검사하여 필요한 의존 패키지를 자동으로 먼저 설치해 주므로 명렁어 하나로 바로 darcs와 pandoc을 빌드하여 설치할 수 있다.</p>
<p>먼저 cabal 패키지 정보를 다음과 같이 hackage로부터 내려받아 최신으로 업데이트해야 한다.</p>
<pre>
<code>C:\Documents and Settings\ahn&gt;cabal update
Config file C:\Documents and Settings\ahn\Application Data\cabal\config not
found.
Writing default configuration to C:\Documents and Settings\ahn\Application
Data\cabal\config
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
</code>
</pre>
<p>새 버전의 cabal-install, 즉 지금 사용하고 잇는 이 cabal 이라는 명령줄 프로그램을 업그레이드할 수 있다고 친절하게 알려준다. 우선 pandoc을 설치하기 전에 cabal-install 패키지부터 업그레이드하겠다.</p>
<pre>
<code>C:\Documents and Settings\ahn&gt;cabal install cabal-install
Resolving dependencies...
Downloading cabal-install-0.6.4...
Configuring cabal-install-0.6.4...
Preprocessing executables for cabal-install-0.6.4...
Building cabal-install-0.6.4...
[ 1 of 34] Compiling Distribution.Client.Check ( Distribution\Client\Check.hs, d
ist\build\cabal\cabal-tmp\Distribution\Client\Check.o )
...
...
...
[34 of 34] Compiling Main             ( Main.hs, dist\build\cabal\cabal-tmp\Main
.o )
Linking dist\build\cabal\cabal.exe ...
Installing executable(s) in C:\Program Files\Haskell\bin

C:\Documents and Settings\ahn&gt;cabal --version
cabal-install version 0.6.2
using version 1.6.0.3 of the Cabal library
</code>
</pre>
<p>그런데 cabal-install 패키지 즉 cabal 명렁어를 업그레이드는 했지만 버전이 바뀌지 않았다! 이게 어찌 된 일일까? 이것은 하스켈 플랫폼에서 설치한 파일들과 cabal이 설치한 파일의 경로가 서로 다르며 하스켈 플랫폼 실행파일 디렉토리의 Path가 cabal의 실행파일 설치 디렉토리보다 것보다 앞서므로 계속해서 예전의 cabal 명령어가 실행되는 것 뿐이다.</p>
<pre>
<code>C:\Documents and Settings\ahn&gt;set
...
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ES
Tsoft\ALZip;C:\Program Files\Haskell Platform\2009.2.0.2\bin;C:\Program Files\Ha
skell Platform\2009.2.0.2\extralibs\bin;C:\Program Files\Haskell\bin;C:\Program
...
C:\Documents and Settings\ahn&gt;dir "C:\Program Files\Haskell Platform\2009.2.0.2\
bin"
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: BC8D-766C

 C:\Program Files\Haskell Platform\2009.2.0.2\bin 디렉터리

2009-12-08  오후 01:18    &lt;DIR&gt;          .
2009-12-08  오후 01:18    &lt;DIR&gt;          ..
2009-07-15  오전 05:53           525,951 ar.exe
2009-07-15  오전 05:50            18,491 ghc-6.10.4.exe
2009-07-15  오전 05:48         1,051,648 ghc-pkg.exe
2009-07-15  오전 05:53        13,884,928 ghc.exe
2009-07-15  오전 05:50            21,931 ghci-6.10.4.exe
2009-07-15  오전 05:50            21,931 ghci.exe
2009-07-15  오전 05:50                51 ghcii-6.10.4.sh
2009-07-15  오전 05:50                51 ghcii.sh
2009-07-15  오전 05:49        13,731,840 haddock.exe
2009-07-15  오전 05:48           516,096 hasktags.exe
2009-07-15  오전 05:48            56,067 hp2ps.exe
2009-07-15  오전 05:48           985,600 hpc.exe
2009-07-15  오전 05:49           771,072 hsc2hs.exe
2009-07-15  오전 05:48           535,040 runghc.exe
2009-07-15  오전 05:50           535,040 runhaskell.exe
2009-07-15  오전 05:53           644,096 windres.exe
              16개 파일          33,299,833 바이트
               2개 디렉터리   5,919,203,328 바이트 남음

C:\Documents and Settings\ahn&gt;dir "C:\Program Files\Haskell Platform\2009.2.0.2\
\extralibs\bin"
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: BC8D-766C

 C:\Program Files\Haskell Platform\2009.2.0.2\extralibs\bin 디렉터리

2009-12-08  오후 01:19    &lt;DIR&gt;          .
2009-12-08  오후 01:19    &lt;DIR&gt;          ..
2009-07-22  오후 03:31         1,555,609 alex.exe
2009-07-22  오후 03:28         9,771,310 cabal.exe
2009-07-22  오후 03:32         2,229,674 happy.exe
               3개 파일          13,556,593 바이트
               2개 디렉터리   5,919,203,328 바이트 남음

C:\Documents and Settings\ahn&gt;dir "C:\Program Files\Haskell\bin"
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: BC8D-766C

 C:\Program Files\Haskell\bin 디렉터리

2009-12-08  오후 01:35    &lt;DIR&gt;          .
2009-12-08  오후 01:35    &lt;DIR&gt;          ..
2009-12-08  오후 01:35         9,852,265 cabal.exe
               1개 파일           9,852,265 바이트
               2개 디렉터리   5,919,203,328 바이트 남음

C:\Documents and Settings\ahn&gt;"C:\Program Files\Haskell\bin\cabal" --version
cabal-install version 0.6.4
using version 1.6.0.3 of the Cabal library
</code>
</pre>
<p>즉, 하스켈의 lex와 yacc에 해당하는 alex와 happy, 그리고 cabal은 새로 업그레이드를 해도 계속 하스켈 플랫폼에서 처음 설치한 것으로 실행되도록 Path가 잡혀 있다. 이것이 마음에 들지 않으면 cabal의 실행파일 설치 디렉토리(C:\Program Files\Haskell\bin)를 Path에서 하스켈 플랫폼의 디렉토리(C:\Program Files\Haskell Platform\2009.2.0.2\extralibs\bin)보다 앞에 오도록 둘의 순서를 바꾸면 된다. 하지만 이 강좌에서는 크게 상관이 없으므로 그냥 이 상태로 cabal 0.6.2를 계속 쓰도록 하겠다.</p>
<p>참고로 리눅스에서도 이와 비슷한 상황이 발생하는데, 리눅스에서는 자신의 홈디렉토리 아래 cabal로 빌드한 실행파일들이 설치되는 ~/.cabal/bin을 path에 수동으로 추가해 주어야만 한다.</p>
<p>설치는 앞서와 마찬가지로 cabal install darcs 그리고 cabal install pandoc 으로 따로따로 설치할 수도 있지만 cabal install darcs pandoc 이렇게 여러개의 패키지를 한꺼번에 설치하도록 명령할 수도 있다. 컴파일이 한세월 걸리므로 기다리는 동안 <a href="http://hackage.haskell.org/">Hakcage 홈페이지</a>를 살펴보기로 한다. Hackage에는 많은 라이브러리와 프로그램 패키지들이 올라와 있는데 그 중에서 우리가 설치하고 있는 darcs와 pandoc의 패키지 정보 페이지를 보면서 시간을 때운다.</p>
<pre>
<code>C:\Documents and Settings\ahn&gt;cabal install darcs pandoc
Resolving dependencies...
Downloading binary-0.5.0.2...
Configuring binary-0.5.0.2...
Preprocessing library binary-0.5.0.2...
Building binary-0.5.0.2...
[1 of 4] Compiling Data.Binary.Builder ( src\Data\Binary\Builder.hs, dist\build\
Data\Binary\Builder.o )
...
...
...
...
...
...
[30 of 30] Compiling Main             ( src\pandoc.hs, dist\build\pandoc\pandoc-
tmp\Main.o )
Linking dist\build\pandoc\pandoc.exe ...
Created man\man1\pandoc.1
Created man\man1\hsmarkdown.1
Created man\man1\html2markdown.1
Created man\man1\markdown2pdf.1
Installing library in C:\Program Files\Haskell\pandoc-1.2.1\ghc-6.10.4
Installing executable(s) in C:\Program Files\Haskell\bin
Registering pandoc-1.2.1...
Reading package info from "dist\\installed-pkg-config" ... done.
Writing new package config file... done.
cabal: Error: some packages failed to install:
darcs-2.3.1 failed during the configure step. The exception was:
exit: ExitFailure 1

C:\Documents and Settings\ahn&gt;cabal --version
cabal-install version 0.6.2
using version 1.6.0.3 of the Cabal library

C:\Documents and Settings\ahn&gt;pandoc --version
pandoc 1.2.1
Copyright (C) 2006-8 John MacFarlane
Web:  http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions.  There is no
warranty, not even for merchantability or fitness for a particular purpose.

C:\Documents and Settings\ahn&gt;darcs --version
'darcs'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
배치 파일이 아닙니다.
</code>
</pre>
<p>이와 같이 pandoc은 설치 성공했지만 darcs는 설치를 실패했다. 하스켈 개발자들은 리눅스/유닉스(Mac OS X 포함) 환경에서 개발하는 비율이 높기 때문에 리눅스/유닉스 환경에서만 빌드가 되거나, 혹은 유닉스 환경에서는 기본 설정으로 빌드가 되지만 윈도우즈 별도의 옵션을 주어서 빌드해야 하는 경우가 있다. 특히 유닉스에서 주로 쓰는 C라이브러리를 링크할 때가 그러하다. 간혹 반대로 윈도우즈에서만 빌드가 되는 윈도우즈 전용 라이브러리도 있다.</p>
<p>에러 메시지를 다시 한번 보기 위해 cabal isntall darcs를 다시 한번 실행해 보았다.</p>
<pre>
<code>C:\Documents and Settings\ahn&gt;cabal install darcs
Resolving dependencies...
[1 of 2] Compiling Distribution.ShellHarness ( C:\DOCUME~1\ahn\LOCALS~1\Temp\dar
cs-2.3.13104\darcs-2.3.1\Distribution\ShellHarness.hs, C:\DOCUME~1\ahn\LOCALS~1\
Temp\darcs-2.3.13104\darcs-2.3.1\dist\setup\Distribution\ShellHarness.o )
[2 of 2] Compiling Main             ( C:\DOCUME~1\ahn\LOCALS~1\Temp\darcs-2.3.13
104\darcs-2.3.1\Setup.lhs, C:\DOCUME~1\ahn\LOCALS~1\Temp\darcs-2.3.13104\darcs-2
.3.1\dist\setup\Main.o )
Linking C:\DOCUME~1\ahn\LOCALS~1\Temp\darcs-2.3.13104\darcs-2.3.1\dist\setup\set
up.exe ...
Configuring darcs-2.3.1...
setup.exe: Missing dependencies on foreign libraries:
* Missing header file: curl/curl.h
* Missing C libraries: curl, curl
This problem can usually be solved by installing the system packages that
provide these libraries (you may need the "-dev" versions). If the libraries
are already installed but in a non-standard location then you can use the
flags --extra-include-dirs= and --extra-lib-dirs= to specify where they are.
cabal: Error: some packages failed to install:
darcs-2.3.1 failed during the configure step. The exception was:
exit: ExitFailure 1
</code>
</pre>
<p>참고로 darcs나 pandoc은 하스켈 프로그래머가 아니라도 많이 쓰는 유틸리티이기 때문에 사실 많은 플랫폼에서 바이너리나 패키지로 설치할 수 있다. 여기서 이렇게 cabal로 소스 설치를 해보는 것은 cabal 사용법을 보여줌으로써 cabal 사용법에 익숙해지도록 돕기 위함이다.</p>
<p>darcs의 경우는 다행히 별도의 윈도우즈에서도 -f-curl 옵션을 붙여서 다음과 같이 설치할 수 있다. 또 한세월 걸리기 때문에 이번에는 하스켈 홈페이지에서 <a href="http://www.haskell.org/onlinereport/">Haskell 98 Language Report</a>를 찾아서 좀 뒤적거려 보다고 또 <a href="http://pl.pusan.ac.kr/~haskell/">하스켈로 배우는 프로그래밍(Programming in Haskell 우리말 판) 홈페이지</a>에서 책광고 좀 하고 <a href="http://langdev.net/post/324">영문 온라인 동영상 강좌</a>도 안내하면서 시간을 때운다.</p>
<p>만일 자신의 개발 플랫폼에 하스켈 플랫폼(Haskell platform)이 바이너리나 패키지로 제공되지 않는 경우에는 GHC와 Cabal을 개별적으로 설치한 다음 필요한 하스켈 관련 툴/라이브러리를 cabal을 이용해 하나씩 소스 컴파일을 통해 설치하 나가면 된다. <a href="http://www.haskell.org/ghc/">GHC 홈페이지</a>의 <a href="http://www.haskell.org/ghc/download.html">Download 페이지</a>에서 현재 안정 버전인 <a href="http://www.haskell.org/ghc/download_ghc_6_10_4.html">6.10.4 버전 다운로드 페이지</a>로 가서 각 운영체제 플랫폼에 맞는 GHC를 내려받아 설치한다. 윈도우즈나 OS X는 여기에 있는 바이너리로 설치치파일을 이용하는 것이 좋다. 단, 리눅스의 경우는 배포판 패키지로 설치하는 것이 편하므로 <a href="http://www.haskell.org/ghc/distribution_packages.html">Distribution package 페이지</a>를 참조하여 각 리눅스 배포판에서 제공하는 ghc 패키지를 설치한다. 그 다음으로는 <a href="http://www.haskell.org/cabal">Cabal</a>을 설치해야 하는데 [Cabal 다운로드 페이지]를 참조하여 설치하면 될 것이다. 하스켈 플랫폼이 제공되는 환경이라도 하스켈 플랫폼에 구애받지 않고 더 최신 버전 라이브러리를 사용하고 싶을 경우에도 이러한 개별 패키지 설치 방법이 더 적당할 수도 있다.</p>
]]></description>
			<author><![CDATA[안기영]]></author>
			<pubDate>Tue, 08 Dec 2009 15:14:43 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[워드프로세서 버리고 Markdown 줍기 + Io 소개]]></title>
			<link>http://langdev.net/post/331</link>
			<description><![CDATA[
	
<h1>워드프로세서 버리고 Markdown 줍기</h1>
<h2>Markdown</h2>
<p>John Gruber가 만든 마크업 언어입니다. 이 발표 자료도 Markdown으로 작성했습니다! 문법이 투명하여 컴파일하지 않은 평문 텍스트 자체로도 가독성이 높은 것이 특징입니다.</p>
<p>문법이 투명하다는 것이 무슨 뜻일까요? Markdown의 문법은 메일링리스트에서 자주 사용되는 서식들로부터 가져왔습니다. 예를 들어 메일에서 인용을 할 때 문장의 왼쪽 처음에 <code>&gt;</code>를 추가하는데, Markdown의 인용 문법은 그것을 그대로 사용합니다. 강조를 할 단어는 <code>*</code>나 <code>_</code>로 감싸고, 가로줄을 추가할 때는 단순히 <code>-----</code>와 같이 긴 줄을 그리는 식으로 표현합니다. 제목 역시 다음과 같이 씁니다.</p>
<pre>
<code>H1 Title
========

H2 Title
--------
</code>
</pre>
<p>이런 식으로, 평문 자체도 사람이 보기에는 서식이 느껴지기 때문에, 잘 작성된 Markdown 문서는 HTML 등으로 번역하기 이전의 평문 텍스트로도 매우 예쁘고 읽기 쉽게 보입니다. 이 발표 자료의 <a href="http://github.com/dahlia/misc/raw/master/presentations/deap-2009-markdown-io/index.markdown">원문 평문 텍스트</a>를 한번 보세요,</p>
<h2><a href="http://michelf.com/projects/php-markdown/extra/">Markdown Extra</a></h2>
<p>Markdown에 표(tables), 정의 목록(definition lists), 약자(abbreviations), 각주(footnotes) 등의 추가적인 서식을 더 추가한 명세입니다.</p>
<p><a href="http://michelf.com/projects/php-markdown/extra/">PHP Markdown Extra</a>, <a href="http://johnmacfarlane.net/pandoc/">Pandoc</a> 등의 주요 구현들이 이것을 구현하고 있습니다.</p>
<h2>주요 구현들</h2>
<dl>
<dt><a href="http://daringfireball.net/projects/markdown/">Markdown</a></dt>
<dd>Markdown을 디자인한 John Gruber가 Perl로 작성한 최초 구현.<sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup></dd>
<dt><a href="http://michelf.com/projects/php-markdown/">PHP Markdown</a></dt>
<dd>Markdown Extra를 디자인한 Michel Fortin이 PHP로 작성한 버전. 아래 언급한 Pandoc을 제외하면 가장 정확한 처리를 합니다.</dd>
<dt><a href="http://maruku.rubyforge.org/">Maruku</a></dt>
<dd>Ruby로 작성된 구현으로, 확장 문법을 추가하기 쉽습니다.</dd>
<dt><a href="http://johnmacfarlane.net/pandoc/">Pandoc</a></dt>
<dd>Haskell로 작성된 버전. 가장 정확하고 빠른 구현. 내부적으로 문서 트리를 생성하는 식으로 작동합니다.</dd>
</dl>
<h1>Io 소개</h1>
<p><a href="http://www.dekorte.com/">Steve Dekorte</a>가 만든 최소주의적 디자인의 프로그래밍 언어입니다. 많은 부분에서 Lisp을 계승하여 리엔지니어링했습니다. Io 구현은 아래 사이트에서 구할 수 있습니다.</p>
<p><a href="http://iolanguage.com/">http://iolanguage.com/</a></p>
<p>현재는 ANSI C로 작성된 단 하나의 구현만 존재합니다.</p>
<h2>특징</h2>
<ul>
<li>예약어 전혀 없음</li>
<li>연산자도 없음 (특정 식별자의 우선 순위를 <strong>런타임에</strong> 맘대로 바꿀 수 있음)</li>
<li>프로토타입 기반 객체 지향 프로그래밍</li>
<li>Homoiconicity (Lisp과 같은 데이터로서의 코드)</li>
<li>Actor 기반 동시성 프로그래밍</li>
<li>작은 사이즈, 높은 이식성 (100% ANSI C로 작성됨)</li>
<li>임베드하기 쉬움</li>
</ul>
<h2>설치</h2>
<p>Windows에서는 .exe 파일로 컴파일된 바이너리를 찾아서 받습니다.</p>
<p><a href="http://homepage.mac.com/jamesrburgess/Stuff/">http://homepage.mac.com/jamesrburgess/Stuff/</a></p>
<p>나머지 플랫폼에서는 소스 코드를 컴파일하여 설치합니다. 일반적인 소스 컴파일 방법과 크게 다르지는 않습니다.</p>
<pre>
<code>$ io
io: error while loading shared libraries: libiovmall.so: cannot open shared
    object file: No such file or directory
</code>
</pre>
<p>위와 같은 오류가 나는 분들은 ld 경로에 <code>/usr/local/lib</code> 디렉토리를 추가하시면 됩니다.</p>
<h2>기본적인 문법</h2>
<p>Io의 메세지 문법은 Lisp의 S-expression과 마찬가지로 문법이 없다시피한 최소한의 규칙만을 갖습니다.</p>
<pre>
<code>receiver method(a, r, g, s)
</code>
</pre>
<p>리시버가 생략되면 현재 <strong>문맥</strong>(context) 객체의 슬롯(slot)을 찾습니다.</p>
<pre>
<code>method(args)
</code>
</pre>
<p>인자가 없을 경우 괄호를 생략할 수 있습니다.</p>
<pre>
<code>method()
method
</code>
</pre>
<p>연사자가 있긴 하지만 일반 메서드와 다른 것은 없습니다.</p>
<pre>
<code>Io&gt; 1 + 2
==&gt; 3
Io&gt; 1 +(2)
==&gt; 3
</code>
</pre>
<h2>계산기로 쓰기</h2>
<p><abbr title="Read-Eval-Print Loop">REPL</abbr>을 제공하는 다른 언어들과 마찬가지로 Io도 계산기처럼 쓸 수 있습니다.</p>
<pre>
<code>Io&gt; 123 + 456
==&gt; 579
Io&gt; 123 - 12
==&gt; 111
Io&gt; 12 * 17
==&gt; 204
Io&gt; 55 / 4
==&gt; 13.75
</code>
</pre>
<h2>주요 객체들</h2>
<ul>
<li><code>nil</code></li>
<li>Booleans: <code>true</code>, <code>false</code></li>
<li>Numbers: <code>2</code>, <code>-5</code>, <code>3.14</code></li>
<li>Strings: <code>"string"</code></li>
<li>Lists: <code>list(2, -5, "string", nil, true, false)</code></li>
<li>Lambda: <code>method(a, b, a + b)</code></li>
</ul>
<h2>프로토타입 기반 객체 지향 언어 (prototype-based object orientation)</h2>
<p>우리가 사용하는 대부분의 객체 지향 언어들은 클래스(class)를 상속(inheritance), 실체화(instantiation)하는 개념을 기본으로 합니다. Io는 클래스 기반의 객체 지향 언어가 아니라 프로토타입 기반의 객체 지향 언어로, 클래스라는 것을 배제한 상태에서 객체 지향 프로그래밍을 합니다.</p>
<p>Io에서는 클래스와 인스턴스를 나누지 않고 대신 객체만 존재합니다. 구현 상속과 실체화를 하는 대신 복제(cloning)라는 것을 쓰며 타입이 없습니다.</p>
<table>
<thead>
<tr>
<th>프로토타입 기반 OO</th>
<th>클래스 기반 OO</th>
</tr>
</thead>
<tbody>
<tr>
<td>객체, 원형</td>
<td>클래스</td>
</tr>
<tr>
<td>객체</td>
<td>인스턴스</td>
</tr>
<tr>
<td>X의 원형</td>
<td>X의 클래스</td>
</tr>
<tr>
<td>X를 복제한 객체</td>
<td>X의 인스턴스</td>
</tr>
<tr>
<td>복제</td>
<td>상속</td>
</tr>
<tr>
<td>복제</td>
<td>실체화</td>
</tr>
<tr>
<td>원형</td>
<td>수퍼클래스(superclass)</td>
</tr>
<tr>
<td>복제된 객체</td>
<td>서브클래스(subclass)</td>
</tr>
</tbody>
</table>
<h2>객체 만들기</h2>
<pre>
<code>Shape := Object clone do(
    draw := method(...)
)

Triangle := Shape clone do(
    draw := method(...)
)

Rectangle := Shape clone do(...)
Circle := Shape clone do(...)

aRectangle := Circle clone do(
    x := 5
    y := 10
    width := 100
    height := 150
    color := Color clone do(
        red := 0
        green := 0
        blue := 0
    )
)
</code>
</pre>
<h2>피보나치 수 (Fibonacci number)</h2>
<pre>
<code>Number fibonacci := method((self - 1) fibonacci + (self - 2) fibonacci)
1 fibonacci := 1
0 fibonacci := 0
</code>
</pre>
<p>다형성(polymorphism)? 오버로드(overloading)? 특수화(specialization)?</p>
<h2>지연 평가 (lazy evaluation)</h2>
<p>Io의 메서드는 기본적으로 인자의 표현식을 평가하지 않고 <code>Message</code> 객체 형태로 전달합니다.</p>
<pre>
<code>define := method(
    name := call message argAt(0) name
    value := call message argAt(1) doInContext(call sender)
    call sender setSlot(name, value)
    value
)
</code>
</pre>
<p>위와 같이 정의한 <code>define</code> 메서드는 아래처럼 사용할 수 있습니다.</p>
<pre>
<code>Io&gt; define(pi, 3.14)
==&gt; 3.1400000000000001
Io&gt; pi
==&gt; 3.1400000000000001
Io&gt; define(abc, pi * 100)
==&gt; 314
Io&gt; abc
==&gt; 314
</code>
</pre>
<p>어떻게 저런 식으로 돌아갈 수 있는 걸까요? 주요 객체에 대해 설명을 하겠습니다.</p>
<dl>
<dt><code>call</code> (<code>Call</code>)</dt>
<dd>호출에 관한 정보를 담는 <code>Call</code> 객체.</dd>
<dt><code>Call sender</code> (<code>Object</code>)</dt>
<dd>메세지를 보낸 쪽 객체. 즉 호출한 쪽의 문맥.</dd>
<dt><code>Call message</code> (<code>Message</code>)</dt>
<dd>호출하는 표현식을 담는 <code>Message</code> 객체. 이 경우에는 <code>message(define(pi, 3.14))</code>나 <code>message(define(abc, pi *(100)))</code>.</dd>
<dt><code>Message arguments</code> (<code>List</code>)</dt>
<dd>호출하는 메세지의 인수 리스트. 평가되지 않은 <code>Message</code> 객체의 목록. 이 경우에는 <code>list(pi, 3.14)</code>나 <code>list(abc, pi *(100))</code>.</dd>
<dt><code>Message argAt</code> (<code>Message</code>)</dt>
<dd><code>call message arguments at</code>의 줄임.</dd>
<dt><code>Message doInContext</code> (<code>Object</code>)</dt>
<dd>인자로 넘겨진 객체를 문맥으로 하여 메세지를 호출.</dd>
</dl>
<h2>Lisp과 비교하자면?</h2>
<p><code>Message</code> 객체는 코드를 담습니다. Lisp으로 치자면 리스트입니다.</p>
<p><code>message</code> 함수는 Lisp의 <code>quote</code>와 같습니다.</p>
<pre>
<code>Io&gt; message(abc(a, b, c))
==&gt; abc(a, b, c)
Io&gt; message(abc(a, b, c)) arguments
==&gt; list(a, b, c)
Io&gt; message(abc(a, b, c)) name
==&gt; abc
</code>
</pre>
<p><code>Message doInContext</code> 메서드는 Lisp의 <code>eval</code>과 같습니다.</p>
<pre>
<code>Io&gt; context := Object clone do( a:= 123; b := 456 )
==&gt;  Object_0x1018c0990:
  a                = 123
  b                = 456

Io&gt; message(a + b)
==&gt; a +(b)
Io&gt; message(a + b) doInContext(context)
==&gt; 579
</code>
</pre>
<div class="footnotes">
<hr />
<ol>
<li id="fn:1">
<p>그렇지만 다른 Perl 구현도 많고 최초인 만큼 성능도 느리고 정확하지 않아서 많이 쓰이지는 않습니다.&nbsp;<a href="#fnref:1" rev="footnote">↩</a></p>
</li>
</ol>
</div>
]]></description>
			<author><![CDATA[홍민희]]></author>
			<pubDate>Sat, 12 Dec 2009 17:23:58 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[DEAP 2009 하스켈 강좌 후반부 - 테스팅 및 패키징]]></title>
			<link>http://langdev.net/post/330</link>
			<description><![CDATA[
	
<p>시간이 없어서 간단히 키워드랑 링크만 정리했습니다.</p>
<p>Darcs는 하스켈로 구현된 분산 버전 컨트롤 시스템이다. 닭스는 강좌 전반부에서 직점 컴파일했으니 강의 전반부에 나온 안내대로 따라왔다면 설치되어 있을 것이다. (물론 바이너리로 설치해도 됨) 하스켈로 개발할 때 꼭 닭스를 사용해야 하는 것은 아니지만 하스켈 개발자들 사이에서는 닭스가 대세다.</p>
<p>QuickCheck은 property 기반 테스팅 라이브러리다. 퀵첵은 하스켈 플랫폼에 포함되어 있으니 이미 설치되어 있을 것이다.</p>
<p>전반부에서도 언급했다시피 Cabal은 하스켈 빌드 시스템이며 BSD의 port와 유사하다. Cabal 패키지를 만드는 방법을 간략히 살펴보겠다.</p>
<p>전반부에서도 언급했다시피 Perl의 CPAN에 해당하는 것이 Haskell에서는 Hackage라는 웹사이트가 있다. Cabal 패키지를 공유하고 싶으면 Hackage에 계정을 얻어 그곳에 업로드하면 된다.</p>
<p>퀵첵과 사용법에 대해 살펴볼 예제는 여기에서 닭스로 다운로드받는다. <a href="http://patch-tag.com/r/kyagrd/DEAP2009MergeSort">http://patch-tag.com/r/kyagrd/DEAP2009MergeSort</a></p>
<p>마지막으로 Happstack 이라는 애플리케이션 서버 프레임워크 라이브러리를 살펴본다. 앞서 예제를 호스팅한 patch-tag 서비스도 Happstack 기반으로 구현되어 있다. 비록 long lasting connections (comet) or RESTful APIs (storage), cloud computing 지원을 위한 기타 현란한 기술까지는 지원하지는 않지만 patch-tag와 같은 서비스를 구현하기에는 문제가 없다. 발표자가 Happstack 등과 같은 애플리케이션 서버 프레임워크를 이용한 개발에 익숙하지는 않기 때문에 예제는 비루하지만 아주 간단한 것으로 했다. <a href="http://patch-tag.com/r/kyagrd/DEAP2009Happstack">http://patch-tag.com/r/kyagrd/DEAP2009Happstack</a></p>
]]></description>
			<author><![CDATA[안기영]]></author>
			<pubDate>Sat, 12 Dec 2009 09:20:55 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[2009 랑데브 주최 개발자를 위한 대안적 프로그래밍 강좌 (12/12토 오후 서울대)]]></title>
			<link>http://langdev.net/post/325</link>
			<description><![CDATA[
	
<p><strong>2009 랑데브 랑데뷰 겸 DEAP(DEveloper track on Alternative Programming)</strong></p>
<dl>
<dt>때</dt>
<dd>
<p>2009-12-12&nbsp;13:00+09:00 (토요일 오후 1:00 부터)</p>
<p>(준비하는 랑데브 회원 분들과 아침 겸 점심식사부터 같이 하실 분들은 오전 11:30에 지하철 2호선 낙성대역 4번출구로 나와서 02번 마을버스 타는 곳으로 들어가는 GS칼텍스 주유소 옆 골목에 있는 “포마토 김밥”이라는 분식점에서 만나서 같이 식사를 하고 싶은 분들은 전화번호 010-8659-9911 (안기영) 로 미리 연락을 주셨으면 합니다.)</p>
</dd>
<dt>곳</dt>
<dd>
<p>서울대학교 39동 지하 1층, 다목적 회의실</p>
<ul>
<li><a href="http://www.snu.ac.kr/images/map/main.html">관악캠퍼스 지도</a>에서 39동 검색</li>
<li>
<p><a href="http://kaku2.snu.ac.kr/about/ab0801_tab1_1.jsp">관악캠퍼스 교통편</a>에서 공학대학을 경유하는 대중교통 이용</p>
<p>참고로 오시는 법을 좀더 자세히 낙성대역에서 02번 마을버스를 이용하는 방법으로 설명드리자면, 지하철 2호선 낙성대역 4번 출구로 나와 GS 칼텍스 주유소 골목으로 들어가면 오른쪽에 02번 마을버스를 타고 서울대 캠퍼스 안으로 들어가서 “에너지자원연구소” 정류장에서 내리면 버스 진행방향 오른쪽에 39동 건물이 보이는 골목으로 걸어내려 오시면 지하 1층 다목적 회의실로 오시면 됩니다. 지하 1층이라고는 하지만 경사면에 있기 때문에 입구가 땅위에 드러나 있습니다. 찾아오시다 길을 잘 못찾으시겠으면 010-8659-9911 (안기영) 로 연락을 주세요.</p>
</li>
</ul>
</dd>
<dt>준비물</dt>
<dd>
<p>프로그램 코딩과 컴파일 및 인터넷 연결이 가능한 노트북 컴퓨터, 그리고 가능하신 분은 멀티탭도 가져오시면 대단히 큰 도움이 되겠습니다. 현장에 벽에밖에 전원이 없어서 저희도 멀티탭을 준비하고는 있습니다만 참가신청한 분들이 워낙 많으셔서 저희가 전원 플러그를 사람수에 맞게 다 준비할 수 있을지 걱정이 되기 때문입니다.</p>
<p>미리 소프트웨어를 설치해 오시면 진행에 큰 도움이 됩니다: 현장에 인터넷 사정이 생각했던 것보다 좋지 못하고 예상보다 신청 인원이 많기 때문에 한꺼번에 많은 분들이 현장에서 소프트어 설치를 위해 인터넷으로 다운로드받으실 경우 병목현상이 발생할 수 있습니다. 저희가 만일을 위해 CD로 용량이 큰 소프트웨어는 주요 플랫폼별로 준비하고는 있습니다만, 그래도 미리 설치해 오시는 것이 가장 편하리라고 생각합니다. 필요한 소프트웨어는 위의 <a href="http://langdev.net/deap/2009/resources.html">Resources 페이지</a>에 정리되어 있습니다.</p>
</dd>
</dl>
<p>참석 예상 인원 파악을 위해 참석하시고 싶은 분들은 mydahlia+langdev@gmail.com 으로 메일을 주시거나 댓글을 달아 주시면 감사하겠습니다. 참가비는 없습니다 ^^</p>
<p>이번 모임의 목적은 우리나라에서 비교적 잘 알려지지 않은 유용하거나 재미있는 (둘 다라면 더 좋고) 프로그래밍 언어 혹은 관련 개발 관련 도구를 소개하는 강좌 및 실제 업무나 개발 적용 사례 등을 공유하기 위함입니다. 이러한 모임을 준비하게 된 더 자세한 취지는 이전에 올라온 <a href="http://langdev.net/post/318">발표자를 모집하는 글</a>에서 찾아보실 수 있습니다.</p>
<p>일정이 많은 대학교 기말고사와 겹치는 점이 안타깝지만, 이런 일정을 잡게 된 것은 바로 그 다음주부터 <a href="http://ropas.snu.ac.kr/aplas09/">APLAS 2009</a>라는 아시아권을 중심으로 한 프로그래밍 언어 학회가 열리며 학회 전날에 일요일에도 같은 장소에서 오전/오후에 걸쳐 영어로 강좌가 진행되기 때문에 (아마도 Sun 연구소에서 만드는 Fortress라는 언어가 그 중 하나일 것입니다) 다른 지방에서도 이틀 전인 토요일 오후부터 올라와 있는 사람들이 있을 수도 있고 하므로 이런 행사에 관심있어 할만한 유동 인원이 많이 모일 가능성이 있기 때문이었습니다. 랑데브 회원은 물론 실무에 새로운 기술을 적용할 아이디어를 얻고자 하시는 많은 개발자 분들 및 학회 겸 오시는 연구원이나 학생분들의 많은 참여를 기대하고 있습니다.</p>
<p>현재 저희가 준비하고 있는 프로그램 계획은 다음과 같습니다.</p>
<ul>
<li>
<p><strong>소개와 인사 및 인터넷 연결 확인 등 준비 작업</strong> (1:00 - 1:20)</p>
</li>
<li>
<p><a href="http://squeak.kr/">김승범</a>: <strong>스몰토크, 무엇에 쓰는 언어인고?</strong> (1:20 - 2:20)</p>
<p>스몰토크의 기본적인 특징과 그 활용 및 과거 중요한 역사와 최근 추세</p>
</li>
<li>
<p><a href="http://agile.egloos.com/">김창준</a>: <strong>일상적 J 프로그래밍</strong> (2:20 - 3:20)</p>
<p>(프로그래머이건 아니건) 일상적으로 J 언어를 사용하는 예를 배웁니다. 계산기 대용으로 사용하기, 텍스트에서 정보 추출하기, 텍스트 포맷 변형하기, 단순 반복 작업 줄이기, 차트 그리기, 여행 경비 보고서 만들기 등을 합니다.</p>
</li>
<li>
<p><a href="http://pl.pusan.ac.kr/~haskell/wiki/#s-3">안기영</a>: <strong>실용적 하스켈(Haskell) 프로그래밍 첫걸음</strong> (3:20 - 4:20)</p>
<p>함수형 프로그래밍의 언어의 장점은 알지만 개발 도구나 라이브러리의 지원은 어떨지 몰라 선뜻 도입하기를 망설이는 경우가 많습니다. 이 강좌에서는 하스켈을 실무에 도입할 때 꼭 필요한 GHC 컴파일러 및 대화식 개발 환경, 하스켈 패키징 시스템 Cabal, 패키지 저장소 Hackage, 테스팅 자동화 도구인 QuickCheck 등의 사용법을 알아봅니다.</p>
</li>
<li>
<p><a href="http://manywaypark.tistory.com/">박달호</a>: <strong>얼랑(Erlang) 강좌</strong> (4:20 - 5:20)</p>
<p>실무에 Erlang을 적용한 경험을 바탕으로 Erlang의 강력함과 실용성을 구체적인 활용 예제를 통해 알아봅니다.</p>
</li>
<li>
<p><a href="http://www.ibm.com/developerworks/kr/interview/2008_05_1.html">홍민희</a>: <strong>워드프로세서 버리고 Markdown 줍기 + Io 소개</strong> (5:20 - 6:20)</p>
<p>마크업 언어인 Markdown을 설명합니다. Homoiconic prototype-based language인 Io를 소개합니다.</p>
</li>
<li>
<p><strong>행사 평가 및 정보 교환, 마무리</strong> (6:20 - 6:30)</p>
</li>
</ul>
<p>오후 시간 동안 넉넉한 시간을 두고 자유로운 분위기에서 슬라이드로 나열만 하면서 자세한 원리를 일일이 설명한다는 느낌보다는 간단한 예제 등을 시연하면서 발표자가 미리 준비해 둔 소스코드나 패키지를 받아 같이 따라서 실습해 봄으로써 어떤 느낌인지를 보여 주고 관심을 유발할 수 있는 방향으로 해서 관심을 갖게 되는 분들은 나중에 관련 내용에 대해 더 찾아볼 수 있는 계기를 주는 그런 방향으로 갔으면 하는 계획입니다. 그래서 발표자 분들 뿐 아니라 참가하시는 분들도 가능하시다면 되도록 노트북 컴퓨터를 가지고 행사에 참여하시면 좋겠습니다.</p>
<p>그럼 관심있는 분들의 많은 참여 부탁드립니다.</p>
]]></description>
			<author><![CDATA[안기영]]></author>
			<pubDate>Sat, 07 Nov 2009 16:57:28 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[앗, 언어 개발 사이트가 있었다니…]]></title>
			<link>http://langdev.net/post/328</link>
			<description><![CDATA[
	
<p>KLDP 에서 홍민희님이 다신 댓글을 보고 이제서야 오게 됐습니다.</p>
<p>저도 언어개발에 관심이 있고, 그런대로 오늘 0.2 버전을 릴리즈 하게 됐습니다. http://orca-lang.or.kr/phpBB3 에서 개발하고 있답니다. 한번 방문해주시고 의견주시면 감사하겠습니다.</p>
<p>그런데, 잠깐 들러보니 역시나 요새 트랜드는 함수형이군요 ㅠ_ㅠ;;</p>
<p>그럼 앞으로 종종 방문하겠습니다~</p>
]]></description>
			<author><![CDATA[이기열]]></author>
			<pubDate>Wed, 02 Dec 2009 01:33:43 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[LangDev Wiki, IRC 채널도 있습니다.]]></title>
			<link>http://langdev.net/post/39</link>
			<description><![CDATA[
	
<p>LangDev 사이트는 원래 IRC 채널에서 나왔습니다. IRC 하시는 분들은 접속해주세요.</p>
<dl>
<dt>서버</dt>
<dd><code>irc.ozinger.org</code> (6667 포트를 사용할 수 없다고 합니다. 8080이나 6667을 제외한 6660-6669 포트를 사용하시면 됩니다.)</dd>
<dt>채널</dt>
<dd><code>#langdev</code></dd>
</dl>
<p>위키는 아래 주소로 접속하시면 됩니다.</p>
<p><a href="http://wiki.langdev.net/">http://wiki.langdev.net/</a></p>
]]></description>
			<author><![CDATA[홍민희]]></author>
			<pubDate>Sun, 06 Apr 2008 00:24:37 +0900</pubDate>
		</item>
		<item>
			<title><![CDATA[재미있는 컴퓨터 프로그래밍 교재]]></title>
			<link>http://langdev.net/post/193</link>
			<description><![CDATA[
	
<p>저는 컴퓨터 프로그래밍 교재를 쓰는 것(특히 입문자 대상으로)에 조금 관심이 있는데, 각자 인상깊거나 재미있게 접했던 교재(출판된 책이 아니라도 됩니다)를 적어봅시다. <a href="http://mitpress.mit.edu/sicp/"><abbr title="Structure and Interpretation of Computer Programs">SICP</abbr></a>나 <a href="http://www.htdp.org/"><abbr title="How To Design Programs">HTDP</abbr></a>는 이미 모두들 아시는 훌륭한 교재들이고, 저는 그보다는 덜 알려진 것—그래도 이 텍스트 역시 유명하죠—하나를 소개합니다.</p>
<p><a href="http://poignantguide.net/ruby/">Why’s (Poignant) Guide to Ruby</a></p>
<p>이 분도 유명한 Ruby 해커시죠? 그림(만화)도 그리시고, 밴드도 하신다고 들었습니다. 이런 것 말고도 좋은 교재 있으면 다른 분들도 소개해주세요.</p>
]]></description>
			<author><![CDATA[홍민희]]></author>
			<pubDate>Fri, 17 Oct 2008 02:44:46 +0900</pubDate>
		</item>
	</channel>
</rss>
