Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
keedi committed Dec 1, 2016
2 parents 846b787 + 6d5f07f commit 441bc38
Show file tree
Hide file tree
Showing 523 changed files with 31,940 additions and 27 deletions.
1 change: 1 addition & 0 deletions .perl-version
@@ -0,0 +1 @@
5.18.1
4 changes: 2 additions & 2 deletions 2010/articles/2010-12-18.mkd
Expand Up @@ -2,15 +2,15 @@ Title: Perl과 생명정보학
Package: Seoul.pm
Category: perl
Category: Seoul.pm
Author: Won Cheol, Yim
Author: ascendo

저자
-----

[@ascendox][twitter-ascendox] -
현재 동국대학교 식물생명공학과 박사 과정으로
분자유전학실험실 유전육종학을 전공하고 있다.
[프로필][google-ascendo]
Won Cheol, Yim, [프로필][google-ascendo]



Expand Down
4 changes: 2 additions & 2 deletions 2011/articles/2011-12-13.mkd
Expand Up @@ -205,7 +205,7 @@ local::lib을 사용하면 자신이 원하는 모듈을 root 권한없이 자

### perlbrew - 최신 버전의 perl을 사용하자

[perlbrew][cpan-perl-brew]:
[perlbrew][cpan-perlbrew]:
시스템에서 제공하는 펄의 버전이 낮다면 가장 먼저
생각할 수 있는 방법은 홈 디렉토리에 직접 펄 소스를 내려받고
컴파일해서 사용하는 것입니다. 실행 파일 생성을 위해 필요한 기본적인
Expand All @@ -231,7 +231,7 @@ perlbrew를 통해 펄을 설치할 때 일반적으로 많이 사용하는 쓰

### minicpan - 빠르고 쾌적하게 오프라인 환경에서 CPAN을 사용하자

[minicpan][cpan-minicpan]\:
[minicpan][cpan-minicpan]:
CPAN은 전세계의 많은 [로컬 미러][cpan-mirrors]를 확보하고 있습니다.
적절한 미러를 선택하면 빠르게 모듈을 받을 수 있습니다.
하지만 의존성이 높은 모듈을 네트워크를 통해 받는 시간이 부담스러울 수 있습니다.
Expand Down
2 changes: 1 addition & 1 deletion 2012/articles/2012-12-05.mkd
Expand Up @@ -2,7 +2,7 @@ Title: 펄은 파싱할 수 없다: 형식적인 증명
Package: Seoul.pm
Category: perl
Category: Seoul.pm
Author: Jeffrey Kegler
Author: am0c


저자
Expand Down
4 changes: 2 additions & 2 deletions 2012/articles/2012-12-12.mkd
Expand Up @@ -2,7 +2,7 @@ Title: MySQL을 NoSQL로 사용하기
Package: Seoul.pm
Category: perl
Category: Seoul.pm
Author: Yoshinori Matsunobu
Author: jachin24

## 저자

Expand Down Expand Up @@ -538,7 +538,7 @@ HandlerSocket 플러그인은 오픈소스이니, 마음껏 사용하시기 바

## 옮기며

이 글의 원문은 [요시노리 마쯔노부의 블로그 포스트][origin]입니다.
이 글의 원문은 [요시노리 마쯔노부(Yoshinori Matsunobu)의 블로그 포스트][origin]입니다.
역자는 [@jachin24][jachin]입니다.


Expand Down
Binary file added 2012/share/static/profile_skyloader_small.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 0 additions & 4 deletions 2012/share/templates/calendar_footer.mhtml
Expand Up @@ -39,10 +39,6 @@
== = == ==
</pre>
</div>
<div id="comment">
<& disqus.mhtml, article => undef, year => undef &>
<& fb_comment.mhtml, article => undef, global => $global &>
</div>
</div>
</body>
</html>
4 changes: 2 additions & 2 deletions 2012/share/templates/header.mhtml
Expand Up @@ -21,7 +21,7 @@

<!-- Syntax Highlighter -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="jquery.cooltipbox-1.1.8.js"></script>
% if ( $article ) {
<script type="text/javascript" src="shCore.js"></script>
<script type="text/javascript" src="shBrushBash.js"></script>
<script type="text/javascript" src="shBrushYaml.js"></script>
Expand All @@ -34,12 +34,12 @@
<script type="text/javascript" src="shBrushDiff.js"></script>
<script type="text/javascript" src="shBrushJava.js"></script>
<script type="text/javascript" src="shBrushCpp.js"></script>
<link type="text/css" rel="stylesheet" href="jquery.cooltipbox-1.1.8.css">
<link type="text/css" rel="stylesheet" href="shCore.css">
<link type="text/css" rel="stylesheet" href="shThemeMidnight.css">
<script type="text/javascript">
SyntaxHighlighter.all();
</script>
% }

% unless ( $global->{location} ) {
<script type="text/javascript">
Expand Down
5 changes: 3 additions & 2 deletions 2012/share/templates/sns.mhtml
Expand Up @@ -7,10 +7,11 @@
<iframe src="http://www.facebook.com/plugins/like.php?href=<% $global->{location} ? uri_escape($article->atom_id) : uri_escape($global->{base_uri}) %>&amp;send=false&amp;layout=box_count&amp;width=450&amp;show_faces=true&amp;action=like&amp;colorscheme=dark&amp;font&amp;height=90" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:62px;" allowTransparency="true"></iframe>
</li>
<li>
<a href="https://twitter.com/share" class="twitter-share-button" data-text="<% uri_escape($global->{title}." ".$global->{location}) %>" data-url="<% uri_escape($article->atom_id) %>" data-via="seoulpm" data-count="vertical">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
<a href="https://twitter.com/share" class="twitter-share-button" data-text="<% escape_html($global->{title}." ".$global->{location}) %>" data-url="<% escape_html($article->atom_id) %>" data-via="seoulpm" data-count="vertical">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
</li>
</ul>
<%init>
use URI::Escape;
use HTML::Escape qw(escape_html);
sub uri_escape { URI::Escape::uri_escape(shift, q{\$\#\@\&\(\)\=\"\'\[\]\!\?}) }
</%init>
</%init>
2 changes: 1 addition & 1 deletion 2012/share/templates/variables.mhtml
Expand Up @@ -74,7 +74,7 @@ return {
'pung96' => 'profile_pung96.jpg',
'rumidier' => 'profile_rumidier.jpg',
'saillinux' => 'profile_saillinux.jpg',
'skyloader' => 'profile_skyloader.jpg',
'skyloader' => 'profile_skyloader_small.jpg',
'studioego' => 'profile_studioego.jpg',
'sng2c' => 'profile_sng2c.jpg',
'y0ngbin' => 'profile_y0ngbin.jpg',
Expand Down
5 changes: 5 additions & 0 deletions 2013/Makefile
@@ -0,0 +1,5 @@
YEAR := 2013

include Makefile.common

# you can override common configuration at here
175 changes: 175 additions & 0 deletions 2013/README.mkd
@@ -0,0 +1,175 @@
Seoul Perl Mongers Advent Calendar 2013년
=========================================

기사 형식은 어떻게 하나요?
---------------------------

'자기소개-서론-본론-마무리' 형식을 지키면 됩니다.
파일 포맷은 마크다운 형식을 권장하지만
이메일로 전달할 수만 있다면 어떠한 것으로도 괜찮습니다.
기사 내에 HTML 링크 방식으로 이미지를 포함할 수 있습니다.
이전의 기사를 참고하세요.


어떻게 전달하나요?
-------------------

기사 게재를 원하는 날짜보다 최소 3일 전까지
keedi.k@gmail.com 으로 보내주세요.
또는 github의 pull-request 기능을 이용해서
`2013/drafts/` 하부로 기사를 보내도 됩니다.


라이센스
---------

Seoul.pm 성탄절 달력에 기고하는 기사의 권리는
모두 Seoul.pm에 위임하고 권리를 주장하지 않습니다.
Seoul.pm 성탄절 달력의 모든 기사의 권리는 Seoul.pm이 가지며
모든 기사는 GNU Free Document License를 따릅니다.
기사의 재배포 및 상업/비상업적 이용등 모든 부분에서
해당 라이센스의 허용 또는 강제 내용을 따릅니다.
따라서 문서의 권리 포기와 라이센스 부분을 숙지 부탁드립니다. :)

더 많은 열린 지식의 공유와 재생산, 행여나 발생할 수 있는
불미스러운 일을 방지하기 위한 부분으로 기사 게재를 원하시는
몽거스 분들의 양해 부탁드립니다.


원고를 직접 등록하려고 합니다
------------------------------

모든 작업은 develop 브랜치를 기반으로 합니다.
앞으로의 작업은 `git flow`를 사용하는 것을 권고합니다.

$ git flow init
$ git checkout develop

각 날짜에 배정된 원고는 feature/editor-2013-12-xx 브랜치에서 별도로 관리합니다.
이미 해당 날짜의 브랜치가 생성되어 있지는 않은지 아래와 같이 확인하세요.
한편, 파일명과 브랜치명에 포함된 2013-12-xx 포맷은 꼭 지켜야 합니다.

$ git flow feature list

이미 누군가가 해당 날짜에 배정하여 브랜치를 만들었다면.
동일한 날짜의 브랜치를 중복하여 생성해서는 안됩니다.
날짜가 겹치거나 충돌하는 문제는 커뮤니티에 문의해 주세요.

$ git flow feature start editor-2013-12-xx develop
$ ...
$ git add 2013/drafts/2013-12-xx/draft1.pdf
$ git add 2013/drafts/2013-12-xx/draft2.png
$ git add 2013/drafts/2013-12-xx/draft3.html

브랜치가 없으면 위와 같이 생성한 후, `2013/drafts/2013-12-xx`에 등록합니다.
원고 파일의 포맷과 개수는 다양하기 때문에
이를 보존하기 위해 `drafts`의 하위 디렉터리에 보관합니다.

$ git flow feature publish editor-2013-12-xx

마지막으로 이 브랜치를 외부로 배포하여 편집자가 해당 브랜치에서
작업할 수 있도록 합니다.


기사를 편집하려고 합니다
-------------------------

먼저 이전 섹션에서 서술한 바와 같이 누군가가
editor-2013-12-xx 브랜치에 원고를 등록하여 배포해야 합니다.
현재 저장소를 로컬에 갱신하고 해당 날짜의 기사 원고가 등록되어 있는지 확인합니다.

$ git fetch origin
$ git flow feature list

브랜치가 존재하면 아래와 같이 체크아웃합니다.

$ git flow feature checkout editor-2013-12-xx

편집 과정을 거쳐 만들어지는 최종 기사는 마크다운 포맷입니다.
아래와 같이 `articles` 디렉터리에 마크다운 뼈대를 작성하고 등록합니다.
`drafts` 디렉터리에 등록된 원고를 참고하여 마크다운 포맷에 맞게 옮겨 적습니다.
기사의 상단에는 저자의 프로필이 있어야 합니다.
오탈자나 이해하기 힘든 문맥을 바로잡습니다.
예제 코드는 직접 실행해보고 실행이 되지 않는다면 알맞게 고쳐야 합니다.

$ vim 2013/articles/2013-12-xx.mkd
$ ..
$ git add 2013/articles/2013-12-xx.mkd
$ git commit 2013/articles/2013-12-xx.mkd
$ git push
$ ..
$ git add 2013/articles/2013-12-xx.mkd
$ git commit 2013/articles/2013-12-xx.mkd
$ git push
$ ..

이미지는 `share/static`에 넣습니다. 이미지는 `2013-12-nn-ab.png`와 같은
포맷을 따라야 합니다. 작게 축소된 이미지는 `2013-12-nn-ab_r.png`과 같이
뒤에 `_r`을 붙입니다. 2013년 웹사이트 레이아웃에서는 기사에 포함되는
축소된 이미지의 최대 너비와 높이를 각각 500px과 380px으로 제한합니다.
bash 환경에서 아래 명령을 통해 축소된 이미지를 생성할 수 있습니다.
이미지는 원본 이미지와 축소된 이미지 두 가지 모두 제공해야 합니다.

for f in 2013-12-*
do convert $f -resize 500x380\> ${f%.*}_r.${f#*.}
done


기사를 웹사이트에 배포하려 합니다
-----------------------------------

기사 브랜치의 편집이 완료되면 아래와 같이 웹사이트에 갱신합니다.

$ git feature finish editor-2013-12-xx

그런 다음 서버가 갱신된 기사를 동기화하도록 합니다.


웹사이트를 직접 구축하려 합니다
--------------------------------

이 웹사이트를 개발하거나 테스트하기 위해 로컬에 직접 웹페이지를
생성할 수 있습니다.

아래 두가지 모듈에 특히 의존하고 있습니다. `cpanm`을 통해 설치합니다.

- WWW::AdventCalendar
- Text::MultiMarkdown

`advent.ini` 파일에 아래와 같이 `today` 값을 등록하여
오늘의 날짜를 강제로 지정할 수 있습니다.

today = 2013-12-12

또는 환경 변수를 이용해서 파일 수정 없이 바로 오늘의 날짜를 강제로 지정할 수 있습니다.

ADVCAL_FLAGS='--today 2013-12-03' make

기사를 만들고, 웹서버를 실행하기 위해 필요한 모듈을 설치합니다.

$ cpanm --installdeps .

기사는 `today` 이후의 날짜에 대해서는 생성되지 않습니다.
이렇게 임의로 지정한 설정 파일을 저장소에 갱신해서는 안됩니다.

$ make
$ firefox output-2013/index.html

그런다음, `make`를 통해 웹페이지를 생성하면 정적 파일로만 이루어진
`output-2013` 디렉터리가 생성됩니다.

자신의 장비에서 웹서버를 띄워 브라우저로 접속해서 확인하려면
다음 명령을 실행합니다.

$ make run
perl -E 'symlink "2013/advent.ini", "advent.ini" unless -e "advent.ini"'
PERL5LIB=./patch/lib/:/home/askdna/.perlbrew/libs/perl-5.18.1@advent/lib/perl5:lib:extlib/lib/perl5 advcal --config advent.ini --output-dir output-2013 --article-dir 2013/articles --share-dir 2013/share
/sbin/ifconfig | perl -nlE 'do { say $1 } if /inet addr:(\d{1,3}(?:\.\d{1,3}){3})/'
127.0.0.1
192.168.25.60
http_this output-2013
Exporting 'output-2013', available at:
http://127.0.0.1:7007/

정상적으로 로컬 웹서버가 실행되면 `http://127.0.0.1:7007/index.html`
접속해서 기사를 확인합니다.
6 changes: 6 additions & 0 deletions 2013/advent.ini
@@ -0,0 +1,6 @@
title = Seoul.pm Perl Advent Calendar
year = 2013
uri = http://advent.perl.kr/2013/
editor = Keedi Kim
category = Perl
category = Seoul.pm

0 comments on commit 441bc38

Please sign in to comment.