...++
=


제로보드 4가 아직 현역이라는 (실화)공포 스토리를 트위터에 올려 RT좀 받은 게 언젠데 아직도 PHP 4~5의 망령은 가시질 않는다...

MMB라는게 있는 모양이다 일단은 CMS 프레임워크인데... 전해들은 말로는 원작자가 20년전에 손을 놨으며 스킨 개발자는 10년전쯤에 연락 두절됐다는 뭐 그런 소스이다... 그런데 아직도 누군가가 다운받아서 깔아서 쓰고 있다... 아 너무 무섭다...

index.php를 VS Code로 까봤는데 인코딩이 깨진다. 아니나 다를까 다 EUC-KR 인코딩된 파일...
이게 돌아간단 말인가...
암튼 소스를 까봤고...

<?
include "env.php";
include "lib.php";
include "config_data.php";
include "option_data.php";
include "mtype_plugin/extend_lib.php";
include "mtype_plugin/db_admin.php";
include "KDM_skin_data.php";
include "KDM_fontcol_data.php";
include "KDM_tb_data.php";


header ("Pragma: no-cache");

$ad_ico = "<img src='$ad_icon' border='0' onerror=\"this.style.display='none';\">";
$maxleng_w = strlen($max_width);
$maxleng_h = strlen($max_height);
$emowidth = $cfg_emolist*72; //사용하시는 이모티콘의 가로 사이즈가 클 경우 곱셈 값을 올리세요.

//비공개 게시판 모드
if($mem_login=='on')
	{
		if($memberlogin == $cfg_member_passwd);
		else
			{
			gourl("./admin.php?member=1");
			exit;
			}
	}

if($memberpasswd === $cfg_member_passwd)
{
  setcookie ("memberlogin",$memberpasswd,0);
  $isMember = 1;
}
else $isMember = 0;
	// 관리자 패스워드쿠키가 있으면서 관리자암호와 같으면 관리자모드임
if($ckadminpasswd == $cfg_admin_passwd && $ckadminpasswd !="")
{
	$isAdmin = 1;
}

후.. 이 이상은 너무너무 무서워서 생략한다.


제로보드4도 그렇고 사실 이런 류의 CMS Frameworks들은 일관되게 특수한 요구사항들이 몇 가지로 압축된다.

  • no-brainer
    • 시키는 대로만 하면 컴맹도 설치해서 쓸 수 있어야 함.
  • hackable
    • 기능을 넣고 빼고 "커스터마이징"을 할 수 있어야 함.
  • accessorizable
    • "스킨"을 입힐 수 있어야 함.
    • 기본 프레임워크를 그대로 두고 추가 설치하는 것들 - 테마, 플러그인 등으로 흔히 부르는 거 - 을 만들고 배포하고 적용하는 게 가능해야 하며 정말 쉽게 가능해야 함.
  • minimally dependent
    • 의존성은 없을수록 좋음.
    • 무슨 익스텐션이 필수라느니 어디가서 뭘먼저 깔라느니 하는거 질색 팔색이라는 뜻.
    • MMB 는 심지어 DB도 mysql 같은거 안쓰고 자체 파일DB를 쓴다. 그 정도로 의존성이 꺼려지는 것이다. 꼴에 DB라고 쓰기 락까지 구현해 놨던데 진짜 까무러칠 뻔함.
  • compact than extensive
    • 게시물 입력폼, 관리툴 같은 것은 기능이 많지 않음.
    • 딱히 기술적으로 최첨단도 아님.
  • socializing
    • "친목질"이 가능한 수준의 권한관리, 사용자관리, 글-댓글 커뮤니케이션을 제공해야 함.

최근 대부분의 CMS가 반대로 가는 방향성들은 몇 가지 있다.

  • customizing not accessorizing
    • 워드프레스부터 OctoberCMS, 기타 각종 CMS들은 테마, 플러그인 등의 좀더 포괄적이고 기술적으로 타당하고 규모가 큰 개념으로 접근한다.
    • 일반인들에겐 이것조차 장벽인 듯?
  • dependent in the best practices
    • 의존성을 적극적으로 가져가되, 최대한 모범적이고 표준적인 방법으로 가져가는 게 대부분의 추세다. 사실 그게 맞고. (Composer가 왜 나왔겠나?)
    • 뭘 하기도 전에 뭐 먼저 해라 뭐 먼저 깔아라 하는 건 확실히 장벽이긴 하다.
  • extensive than compact
    • 대부분의 CMS는 관리 도구를 주지 못해서 안달이다. 아직도 폐기되지 않고 돌려써지고 있는 프레임워크들과는 반대다.
    • 대신 이런 '프레임워크'들은 입력폼이 정말 단촐하다. 관리툴도 straightforward 하다. 대부분의 최신 CMS들은 사실 "그래서 새글쓰기가 어디야?" 싶은 감이 없지 않다.
    • 뭔가 이 대목이 아주 묘하다. 우리 개발자들은 최첨단의 굴레에 사로잡혀 뭔가 놓치고 있는 것은 아닐까?

이 이상은 생각 정리가 안 되므로 이하 생략

Posted by 엽토군
:

오늘 08 동기 결혼한다길래 국수 먹으러 가서 새로 바꾼 폰으로 첫 동영상을 촬영하고 대충 국수 먹다가 오랜만에 대학 선배님과 얘기를 좀 할 일이 있었다. 따로 커피 마시러 나가서 이런저런 얘기가 나오다가 대충 이런 질문이 나왔다.

근데 요즘은 유튜브로 사람들이 (정보를) 다 접하잖아. 근데 유튜브는 되게 직관적이니까, 사람들이 앞으로는 이런 철학적인 얘기는 잘 안 하고 이해도 못 하고 그렇게 되지 않을까?

아 맞아요 그럴 거 같아요 바보상자 유튜브 나빠요 같은 맞장구나 치고 넘어가면 좋았을 걸 그 와중에 그래도 성심껏 앞에 앉은 이의 질문에 의견을 내드리겠다고 잠시 생각하고 나서 답변을 했다. 음, 글쎄 그럴 거 같지는 않다. '어린이 학습만화' 같은 걸로 유년 시절을 보내고 비싼 등록금 부어서 철학 공부 찔끔 한 다음 이 나이 먹도록 별볼일없이 살면서 매주 유튜브를 찍어 올리고 있는 입장에서 말이지.

-

일단, 유튜브가 "직관적"이라는 건 좀 뭉툭한 서술이다. 더 정확히 말하자면, 유튜브는 매우 직접적이고 즉각적인 매체인데, 그렇다고 해서 직관적인 매체인 것은 아니다. 둘은 다르다. 직관적이라는 것은, 뭔가가 너무나도 함축적이고 복합적이고 고문맥적인 나머지, 부연 설명이 구구절절 따라오지 않더라도, 그걸 한 번 보기만 하면 그걸로 이미 설명이 충분히 제공될 때 그런 걸 직관적이라고 한다. 예컨대 "빨간 버튼"이 그렇다. 그런 걸 회원정보수정 화면 어딘가에 붙여 놓으면, 심지어 그 버튼에 '눌러도 별일 없습니다'라고 써있을지라도 (그리고 실제로 눌렀을 때 별일 없더라도) 사람들은 그걸 함부로 누르지 않는다. 그 버튼을 위험한 버튼이라고 직관해 버리기 때문이다.

유튜브가 시각적으로 직접적이기 때문에 그걸 문자로 써서 '직관(直觀)'의 매체라고 생각할 수는 있겠지만 사실 그렇지는 않다. 어느 쪽이냐 하면 유튜브는 텔레비전이 갖고 있던 "바보상자"의 악명을 계승하는 중인 매체이다. 유튜브는 말초적이고 즉각적이며 단편적인 시각적/지적 자극을 제공하는 매체로서 이해되고 있고, 그런 점에서 사람들을 종합적 판단, 비판적 수용, 주체적/메타적 사고로부터 이격시키고 있다는 점에서, 실로 21세기의 텔레비전이라고 할 수 있는 상황이다. "마윈이 성공할 수 있었던 비결은??" 같은 퀴즈가 마윈 얼굴보다 더 크게 박혀 있는 섬네일을 눌러, 10분짜리 영상을 보고 나면, 확실히 마윈의 성공 비결에 관한 팩트 몇 가지는 대충 기억이 나지만, 그밖의 내용은 며칠 뒤에 잊혀지고, 그 영상에 대한 '감상'은 있었는지도 모르게 없어지고 만다.

선배님이 의문(또는 걱정)하고 계시던 부분은 이런 맥락이었다. 확실히 기독교는 변증과 서사의 종교고 사람들에게 뭔가를 구구절절 설명해야만 한다. 하지만 요즘은 유튜브 시대다. 사람들은 5분 안에 명쾌하게 시각적으로 주어지는 정답을 원한다. 이런 시대에 과연 우리가 뭘 말할 수는 있을까? 나는 없다고는 할 수 없다는 입장이다. 할 수 있다. 랄까 해야 한다. 유튜브 때문에 변증 못하겠다는 소리를 해선 안 된다는 말이지.

그러면 지금 시대에 기독교는 어떤 변증을 해야 하는가? 동시대적이고 성경적으로 정확한 '도식'(diagrams, schema)을 개발하고, 그걸 과감하게 침투시켜야 한다는 게 내 생각이다. ("도식"의 성질에 의해 자명한 바) '직관적'인 그림을 그려 보여줘야 하는데, 그 내용은 성경 진리를 충분히 소화해 압축한 것이어야 하고, 그 제재와 전개는 요즘 사람들의 일상에 밀접하게 가닿는 것이어야 한다는 말이다. 예컨대 나는 프로그래밍 드립들 중 기독교 진리의 도식에 도움이 되는 게 꽤 있다고 생각한다. 대표적인 것이 자바스크립트의 삼위일체이다.

무슨 약을 하셨길래 이런 생각을 했어요?

재미있게 놀라운 사실은, 이 그림의 왼쪽과 오른쪽이 각각 자기 세계의 진리를 매우 정확히 도식화하고 있다는 점이다. 심지어 삼위일체론의 해괴망측함도 닮았고, 전체적 교리 이론에서 핵심이 된다는 점도 빼다박았다. 그래서, 이렇게 정확한 도식이 우리에게 있으므로, 적어도 프로그래머들에게는 삼위일체론을 소개하기가 수월하다. 일단 이 그림을 보여주고, "이처럼, 이게 왜 이렇게 되는지 우리는 알 수 없지만, 아무튼 성부, 성자, 성령은 타입도 서로 다르고 실질도 다르지만, 성부는 하나님이시고 성자도 하나님이시고 성령도 하나님이 되신다"라고 설명할 수 있는 것이다. 그러면 프로그래머들은 갸웃거리면서도 일단은 알겠다고, 그거 참 희한하다고 납득하고 지나간다. 오히려, 이런 정확하게 직관적인 도식이 없으면, 이런저런 말장난이 늘어벌려지면서 양태론이니 성부우월론이니 하는 요설로 빠지고 만다.

물론 이런 도식적 변증을 개발하고 발전시켜 보급하기 위해서는 신학적으로 가장 정확하기 위해 애써야 할 것이다. 그리고, 필요에 따라서는 그 변증이 굳이 시각적이고 즉각적인 것일 필요도 없다. 실질 내용이 정확하고 온당한 게 더 먼저니까. 그럴 때는 '역설'로 치고 들어가는 것도 방법이다. 첨 들었을 때 당장은 "그게 무슨 개소리야?" 싶지만, 동시에 뭐라는 건지 들어나 보자 싶어지는, 그래서 듣게 되고, 듣고 나면 "그런가?" 싶어지는 그런 방식의 설명 말이다.

오늘 선배와 얘기하다가 들은 신학 난제가 대표적인 예다. 자기 군생활 때 어떤 선임이 "근데 하나님은 사람을 왜 만들었어?" 물어보길래 예배받으려고 만드셨다 했더니 당장 돌아오는 답이 "그게 말이 되냐?"였다고 한다. 유구무언이 되고 말았다지. 지금 나보고 이 선임에게 대신 답해주라고 한다면 이렇게 말해줄 것이다. "말이 되죠, 인간을 만들어야 그 신은 진짜로 신이 되니까요." 딱히 궤변은 아니다. 우주와 자연은 신을 신으로 알아보지 못한다. 인간은 신은 신으로 대접하고 추앙할 수 있는 존재다. 기독교에서 신이 만든 것은 그런 존재이고, 그게 바로 인간인 것이다. (그리고 사실 이게 "예배받기 위해"의 세속적 번역이다. 대예배당의 상자 밖에서 생각해본 적 없는 동료 기독교인들이 이해할는지는 모르겠지만.)

이 얘기를 하는 이유는, 오히려 이게 소위 "유튜브 시대"의 응전 전략일 수 있기 때문이라고 보기 때문이다. "유튜브 시대"라고 해서 사람들이 꼭 짧고 쉬운 것에만 집중하지는 않는다고 나는 믿기 때문이다. 당장 '뉴스공장' 같은 거만 하더라도 김어준 혼자서 몇십 분간 저 혼자 떠들지만 그래도 사람들은 한 마디나 놓칠세라 경청을 하지 않는가. 왜 그러겠는가? 그게 아무튼 귀에 쏙쏙 박히고 뭐라는 건지 들어나 보자 싶어지고 들어 보니 앞뒤가 맞는 거 같기 때문이다. 우리 기독교인들 모두가 김어준 같은 달변가가 될 수는 없지만, 적어도 '뭐라는 건지 들어나 보자' 싶은 말은 할 수 있다. 지난 몇백 년간 선배님들이 관련 신학적 업적을 다 이뤄 놨으므로, 그 성과를 성경과 함께 씹어먹고 실용적으로 재가공해, 자기만의 오늘날의 언어로 번역하기만 하면 된다. 기독교는 진리에 한없이 가까우므로, 정확하게 잘만 전달하면, 인류의 대부분은 그게 무슨 개소리냐고 따지면서 귀를 기울이지 않을 도리가 없는 것이다.

-

요컨대, 적절한 도식 및 역설적 설명을 가지고 요즘 사람들이 알아들을 만한 톤 앤 매너로 전달하면, 딱히 유튜브 시대건 포스트 유튜브 시대건 삼위일체론이건 간단한 설명이건 기독 신앙 변증 자체는 할 만한 일이라는 이야기다. 겁먹을 필요 전혀 없다. 일본 만화가 개방되면서 "폭력적인 상업만화 성인만화가 청소년들 정서 함양에 해악을" 어쩌구 할 때도 누군가는 과학과 역사를 잘 요약해 놓은 좋은 학습만화 보면서 잘만 자랐고, TV와 인터넷이 호환 마마 전쟁보다 더 무서웠던 시절에도 누군가는 그걸로 배울 거 다 배우고 깨우칠 거 다 깨우친다. 그런 의미에서, 언제나 그랬듯 앞으로도, 중요한 건 좋은 설명과 충분한 설명력 그리고 동시대 매체에 대한 과감한 장악이다. 가면 갈수록 매체의 발전은 '그런 걸 제공하지 않아도 인기를 얻을 수 있는' 쪽으로 나아가고 있지만, 그럼에도 불구하고, 오히려 그렇기 때문에 더더욱 말이다.

뭐야 이게 다 무슨 소리지? 누가 요약 좀 해주세요.

'9 도저히 분류못함' 카테고리의 다른 글

MMB라는걸 알게 되었다...  (0) 2020.08.28
어제라는 오늘  (2) 2019.05.11
2주년 기념  (0) 2017.10.08
블로그 유입키워드에 보여서 한줄 메모  (0) 2017.10.01
백엔드  (0) 2017.04.20
Posted by 엽토군
:

특별히 쓸 얘기는 없는데 그냥 요즘 블로그를 하도 안 해서, 근황이나 남겨 볼 목적으로 조금 적어 본다.

내일은 김어진쇼 65회를 녹화/녹취하는 날이다. 그냥 모지리 같은 걸 할 생각이다. 테트리스의 테트리미노 중 정사각형 모양의 테트리미노가 얼마나 쓸모없는지에 관해서 웅변할 예정이다. 사전 조사를 좀 해야겠지… 66회쯤에서는 아마도 옷과 신발을 사러 가지 않을까? 그리고 잊지 말고 운전면허 시험 재응시를 해서 67회에는 토요일 시험을 보러 가야 한다.

김어진쇼 말 나온 김에 그러면 별도로 하고 싶은 것이 있느냐 했을 때는… 사실은 스탠드업을 좀 해보고 싶기는 하다. 간밤에 구상을 해보았다. 무대에 나와서 오프너 토크만 70분을 하다가 시간이 다 되어 막이 닫혀 버리는 것이다. 대충 할 수 있을 것 같기는 한데 저번에 신규입사자 자기소개 세션에 10분 동안을 (심지어 앞으로 계속 알고 지내야 할) 사람들 앞에서 굉장히 가깝게 혼자 떠들어 보니 이것도 대본과 훈련과 계획이 없으면 다 허사 되겠다 싶어서 좀 많이 길게 보고 우선 닫아둔 상태다. 내 사운드는 굉장히 헛돌고 고르지 못하고 어딘가 계속 새는 걸 torque로 뻗대는 사운드라서 냉혹한 훈련 아니면 편집이 필요하다. 뭐 김어진쇼라는 좋은 핑계가 있으니 어떻게든 언젠가는 비슷하게 해 보겠지.

무대가 그리우냐, 아니면 사람들에게 뭔가 선사하는 게 하고 싶으냐 하면 그걸 잘 모르겠다는 느낌이다. 김어진쇼는 요즘은 약간 뭐랄까 지난 몇 년 동안 하여간 뭔가 만들어서 내보내야 했던 그 루틴에 대한 의존성 습관이 되어 있다. 그다지 막 크게 재미있지 않은데 대충 이번 주도 때웠다 싶게 때우고 있다. 이런 식으로 기초 체력이 붙으면 뭐라도 나오겠지 하는 생각과, 이럴 거면 뭐하러 이렇게 힘들게 매주 고생하나 싶은 마음이 번민하는 중이다. 일단 무대는 그립지 않다. 무대는 그 자체로 사람을 홀리는 힘이 있기 때문에, 그걸 알고 있는 이상은, 의식적으로 홀려지지 않으려고 한다. 주관적으로, 선택적으로 내가 무대를 선택해야겠다는 생각이다. 그 결과는 뭐 집안 베란다만도 못한 구독자 수 100명 미만의 작디작은 스테이지지만… 대체 나는 중학생 때 대학생 때 무슨 정신 무슨 쾌감으로 이젠 나조차도 안 보는 만화를 그렇게 열심히 그렸나… 싶어지고 mazefind씨의 maze 작품들은 영영 다시 못 보는 걸까 싶고 문득문득 그렇다.

그래서 생각이 나는 것은, 마침 최근 다시 홀린 듯이 재정주행하면서 보았던 <호기심 해결사>의 B팀이다. 캐리 토리 그랜드 세 사람은 이번에 조사를 해 보니 각자 알아서 제 갈 길 가는 중이다. 시간이 지나고 나이가 들어 좀 정신이 차려지면 그렇게 의협심과 어깨의 힘이 빠져 나가는 모양이지. 물론 옛날 하던 거 잘 했고 그 시절이 좋았다는 이유만으로 그저 그 모습에 마냥 머물러 있겠다는 꼴이야말로 가장 안쓰러운 몰골이 됨에는 틀림없다. 그래서, 여전히 과학과 속설과 최신 기술과 엔터테인먼트를 합친 교집합 어딘가를 서성이고들 있지만, 그래도 <호기심 해결사 2>와는 좀 적절하게 거리를 두어 주었으면 하는 바람인데, 지금 그랜트 씨는 너무 멀리 가 있고 캐리 토리 콤비는 아직 너무 가까이에 있다. 내가 너무 까다로운 건지도 모르지만.

마치 호기심 해결사를 졸업한 그 세 사람처럼 지인들도 하나둘씩 와웸과 찌라시와 트탐라를 졸업하고 저마다의 브랜드를 런칭하고 힘들 쓰고 있다. 해찬이는 제이미가 되어서 랜선극장 극장주가 됐고… 쇼에 나온 사람 중 (취미로나 업으로나) 만화를 하고 있는 인간이 무려 셋이나 있고… 현익이는 잘 취직했고 찬영이는 글밥과 카페 식객 노릇으로 얼추 살 것 같고… 어째 바로그찌라시 멤버들만 이렇게 보기가 힘들고 다 바라바라가 되었는지 야속해서 잠 못 이룰 일이다. 프사를 바꾸고 싶은 것은 그게 찌라시의 유산이기 때문이다. 이제 놓아줘야 하는 때가 오고 있는 거다. 생각의 재활용이니 호밀밭이니 오버스마트니 실천 가능한 20대 라이프 스타일이니 데뷔니 딴에는 꽤 의미 있는 관점들을 제시했다고 생각하지만 그건 나한테나 의미가 있었지 아무래도 결국에는 다 시시하게 20대 시절의 재기발랄(씨발)로 귀결될 모양이다. 웃픈 일이다. 아직 그게 내 원동력으로 그리고 계기로 남아 주고 있으니.

와웸 하니까 굳이 좀 적자면… 엊그제인가에 내 동시대 서강 와웨머 두 명에게서 5분 간격으로 결혼 소식 카톡이 왔었다. 무슨 서로 신호라도 주고받아 가면서 보낸 줄 알았다. 적지 않은 와웨머들이 저들끼리 결혼한다. 그냥 그렇다고 쓰고 싶었을 뿐이고 좋다 나쁘다는 모르겠다. 좋다 나쁘다를 분명하게 말할 수 있는 것은, 이명박근혜와 세월호를 지나고 "비전 2020"을 바라보는 이 시절에 와서까지도 아직 저러고 있는 CMK의 게으른 포즈다. 그리고 이건 나쁘다. 대학 사회를 복음화한다는 게 사실은 무슨 의미인지 정말 그걸 해 버리면 뭐가 좀 많이 곤란해지는데 그게 뭔지 하나도 모르고 하나도 안 가르치고 4년 내내 애들을 연애 금지 조례에 가둬 놨다가 세상에 풀어 버린다. 풋내기 1학년 때야 뭐 모든 게 행복하고 안전하고 예배가 맛있고 정서가 풀리고 아주 훌륭한데, 그게 이곳이 엄청나게 안전한 온실이라서 그런 거라는 걸 왜 아무도 명시적으로 말해 주지 않는 것일까? 우리는 인생의 대부분을 황야에서 살아야 한다는 걸, 그리고 대부분의 비신자 일반인들이 종교에 관심을 가지는 순간이란 술에 잔뜩 취해서 알 수 없는 죄책감이 피어오를 때 같은 순간(뿐)이라는 통계적 진실을 왜 안 알려주는 것일까? 아니 뭐 다 모르겠고 왜 우리는 전도단이라는 사람들이 변증 하나를 제대로 훈련 안 하고 맨날 3평짜리 우리 방에 틀어만 박혀서 운동장을 구경하며 "음성"만 처 듣고 다닌 것일까? 우리가 그렇게 대수롭게 홀리하고 스피리추얼했던가?

할 수 있다면 기독교 테마의 무엇을 좀 하고 싶다. 근데 그게 다 일발성으로 끝날 요량이 있어서, 한마디로 '콘텐츠가 없어서' 못 하고 있다. 그리고 할려면 신학 하는 사람이 좀 거들어줘야 하는데 내가 그 연줄이 없어서… 그래도 뭐 저번에 환희랑 전화통화를 두 시간 가까이 했을 때의 일만 가지고 생각해 보자면, 간단하게 FAQ 토픽 몇개 늘어놓고 개똥철학을 늘어놓는 것만 해도 당장은 먹힐 것으로 보인다. 데모그래픽적으로 말해서는 현재 2030 신자 및 냉담자들의 사상적 기반이 말도 못하게 취약하기 때문이다. 조직신학까지도 필요없고 세계사, 교양철학, 기초과학, 기본적 수준의 비판적 사고만으로도 충분히 기독교 개론 가능하다고 나는 보는데 그게 안 돼 있으니까 온갖 좋은 소리 떡발라서 뼈대 없는 건물을 실면적 2만평짜리로 세워놓고들 다니는 거다. 와웸에서 유일하게 변증이며 신학 비슷한 걸 좀 알려주신 분이 이지웅 간사님인데 그분 강의가 세상에 그렇게 인기가 있었단 말이지. 그리고 그 청중들은 여전히 그 강의들과 조셉 프린스의 신나는 히브리어 강의와 <왕의 재정> 사이에서 전혀 분간을 못 잡고 살아간다. 예루살렘아 예루살렘아 선지자들을 죽이고 네게 파송된 자들을 돌로 치는 자여!

돌아와서 개인사를 좀 논하자면… 피똥 싸게 개발 중이다. 옆에서는 주구장창 유지보수 이슈대응 등만 맡고 있는 ASP 개발자 차장님이 "와 재밌겠다 개발한다" 하면서 구경하는데 구경 자체는 뭐 그렇다 치지만 정말 하루하루 다른 의미에서의 피 마름을 경험하고 있다. 이런 식으로 레벨업하고 싶지 않았다는 소리가 절로 나오는 건 어쩔 수가 없는데, 하필 빌링(결제)이다. 심지어 아임포트나 스트라이프 같은 것도 아니고 그냥 PG에서 준 코드를 날로 갖다 씌우고 있다. 이니시스는 모든걸 결국 CURL 치는 구조이고(최종 승인 과정에서 인증토큰을 태워 보내야 한다), KCP는 자기네 바이너리에 변수를 넣어서 돌리면 그 안에서 CURL 날리고 인증치고 변수 반환하고 하는걸 다 해주는 구조다. 동적으로 설정값 받아서 메소드 돌리는 class KCP를 만들 수는 있을 거 같은데, 그리고 그걸 말로만 듣던 프로바이더나 뭐 그런 것에 옮겨놓고 걍 툭툭 갖다쓰는 걸 구현할 수 있을 거 같은데 그럴 시간이 없다. (그나마 퍼블릭 경로에 쑤셔박혀 있던 결제요청 바이너리를 소스 내부로 가져온 게 다행이라면 다행일까?) 그냥 일단 결제 자체가 성공해야 해서 미친 듯이 기존 레거시와 예제 소스를 뒤집어 까면서 최대한 앞뒤를 맞추려고 하고 있다.

잘 안 되면서도 어쨌든 되어가고 있다. 정말 1년차답구나 싶다. 아무도 내 코드를 봐주지 않는 가운데 베트남 외주개발업체 사람들과는 미친듯이 소통하면서 결과적으로 지나치게 빠르게 결과물을 받아보고 있어 좀 많이 당혹스럽다. 느낌상 초반에 이렇게 눈핑핑돌게 달린 다음 이후 몇 달 동안 나도 할 일이 없어 얼타게 될 삘이다. 그때쯤엔 뭔가 일을 만들어야지… 이 회사에 3년은 있고 싶은데 그 이상은 정말 내가 그리고 개발팀이 그리고 대표란 사람이 장차 어떻게 하느냐에 따라 달라질 것 같다. 어쨌든 이 회사 주요 상품은 교재와 교사 서비스이지 웹사이트나 "체험상품" 따위가 아니기 때문에. 뭐 그래도 최근 한국경제 단독으로 뜬 전직장 존망의 위기 관련 소식을 보면 그냥 아찔하다는 생각만 들지 뭐 지금의 상황을 왈가왈부할 처지는 못된다 ㅎㅎ 그냥 주는밥 먹고 얌전히 MSSQL과 씨름하다 집에 가면 될 것 같다. 아 맞다 SQL 공부를좀 해야 하는데… 정말 싫다. 아 맞다 회계자격증 따고 봉사시간 채워야 하는데… 어휴 이다.

다 써놓고 보니 전반적으로 새삼 드는 생각은, 약간 지금 이 순간이 내 인생이라는 긴 커밋로그의 어느 한 롤백 가능한 스테이블 배포판 태그 지점 같다는 것이다. 여기서 무슨 브랜치를 따야 할지는 모르겠는데 아무튼 새 브랜치를 시작하려면 여기서 시작해야 한다. 그래서 우물쭈물 핫픽스나 붙여 가면서 master에 머물러 있는 건데… 그래서인 거였을까? 최근에 전혀 내 인생과 무관하던 킹오파 브랜드 신작 폰겜을 받아 봤다. (심지어 사전예약도 했는데 공식 채널 통해서 해서 그런지 별다른 보상이나 알림을 못 받았다.) 사실은 대다수 사람들이 초딩때 다 졸업했을 시라누이 마이에게 혹해서 시작해 봤지만 의외로 마이라는 캐릭터는 매력적이지 않다는 느낌이고 (정말 당혹스러웠다 당연히 지금쯤 얘 보려고 게임 켜서 얘만 보고 있어야 하는데 안그러고 있음) 그냥 beat 'em up 장르를 (매우 순한)맛이나 보자는 느낌으로 너무 늦게 기웃거리고 있다. 게임 같은 게임을 좀 하고 싶은데 요즘 게임은 게임 같지가 않아서 곤란하다. 플스를 사면 좀 나아질까 했다가, 그마저도 우선은 접었다. 오히려 클래식 테트리스가 게임 같을 지경이라 요즘은 소전 데차 라오진 다 버려두고 테트리스나 하고 앉은 상황이다.

그래서 다음 김어진쇼에서는 테트리스의 테트리미노 중 내가 제일 싫어하는 테트리미노 랭킹을 매기는 영 머리 나쁜 기획을 관철할 예정이고… 내일은 샤브샤브와 <걸캅스>를 볼 것 같다. 그게 오늘, 아니 어제의 일이다. 아니 오늘의 일이다. 그냥 지금은 그렇다.

지금 스크롤을 다시 돌려보니 영 황당하다. 뭔 임상학적 개소리를 이리 길게 써놨냐고.

Posted by 엽토군
:

저 박스 쓰고 눈구멍 통해서 실제 공연 관람을 했던 그 10분을 생각한다.

앉아서 보고 있던 것은 "청이와 삼둥이"였다. 휴대폰만 들고 급히 달려가서 각도를 확인하고 자리를 잡고 포즈(?)를 취한 뒤 사진 나온 걸 확인하고 잠시 후 합류하겠다고 아주 잠깐 10분 정도 앉아있었다. 도대체 청이와삼둥이가 뭐하는 창극인가 애초에 창극이 뭔가 나도 좀 알자 싶어서. 가사 중간에 심청 얘기가 슬쩍슬쩍 나오길래 아 그거 맞구나 하고 확인만 하고(이 사실관계가 정말 그렇게 중요했다) 다시 또 뭔가에 쫓기듯이 슬며시 자리를 떠 다음 장소로 이동했던 걸로 기억한다.

홍보 콘텐츠로서 이 포스팅은 말하자면 배우 앞에 배경이 등장해 배우를 다 가리는 B컷이다. 단국대의 누가 나오는지(당사자들에게는 정말 중요한 커리어 아니겠는가?) 배비장전이 뭐 하는 창극인지(사실 아직도 모른다. 이제 찾아볼 생각) 그걸 정말로 앉아서 즐겨보니 어땠다든지(그때 내 감상은 잘은 몰라도 썩 나쁘지 않다는 것이었다) 하는 정보값은 정작 빈약하고 관객석의 누가 이상하다느니(사진 초점도 무게비중도 무대 주인공에 없다) "참신하고 유쾌"하다느니(내가 본 무대는 딱히 그렇지 않았다) 순 군말뿐이다. 공연을 미리 잘 알고 그걸 실제로 만끽하고서 감동을 느끼며 소식을 전해도 주인공들에게 각광을 줄까 말까인데 나는 이때 최후 수단이랍시고 비상물자처럼 갖고 있는 광목 한복 가져가서 당최 무엇을 하고 있었던 것일까.

누굴 탓하거나 죄줄 생각은 없고 그냥 그랬다는 얘기를 해보고 싶었다. 이렇게 하면 안 된다, 안 되었다는 어렴풋한 생각이 즉석카메라 사진처럼 피어올라 이제야 좀 잘 보이는 느낌이다. 우리는 프로들이 뭔가 약은 요령으로 쉽게쉽게 식상하게 해낸다고 생각하지만, 진짜 프로들은 즐길 것 다 즐기고 알 것 다 알아 가면서 제대로 치기 때문에 그게 쉬워 보이는 것이라고 생각한다. 지난 3년간 꿈을 꾸고 일어나서 생각해 보자면 어쩐지 그렇다.


전주세계소리축제 자체는 훌륭하다. 돈많이벌어 성공하면 5년에 한 번은 갈 생각이다. 전주 자체는 지금도 외국인들에게 서울 대신 추천할 만치 좋았으므로

Posted by 엽토군
:

음... 이걸 검색하시는 분들이 계셔서...

네 제가 요즘 rwby chibi 2기 한국어자막에 참여하고 있기는 합니다... 하지만 유튜브 자막 특성상 마음에 안 드는 부분이 있다면 커뮤니티 번역 참여로 직접 수정하실 수 있어요... 오역이나 지나친 의역은 거기서 직접 수정해주시면 되겠고요, 본편 쪽은 워낙 루비 커뮤니티가 크고 본격적인지라 그쪽 자막은 애초에 건드릴 생각이 없구요... 기타 의견은 언제든지 이 글 밑에 댓글로 적어주시면 답해 드리겠습니다... ㄷㄷ...

Yes I have volunteered to subtitling RWBY Chibi - specifically no more than the most of season 2 - and I'd like to mention the facts that (a) you can fix any typos or translation errors as you want it to be by improving the existing subtitles and (b) I've never been done anything with RWBY main series or its subtitles (c) and I'll never subtitle the episodes of main RWBY unless specifically requested/required, as RWBY has a big nice fan community which would only be bothered with my possibly wrong copies kthxbye


짤은 요즘 흥하는 페니쨩
하앍 본편볼땐 그냥저냥 좋았는데 치비 나오고부터는 최고시다

'9 도저히 분류못함' 카테고리의 다른 글

어제라는 오늘  (2) 2019.05.11
2주년 기념  (0) 2017.10.08
백엔드  (0) 2017.04.20
잊지 말아야 할 한 가지  (0) 2016.06.13
iYUPTOGUN  (0) 2016.01.30
Posted by 엽토군
:

백엔드

2017. 4. 20. 21:50

백엔드 작업을 하고 있다 보면 졸라리 외롭다.

사람들이 보는 건 그냥 "깔쌈한" 화면이지만 그거 출력시키려고 갖은 고생 다 하고 있는 건 사실 서버이고 백엔드 코드인데 겉으로 보이는 프론트엔드가 너무 화려하고 알기 쉬워서 그 뒤에서 작동하는 백엔드 작업은 정말 하나도 안 보이고 티도 안 나고 그렇다.

사람들이 사상을 대하는 태도가 딱 그렇다. 겉으로 보이는 건 알리바바고 우버고 마윈이지만 그 사람들이 가진 비즈니스 마인드라는 게 어떤 것일지, 정말로 그들이 그들의 눈 뒤에서 보고 있는 것은 무엇일지 사람들은 정말로 관심이 없다. 들여다보려고 하지도 않고.

그래서 다들 내게 식량을 자꾸 먹이려고 한다. 그거밖에 해 줄 수 있는 게 없다는 거다. 나도 안다. 그 갑갑한 마음을... 하지만 나도 갑갑하다. 동료가 있었으면 좋겠다. 내가 코드를 뒤집어엎고 있을 때 옆에서 "와 완전다 뒤집어엎고있네 ㅋㅋ" 하고 받아쳐줄 놈이 한 명만 있어 주면 오죽 좋으랴만.

퇴근하고 돌아와서 DNS 설정 문의넣어 해결하고 veg 파일 좀 고쳐서 최종본 렌더링떠 돌려주고 템플릿 html 파일들을 죽어라 들여다보면서 네이버지도 버튼을 구글지도 버튼으로 갈아끼우고 문득 시계를 보니 아직 11시도 안 됐다. 쿠로사와의 대사를 빌자면, 다른 개발자들은 다들 도대체 어떻게 사는 걸까... 졸라리 외롭다.

'9 도저히 분류못함' 카테고리의 다른 글

2주년 기념  (0) 2017.10.08
블로그 유입키워드에 보여서 한줄 메모  (0) 2017.10.01
잊지 말아야 할 한 가지  (0) 2016.06.13
iYUPTOGUN  (0) 2016.01.30
그냥 생각을 해 봤는데  (0) 2015.04.06
Posted by 엽토군
:

TV 속 연예인들의 못난 행태를 비판하고 욕하고 싶어질 때마다 한 가지를 잊지 말아야 한다.


그걸 당신의 눈앞에 보여주지 않을 수도 있었는데도 굳이 테이프에서 잘라 와 ‘살려서’ 내보내는 이들이 저기 있다는 사실을.

'9 도저히 분류못함' 카테고리의 다른 글

블로그 유입키워드에 보여서 한줄 메모  (0) 2017.10.01
백엔드  (0) 2017.04.20
iYUPTOGUN  (0) 2016.01.30
그냥 생각을 해 봤는데  (0) 2015.04.06
현재까지 이해한 development ideas  (0) 2014.12.22
Posted by 엽토군
:

iYUPTOGUN

2016. 1. 30. 18:11

오늘 그 아이팟은 평소와 지나치게 똑같은 동작으로 내 손에 붙들려 나왔다.

어쩌면 그것은 오늘 하루는 집에서 쉬고 싶어했을지도 모르겠다. 딸려가 본들 주머니 속에서 썩다가 다시 이부자리 머리맡에 놓일 텐데. 나 대신 그 좋아하는 스마트폰과 패드에 이어폰 잭을 꽂을 텐데.

어쩌면 그것은 날 괘씸해하고 있었을지도 모르겠다. 아니 지금까지 8년 동안 별의별 곳을 다 돌아다니며 귀를 심심하지 않게 해 준 게 누군데. 대학생활과 군대를 누구 덕분에 버텼는데. 그 잘난 아이폰과 아이패드를 갖기 전까지 제일 애지중지하던 몸이 누구였는데, 네까짓 게 감히.

그래서 그 아이팟은 제 갈 길을 갔다. 아마도 조조영화 한 편을 보려고 버스에서 내릴 때, 아니면 극장 좌석 어딘가에서, 또는 외선순환 지하철 2번 칸에서, 어쩌면 그 직후 갈아탄 163번 버스에서.

데이터는 다 백업받아뒀었다. 어쩌면 120GB라는 저장 용량은 로컬 디바이스의 것치고는 지나치게 구시대적인 건지도 모르겠다. 다만, <The Book of Eli>에 나오는 그런 아이팟이 내게도 있다는 일말의 허세 섞인 자부심은 있었다. 그 모든 유산(legacy)이 처음으로 그리고 마지막으로 내 손에 붙들려 있기를 거절했다. 수락하지 않을 수가 없었다.

대략 천 년쯤 지나면 고고학자들은 지금 시기의 디지털 자료들을 복구하지 못해 광광 울 꺼라는 트윗을 봤었다. 동료 한 명이 그 얘길 듣고 이런 말을 했다. “글쎄 그런데 그때가 되면 디지털 고고학자들이 데이터를 발굴해내려고 어떻게든 또 할 걸요?” 뭐 여차하면 우주로 전파를 쏴 두면 어떻게든 보존은 되지 않겠느냐, 따위 실없는 농담으로 그 얘기를 마무리지었다.

슬프다거나 낙담이 되지 않는 이유를 알 수가 없어서 그 얘길 해 봤더니, 다른 동료가 맞받아준다. “근데 물건이라는 건 갈 때가 되면 가더라고요.” 그러게 말이다. 2008년 세밑에 사서 2016년 구정 전에 보내니, 딱 8년이다. 그것도 제딴에는 꽤나 눈치를 봤겠지. 그리고, 내게 띄지 않게 조용히, 오늘처럼 주인이 조용히 즐거울 날을 봐서 스스로를 분실 처리한 거겠지.

그것의 기종은 iPod Classic 120GB이고, 모델은 블랙이었다. 이름은 iYUPTOGUN이었다. 그것에게, 없는 염치를 무릅쓰고 사실은 그간 깊이 고마웠다고 전하고 싶다.

서울대입구역에서
2016. 1. 30.

'9 도저히 분류못함' 카테고리의 다른 글

백엔드  (0) 2017.04.20
잊지 말아야 할 한 가지  (0) 2016.06.13
그냥 생각을 해 봤는데  (0) 2015.04.06
현재까지 이해한 development ideas  (0) 2014.12.22
Noto Sans KR woff  (2) 2014.07.31
Posted by 엽토군
:
“내다 팔아야 비로소 가처분소득/재산이 되는” 아파트 부동산을 왜 다들 팔지는 않으면서 그 집값을 떠받치려고들 하는가 이해가 안 돼서 혼자 끙끙 앓기를 어언 몇 년, 오늘 아침 어렴풋이 지하철 타고 뚝섬역 지나다가 떠오른 생각인데…

1) 100가구 사는 지역에서 재개발 조합이 결성된다
2) 200가구 이상 수용 가능한 초고층 아파트단지를 계획하고 거기에 사람들이 다 들어와 산다고 가정하면서 대박을 꿈꾼다
3) 200가구짜리 아파트가 건설된다 (각종 업자들은 이미 볼장다보고 퇴갤)
4) 80~120가구가 입주한다
5) 200가구 분수의 아파트가 평가 절하된다
6) 아파트 하나 바라보고 몇년간 별꼴 다 본 80~100가구의 조합원들은 어떻게든 그 손해를 키우지 않으려고 또 별짓을 다 하기 시작한다

…뭐 이런 건가?
내가 정말 몰라서 그럽니다. 누가 설명좀

'9 도저히 분류못함' 카테고리의 다른 글

잊지 말아야 할 한 가지  (0) 2016.06.13
iYUPTOGUN  (0) 2016.01.30
현재까지 이해한 development ideas  (0) 2014.12.22
Noto Sans KR woff  (2) 2014.07.31
본의 아니게  (0) 2014.01.16
Posted by 엽토군
:

​​MVC 구조
- 주말 군부대라고 생각하면 알기 쉬움.
컨트롤러: 당직사관. 상황 판단을 해서 작업을 하거나 준다. 근데 저 혼자서 할 수 있는 일이 거의 없어서 보통은 일단 모델부터 부르고 본다.
모델: 상황병. 필요한 변수를 컨트롤러에게 물어봐서 그거 갖고 자료 뽑은 다음 뷰를 차출해서 작업한다. 사실상 거의 모든 실무는 얘가 혼자 다 함.
뷰: 일반병력. 쪽수가 많다. 각종 물자(HTML JS CSS 등등)갖고 다니면서 모델이 뽑아준 자료 보고 컨트롤러가 시킨 삽질을 해놓는다.


codeigniter 세그먼트
- 밑줄친 세그먼트가 주로 $this->uri->segment(n) 꼴로 호출된다.
- 아 물론 자기가 일일이 섬세하게 routing을 해둔상태라면 할말음슴
0: CI가 깔린 루트폴더. 여기까지는 ㅈㄴ 퍼블릭경로임.
1: 지금 보고 있는 화면 담당 컨트롤러 이름. 앱 복제의 경우를 대비해 고정값으로 적지 않는다.
2: 지금 보고 있는 화면을 만드는 함수(메쏘드)명. list, view, write...
3: 그 함수가 받아야 할 변수. 주로 DB 내 테이블명이나 옵셋(리밋)값.
(2n+2): 그 함수에게 추가로 알려줘야 할 변수명. page, id...
(2n+3): 그 추가 파라미터에 담겨야 할 값. 주로 DB 테이블 내 필드명이나 입력값.


codeigniter 페이지네이션
- "UI를 만들어주는 것뿐".
Q. $config['per_page']에 7을 할당했더니 3페이지 주소 세그먼트에 3이 아니라 14가 뜬다. 근데 이 와중에 게시물들 자체는 에러 없이 잘 뜬다. 왜 이러나?
A. $config['use_page_numbers']가 기본값인 FALSE로 되어 있어서 그럴꺼다. CI 입장에서 페이지 변수는 기본적으로 그 페이지 맨 첫줄에 띄울 아이템의 id 숫자("index")다. 그러니까 너님의 설정대로라면 1페이지에는 id가 0인 자료부터 6인 자료까지가 나오고, 3페이지에는 id가 14인 아이템부터 20인 항목까지가 나올 것이다. 그게 ㅈㄴ 정상이다.
Q. 난 그게 싫다. 3페이지로 가는 링크의 페이지 세그먼트가 당연히 3이어야 되는 거 아니냐? 그렇게 하려면 어떡하면 되나?
A. 어쩌긴 뭐 어째 $config['use_page_numbers']에 TRUE 주고 ㅈ빠지게 로직 짜야지 뭐. 전체 자료를 아이디 내림차순으로 가져오되 (페이지세그먼트값)*$config['per_page']-1을 뒤끝으로, (뒤끝)-$config['per_page']+1을 앞끝으로 해서 가져오는 LIMIT 쿼리문을 작성해야 될 거다. 골치 아프면 하지 말든가.


​​jquery.AJAX()
- 기본 코드 얼개는 다음과 같다.

$('#폼전체id').submit(function(e){ ◀1
  e.preventDefault(); ◀2
  if (폼 전송 거부 조건) {
    alert("이 폼은 전송 못하겠습니다.");
    return false; ◀3
  } else {
    $('폼 서브밋 버튼').html('로딩중…').attr('disabled','disabled');
    $.ajax({
      type: 'POST', ◀4
      url: '폼처리.php', ◀4
      data: $(this).serialize(),  ◀4
      dataType: 'json' ◀5
    }) ◀6
    .done(function(data){ ◀7
      alert(data['title']+"에 대한 정보를 찾았습니다."); ◀7
      $('#받아온 데이터를 사용할 객체').html(data['author']+"이(가) 쓴 +"data['title']"+에 대한 상세정보입니다."); ◀7
      $('#데이터 가지고 manipulate시킬 다른 객체').html(data['detail']);
 ◀7
      $("아까 disabled 시켜놨던 폼 서브밋 버튼").html('새로 시작').removeAttr('disabled');
      // 기타등등 하고 싶은 모든 작업
      })
    }) ◀6
    .fail(function(){
      alert("실패! 다시 시도해 주세요.");
      $('아까 disabled 시켜놨던 폼 서브밋 버튼').html('재시도').removeAttr('disabled');
      // 그밖에도 시키고 싶은 작업
    });
    return false; ◀8
  }
});

- 이하 조금 창피할 정도로 디테일한 설명
1: 제이쿼리에 들어 있는 submit() 는 개이득 메쏘드. 4번 참조
2: 해당 폼 태그의 action 속성과 무관하게 이하의 코드를 작동시켜야 하므로 선택이 아닌 필수. 폼태그의 action="어쩌구" 부분을 통째로 생략하는 것이 여러모로 가장 안전.
3: 매우 기초적인 JS 상식인데 몰라서 고생한 부분. 아무 동작도 하지 말라고 지시하고 싶을 땐 십중팔구 리턴폴스가 답이다.
4: jQuery.AJAX() 메소드의 필수값들은 type, url, data. 나머지는 없으면 없는대로 돌아가는데 이 셋은 꼭 있어야 한다(애당초 폼전송을 기본으로 하는 API이므로 당연하다 하겠다). ajax 호출 조건이 폼전체의 submit 메소드 호출일 경우, 이 시점에서 $(this)는 곧 바로 그 폼 전체이므로, 'data'에는 그냥 $(this).serialize()를 부여하면 끝. (이걸 안 쓸 경우 json 형식으로 일일이 매핑해 줘야 함.{'title':$('#title').val(), 'author':$('#author').val(), …} 하는식 ㅋ)
5: 'datatype'은 안 되고 'dataType'이 됨. 'url'에 지정된 폼처리.php로부터 어떤 데이터가 반환되는가가 이후 .done()과 .fail() 그리고 여기 쓰지 않은 .all() 메소드의 판별 기준이기 때문에 여기에 부여되는 값은 사실 상당히 중요하다. 'dataType'에서 'json'을 지정했는데 php가 함수 맨끝에 echo() 를 돌려서 text를 뱉었을 경우에는 얄짤없이 .fail() 내부가 실행됨. ajax() 메쏘드의 진가는 json을 받아와서 처리 가능하다는 데 있다. 7번 참조
6: 기본 얼개가 $.ajax().done().fail(); 형태임. 이 부분에서 괜히 누구처럼 세미콜론 열심히 찍어서 에러 내지 않도록 한다.
7: 여기서 변수명 'data'를 다른 걸로 바꾸면 작동을 안 함. 코드 결벽증이 있지 않고서야 그냥 냅두자. 자료 참조 방법은 그냥 json 배열 참조랑 똑같음. 위 코드를 보고 어떻게 사용 가능한지 짐작해 보자. 개발자 도구의 response 부분을 들여다보는 것은 매우 도움이 된다.
8: ㅈㅅ 솔직히 나 이거 왜 넣었는지 모름 ㅋ if else로 에러 처리를 했는데 이도저도 아닌 상황에 아무것도 하지 말라고 걸어둔 건가... try catch로 바꿔야 되나... 에이 몰라



추가예정


'9 도저히 분류못함' 카테고리의 다른 글

iYUPTOGUN  (0) 2016.01.30
그냥 생각을 해 봤는데  (0) 2015.04.06
Noto Sans KR woff  (2) 2014.07.31
본의 아니게  (0) 2014.01.16
스마트 재생목록 updated better  (0) 2014.01.02
Posted by 엽토군
:

카테고리

분류 전체보기 (799)
0 주니어 PHP 개발자 (6)
1 내 (326)
2 다른 이들의 (252)
3 늘어놓은 (37)
4 생각을 놓은 (71)
5 외치는 (76)
9 도저히 분류못함 (30)

최근에 올라온 글

최근에 달린 댓글

달력

«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31