레이블이 okto인 게시물을 표시합니다. 모든 게시물 표시
레이블이 okto인 게시물을 표시합니다. 모든 게시물 표시

2010년 6월 26일 토요일

notepad2 컴파일 삽질기 부록#5.2 : context-menu 기능 수정

삽질기 부록#5.1 : context-menu 통합 및 수정을 수정한 포스팅. 부록 #5/#5.1과 본 포스트는 동시 적용불가.

구차니님께서 수고해주신 덕분에 context 메뉴(오른쪽 버튼 클릭 메뉴)를 통해 Notepad2를 사용할 수 있었다.
(삽질기 부록#1 : context-menu 추가삽질기 부록#2 : context-menu 추가 업그레이드 참조)

그런데, Notepad2 3.1.21 정식버전에서는 이 수정을 미묘하게 바꿔야 했으며, 이후 okto님구차니님과 context 메뉴에 대한 수정을 논의한 결과 메뉴를 조금 간결하게 변형하기로 했다.
(File 메뉴에 있는 context-menu 관련 메뉴를 하나만 남기도록 수정)

그리고, 레지스트리에 등록이 실패했을 때의 코드가 빠져있었는데, 실패했을 경우 간단한 경보음을 들려주도록 했다.

삽질기 1~3을 모두 적용했다고 가정하고 시작한다.
그리고, notepad2 컴파일 삽질기 부록#5.1 : context-menu 통합 및 수정은 적용하지 않은 상태에서 시작한다.


수정 대상파일은 resource.h, Notepad2.rc, Notepad2.c의 3개이며, 모두 src 폴더에 저장되어 있다.


1. resource.h

다음 한 줄을 추가.
#define IDM_REGISTRY_ALL            40690


2. Notepad2.rc

IDR_MAINWND MENU DISCARDABLE에서 아래 내용을 찾는다.
MENUITEM "Propert&ies...",              IDM_FILE_PROPERTIES
MENUITEM "Create &Desktop Link",        IDM_FILE_CREATELINK
MENUITEM SEPARATOR
POPUP "&Favorites"
BEGIN
    MENUITEM "&Open Favorites...\tAlt+I",   IDM_FILE_OPENFAV
    MENUITEM "&Add Current File...\tAlt+K", IDM_FILE_ADDTOFAV
    MENUITEM "&Manage...\tF9",              IDM_FILE_MANAGEFAV
END
이 부분을 아래와 같이 수정한다.
MENUITEM "Propert&ies...",              IDM_FILE_PROPERTIES
MENUITEM SEPARATOR
MENUITEM "Create &Desktop Link",        IDM_FILE_CREATELINK
MENUITEM "Add context-menu to all file type", IDM_REGISTRY_ALL, CHECKED
MENUITEM SEPARATOR
POPUP "&Favorites"
BEGIN
    MENUITEM "&Open Favorites...\tAlt+I",   IDM_FILE_OPENFAV
    MENUITEM "&Add Current File...\tAlt+K", IDM_FILE_ADDTOFAV
    MENUITEM "&Manage...\tF9",              IDM_FILE_MANAGEFAV
END

구분자 하나와 context-menu를 추가하는 내용임.


3. Notepad2.h

새로운 함수 하나를 추가.
void CheckRegistry();


4. Notepad2.c

파일 앞부분의 변수 선언부에 다음 내용을 추가.
BOOL      bRegistryUnknownType;
BOOL      bRegistryAllType;


다음, LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)에서 아래 내용을 찾는다.
case WM_COMMAND:
  return MsgCommand(hwnd,wParam,lParam);
여기에 아래와 같이 한 줄을 추가한다.
case WM_COMMAND:
  CheckRegistry();
  return MsgCommand(hwnd,wParam,lParam);


다음, void MsgInitMenu(HWND hwnd,WPARAM wParam,LPARAM lParam)에서 아래 내용을 찾는다.
EnableCmd(hmenu,IDM_EDIT_SELTONEXT,i);
EnableCmd(hmenu,IDM_EDIT_SELTOPREV,i && lstrlenA(efrData.szFind));
EnableCmd(hmenu,IDM_EDIT_REPLACE,i /*&& !bReadOnly*/);

CheckCmd(hmenu,IDM_VIEW_USE2NDDEFAULT,Style_GetUse2ndDefault(hwndEdit));
이 부분을 아래와 같이 수정한다. 1줄을 추가하는 것임.
EnableCmd(hmenu,IDM_EDIT_SELTONEXT,i);
EnableCmd(hmenu,IDM_EDIT_SELTOPREV,i && lstrlenA(efrData.szFind));
EnableCmd(hmenu,IDM_EDIT_REPLACE,i /*&& !bReadOnly*/);

CheckCmd(hmenu,IDM_REGISTRY_ALL,bRegistryAllType || bRegistryUnknownType);

CheckCmd(hmenu,IDM_VIEW_USE2NDDEFAULT,Style_GetUse2ndDefault(hwndEdit));


다음은 LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)의 수정임.
이 함수는 전체가 하나의 switch-case 문으로 되어있는데, 이 case 중에 IDM_REGISTRY_ALL을 추가함.
case IDM_REGISTRY_ALL:
// Register registry - type all
if (bRegistryAllType || bRegistryUnknownType)
{
if (bRegistryAllType)
{
  //WinNT requires the key to have no subkeys
RegDeleteKey(HKEY_CLASSES_ROOT, L"*\\shell\\Open with notepad2\\command");
RegDeleteKey(HKEY_CLASSES_ROOT, L"*\\shell\\Open with notepad2");
bRegistryAllType = FALSE;
}
if (bRegistryUnknownType)
 {
//WinNT requires the key to have no subkeys
RegDeleteKey(HKEY_CLASSES_ROOT, L"Unknown\\shell\\Open with notepad2\\command");
RegDeleteKey(HKEY_CLASSES_ROOT, L"Unknown\\shell\\Open with notepad2");
bRegistryUnknownType = FALSE;
}
}
else
{
HKEY key1;
LONG res = RegCreateKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2",&key1);
bRegistryAllType = TRUE;
if (res == ERROR_SUCCESS)
{
WCHAR cmd[] = L"Open with &notepad2";
RegSetValue(key1, NULL, REG_SZ, cmd, wcslen(cmd));
}
else bRegistryAllType = FALSE;
RegCloseKey(key1);

  res = RegCreateKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2\\command",&key1);
if (res == ERROR_SUCCESS)
{
WCHAR cmd[MAX_PATH + 4];
WCHAR path[MAX_PATH];
int len;
GetModuleFileName(GetModuleHandle(NULL), path, MAX_PATH);
len = wsprintf(cmd, L"%s %%1", path);
RegSetValue(key1, NULL, REG_SZ, cmd, len);
}
else bRegistryAllType = FALSE;
RegCloseKey(key1);

if (!bRegistryAllType)
{
MessageBeep(MB_ICONEXCLAMATION);
}
}
break;


마지막으로 함수를 하나 추가한다.
void CheckRegistry()
{
    HKEY key;
    LONG res;

    res = RegOpenKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2",&key);
    if(res == ERROR_SUCCESS)
            bRegistryAllType = TRUE;
    else    bRegistryAllType = FALSE;
    RegCloseKey(key);

    res = RegOpenKey(HKEY_CLASSES_ROOT,L"unknown\\shell\\Open with notepad2",&key);
    if(res == ERROR_SUCCESS)
            bRegistryUnknownType = TRUE;
    else    bRegistryUnknownType = FALSE;
    RegCloseKey(key);
}

이렇게 수정하면 아래처럼 File 메뉴에서 context-menu 메뉴 하나가 표시된다.

사용자 삽입 이미지

context-menu가 하나만 나오도록 수정. ^^;


2010년 1월 31일 일요일

여러 개로 분리된 동영상을 다시 합치면 싱크문제가 생기는 이유

동영상 관련 지식을 가진 분들껜 상식적인 얘기지만, 지인들과 얘기하다보니 의외로 모르는 분들이 많아 간단히 정리.

2개 이상으로 분리된 동영상을 다시 합쳐보면 수많은 어려움이 존재한다.
우선, 동영상 포맷에 따라 적절한 도구를 찾는 것부터 난관이 크다.

펼치기..



그런데, 어찌저찌 잘 합쳐지더라도 오디오와 싱크가 맞지 않기가 십상이다.
싱크문제를 이해하려면 우선 오디오와 비디오의 압축 방식을 조금 이해해야할 필요가 있다.

비디오/오디오 모두 압축을 할 때 일정 단위로 묶어서 압축한다.

펼치기..



그리고, 일단 압축이 되고 나면 이 비디오/오디오 그룹은 다시 분리될 수 없다.
(물론, 긴 시간을 들여 다시 인코딩하면 분리는 가능하다)
이렇게 압축된 그룹 하나하나는 zip파일과 유사한 방식으로 저장되기 때문이다.

프레임 단위로 저장하는 비디오의 경우 그룹 뒤쪽 일부를 잘라내는 기능은 있지만, 오디오의 경우 얄짤없다.
오디오는 프레임 단위 이하로는 분리될 수 있는 방법이 없다.

그런데, 아래와 같은 비디오/오디오 스트림이 있다고 해보자.

그림1. 원래의 A/V 스트림


이 파일의 크기가 너무 커서 파일을 둘로 나누려고 한다.
그런데, 이 파일을 아래와 같이 둘로 나누면 아무런 문제가 없다.
손실되는 데이터도 없고, 나중에 다시 합쳐도 깔끔한 결과물을 볼 수 있다.

그림2. 이상적으로 분리된 A/V 스트림


하지만, 실제로 그렇게 운좋은 상황을 만나기는 쉽지 않다.
보통은 아래와 같은 상황을 만나게 되며, 이런 상황이 되면 골치가 아프다.
동영상을 자르는 프로그램이 굉장히 똑똑하고, 다시 합칠 것이란 것을 안다면 이론상으론 아래와 같이 저장할 수 있다.

그림3. 현실세계에서의 A/V 스트림 분리 #1


하지만, 현실은 언제나 시궁창...
보통 동영상을 자르면 아래와 같은 형태로 저장한다.

그림4. 현실세계에서의 A/V 스트림 분리 #2


이 경우 두 동영상을 잘라붙이면 아래와 같은 결과가 된다.
그야말로 안습의 동영상이 탄생하는 것이다.

그림5. 다시 합쳐진 안습의 동영상


실제로 그림 4과 같은 경우를 만나면 이미 잘려진 오디오를 다시 만들어낼 방법은 없다.
이 경우 두 동영상을 다시 합치려면 비디오의 길이를 약간 잘라줘야 한다.

그림6. 일부 비디오를 희생시켜 다시 합친 결과


이러니 비디오 편집은 삽질의 연속일 수 밖에 없다...


덧1. 잘라붙였을 때 200ms 이하의 간격이라면 A/V 싱크 문제가 그리 부각되지 않는다.
이런 경우는 걍 합치고 마는 것이 속편하다.

덧2. 오디오의 경우 그림에 나온 블럭 하나가 실제의 프레임을 의미하지는 않는다.
오디오 블럭 하나에 프레임이 여러개씩 들어간다.
따라서, 길이를 맞추기 위해 오디오를 자르는 경우도 있다.

2009년 12월 20일 일요일

미실이 죽기전 한 말이 명대사라고? 흥이닷!

미실: 공주... 정천군, 도살성, 한다사군, 속함성 이곳이 어디인지 아십니까?
덕만: 신국의 최남단, 최북단 최서단의 국경들이 아닙니까?
미실: 아니... 아니야... 이 미실의 피가 뿌려진 곳이다.
        이 미실의 사랑하는 전우와 낭도들과 병사들을 시신도 수습하지 못하고 묻은곳이다.
        그게 신라다. 진흥대제와 내가 이루어낸 신국의 국경이다.
        신국... 주인? 니가 뭘 알아... 사다함을 연모하는 마음으로 신국을 연모했다. 연모하기에 갖고 싶었을 뿐이야.
        합종이라 했느냐? 연합? 덕만... 너는 연모를 나눌수 있겠느냐?
:
:
덕만: 나 아주 잠깐, 미실에게서 왕을 봤어. 진정한 왕을.

M본부 드라마 [선덕여왕] 50화
중에서


적반하장도 유분수. 미실은 루저고, 덕만이 위너인 것임.


이번주에 아마도 끝날 MBC 드라마 [선덕여왕]은 사실상 대하드라마 [미실]과 미니시리즈 [비담의 난]의 두 부분으로 되어있지만, 후반 미니시리즈는 워낙 포스란 게 없어 이미 끝난 것이나 다름 없는 분위기다.

그런데, 여기저기서 사람들의 얘기를 들어보니 미실이 신라시대 영웅적 페미니스트라거나, 왕권 시대의 민주주의 혁명이라는 뉘앙스의 어이없는 얘기를 들을 수 있었다.
페미니즘에 기대는 얘기는 정말 웃긴게, 덕만 역시 여자인데, 덕만을 페미니스트라 부르는 사람은 없다는 거다.
게다가 미실은 왕이 되려고 한 것이지 민주주의를 이루려고 하지도 않았다. (심지어 그녀는 민중을 우매한 것으로 매도함)

그 중 어이상실의 극치를 달리는 건 저 위의 대사다. 심지어는 극 중 덕만마저도 미실의 말이 맞다는 식이다.

그런데, 생각해보자. 당시는 왕권사회이고, 당연히 국가는 왕과 왕족의 것이다.
미실은 그냥 훔친자에 불과하다. 그리고, 마지막(50화)에 그 도둑질(또는 쿠데타)은 실패로 끝난다.

미실이 포스를 보여준 것은 좋지만, 그렇다고 미실의 쿠데타를 미화하는 시각은 좀 이상하지 않은가?
(게다가 미실을 미화하는 시각은 빡통, 전대갈, 물태우의 쿠데타 역시 미화하는 시각과 일치하는 것 같음)

미실 나름대로 자기 합리화의 대사인 것을 감동적인 명대사로 인식하는 건 왠지 불편하다.


okto님에겐 옥탑이라는 넷북이 있었다. 이걸 내(ZocKr)가 훔쳤다(라고 쳐).
힘이 없던 okto님은 그대로 뺏길 수 밖에 없었지만 이후 힘을 길러 나에게 돌려받았으러 왔다(라고 쳐).


ZocKr: okto공... 윈도우7, 오피스 2007, 비주얼 스튜디오 2008, AutoCAD 2009. 이것이 무엇인지 아십니까?
okto: 넷북의 최신 OS, 업무용 프로그램, 개발도구, 캐드 프로그램들이 아닙니까?
ZocKr: 아니... 아니야... 이 ZocKr의 돈이 뿌려진 것이다.
        이 ZocKr가 피땀흘려 번 돈과 아직 갚지도 못한 대출금으로 구입해서 설치하고 최적화한 프로그램이다.
        그게 옥탑이다. 내가 이루어낸 넷북의 결정판이다.
        넷북... 주인? 니가 뭘 알아... [아바타]를 연모하는 마음으로 옥탑을 연모했다. 연모하기에 갖고 싶었을 뿐이야.
        합의하자 했느냐? 합의? okto... 너는 연모를 나눌수 있겠느냐?
:
:
okto: 나 ZocKr에게서 정신병자를 봤어. 저 새퀴 미친 거 맞아.

okto님, 민노씨, ZocKr의 대화
중에서


2009년 6월 30일 화요일

notepad2 컴파일 삽질기 부록#5.1 : context-menu 기능 수정

삽질기 부록#5 : context-menu 통합 및 수정을 수정한 포스팅임. 부록 #5 와 본 포스트는 동시에 적용할 수 없음.

구차니님께서 수고해주신 덕분에 context 메뉴(오른쪽 버튼 클릭 메뉴)를 통해 Notepad2를 사용할 수 있었다.
(삽질기 부록#1 : context-menu 추가삽질기 부록#2 : context-menu 추가 업그레이드 참조)

그런데, Notepad2 3.1.21 정식버전에서는 이 수정을 미묘하게 바꿔야 했으며, 이후 okto님구차니님과 context 메뉴에 대한 수정을 논의한 결과 메뉴를 조금 간결하게 변형하기로 했다.
(File 메뉴에 있는 context-menu 관련 메뉴를 하나만 남기도록 수정)


삽질기 1~3을 모두 적용했다고 가정하고 시작한다.
그리고, notepad2 컴파일 삽질기 부록#5 : context-menu 통합 및 수정 (#1, #2 통합)은 적용하지 않은 상태에서 시작한다.


수정 대상파일은 resource.h, Notepad2.rc, Notepad2.c의 3개이며, 모두 src 폴더에 저장되어 있다.


1. resource.h (두 줄에서 한 줄로 줄어듦)

다음 한 줄을 추가.
#define IDM_REGISTRY_ALL            40690


2. Notepad2.rc (context-menu 항목이 하나로 줄어듦)

IDR_MAINWND MENU DISCARDABLE에서 아래 내용을 찾는다.
MENUITEM "Propert&ies...",              IDM_FILE_PROPERTIES
MENUITEM "Create &Desktop Link",        IDM_FILE_CREATELINK
MENUITEM SEPARATOR
POPUP "&Favorites"
BEGIN
    MENUITEM "&Open Favorites...\tAlt+I",   IDM_FILE_OPENFAV
    MENUITEM "&Add Current File...\tAlt+K", IDM_FILE_ADDTOFAV
    MENUITEM "&Manage...\tF9",              IDM_FILE_MANAGEFAV
END
이 부분을 아래와 같이 수정한다.
MENUITEM "Propert&ies...",              IDM_FILE_PROPERTIES
MENUITEM SEPARATOR
MENUITEM "Create &Desktop Link",        IDM_FILE_CREATELINK
MENUITEM "Add context-menu to all file type", IDM_REGISTRY_ALL, CHECKED
MENUITEM SEPARATOR
POPUP "&Favorites"
BEGIN
    MENUITEM "&Open Favorites...\tAlt+I",   IDM_FILE_OPENFAV
    MENUITEM "&Add Current File...\tAlt+K", IDM_FILE_ADDTOFAV
    MENUITEM "&Manage...\tF9",              IDM_FILE_MANAGEFAV
END

구분자 하나와 context-menu를 추가하는 내용임.


3. Notepad2.h (불변)

새로운 함수 하나를 추가.
void CheckRegistry();


4. Notepad2.c (수정됨)

파일 앞부분의 변수 선언부에 다음 내용을 추가.
BOOL      bRegistryUnknownType;
BOOL      bRegistryAllType;


다음, LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)에서 아래 내용을 찾는다.
case WM_COMMAND:
  return MsgCommand(hwnd,wParam,lParam);
여기에 아래와 같이 한 줄을 추가한다.
case WM_COMMAND:
  CheckRegistry();
  return MsgCommand(hwnd,wParam,lParam);


다음, void MsgInitMenu(HWND hwnd,WPARAM wParam,LPARAM lParam)에서 아래 내용을 찾는다.
EnableCmd(hmenu,IDM_EDIT_SELTONEXT,i);
EnableCmd(hmenu,IDM_EDIT_SELTOPREV,i && lstrlenA(efrData.szFind));
EnableCmd(hmenu,IDM_EDIT_REPLACE,i /*&& !bReadOnly*/);

CheckCmd(hmenu,IDM_VIEW_USE2NDDEFAULT,Style_GetUse2ndDefault(hwndEdit));
이 부분을 아래와 같이 수정한다. 1줄을 추가하는 것임.
EnableCmd(hmenu,IDM_EDIT_SELTONEXT,i);
EnableCmd(hmenu,IDM_EDIT_SELTOPREV,i && lstrlenA(efrData.szFind));
EnableCmd(hmenu,IDM_EDIT_REPLACE,i /*&& !bReadOnly*/);

CheckCmd(hmenu,IDM_REGISTRY_ALL,bRegistryAllType || bRegistryUnknownType);

CheckCmd(hmenu,IDM_VIEW_USE2NDDEFAULT,Style_GetUse2ndDefault(hwndEdit));


다음은 LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)의 수정임.
이 함수는 전체가 하나의 switch-case 문으로 되어있는데, 이 case 중에 IDM_REGISTRY_ALL을 추가함.
case IDM_REGISTRY_ALL:
// Register registry - type all
if (bRegistryAllType || bRegistryUnknownType)
{
if (bRegistryAllType)
{
  //WinNT requires the key to have no subkeys
RegDeleteKey(HKEY_CLASSES_ROOT, L"*\\shell\\Open with notepad2\\command");
RegDeleteKey(HKEY_CLASSES_ROOT, L"*\\shell\\Open with notepad2");
bRegistryAllType = FALSE;
}
if (bRegistryUnknownType)
 {
//WinNT requires the key to have no subkeys
RegDeleteKey(HKEY_CLASSES_ROOT, L"Unknown\\shell\\Open with notepad2\\command");
RegDeleteKey(HKEY_CLASSES_ROOT, L"Unknown\\shell\\Open with notepad2");
bRegistryUnknownType = FALSE;
}
}
else
{
HKEY key1;
LONG res = RegCreateKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2",&key1);
if (res == ERROR_SUCCESS)
{
WCHAR cmd[] = L"Open with &notepad2";
RegSetValue(key1, NULL, REG_SZ, cmd, wcslen(cmd));
}
RegCloseKey(key1);

  res = RegCreateKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2\\command",&key1);
if (res == ERROR_SUCCESS)
{
WCHAR cmd[MAX_PATH + 4];
WCHAR path[MAX_PATH];
int len;
GetModuleFileName(GetModuleHandle(NULL), path, MAX_PATH);
len = wsprintf(cmd, L"%s %%1", path);
RegSetValue(key1, NULL, REG_SZ, cmd, len);
}
RegCloseKey(key1);

bRegistryAllType = TRUE;
}
break;


마지막으로 함수를 하나 추가한다.
void CheckRegistry()
{
    HKEY key;
    LONG res;

    res = RegOpenKey(HKEY_CLASSES_ROOT,L"*\\shell\\Open with notepad2",&key);
    if(res == ERROR_SUCCESS)
            bRegistryAllType = TRUE;
    else    bRegistryAllType = FALSE;
    RegCloseKey(key);

    res = RegOpenKey(HKEY_CLASSES_ROOT,L"unknown\\shell\\Open with notepad2",&key);
    if(res == ERROR_SUCCESS)
            bRegistryUnknownType = TRUE;
    else    bRegistryUnknownType = FALSE;
    RegCloseKey(key);
}

이렇게 수정하면 아래처럼 File 메뉴에서 context-menu 메뉴 하나가 표시된다.

사용자 삽입 이미지

context-menu가 하나만 나오도록 수정. ^^;


2009년 5월 2일 토요일

[블레이드 러너] 상영회 열었습니다

드디어 [블레이드 러너]의 상영회를 열었습니다.
[다크나이트] 상영회 이후 무려 거의 3개월만에 연 상영회입니다.

사용자 삽입 이미지

이건 QAOSian 모임도 아니고 QAOSian 모임이 아닌 것도 아니여~


참석해주신 분들은 영화/만화 마니아이자 영화감독을 꿈꾸시는 천용희 님과, QAOS의 이정일 님, oneniner님 그리고 okto님이십니다.
(지난번 참가자 jafo님은 고향 가셔서, QAOS 시삽 도아님은 광주에 가시느라, 페니웨이 님은 출근 때문에 못 오셨습니다)

저녁에 애들이랑 <슈팅 바쿠간> 뮤지컬을 보러갈 계획이었는데, 천용희 님께서 이를 기념(?)하셔서 애들을 위해 [슈팅 바쿠간] DVD를 사오셨습니다. 탁자 위에 보이는 DVD입니다.

사용자 삽입 이미지

정보량이 터집니다, 터져요!


상영 순서는 Final cut → Workprint 였습니다.
약간(?)의 푸닥거리를 거치고서야 정상적으로 상영할 수 있는 환경을 만들었는데, 다 정리되고 보니 이정일 님께서 갖고 오신 노트북에서 상영해도 될 걸 그랬더군요. ㅠ.ㅠ

이 영화를 외울만큼 본 천용희 님이나 몇 번은 본 저는 재미있었지만, 사실 다른 분들껜 좀 정신 없는 상영회였을 것 같습니다. 화면 끊어진다고 다른 PC로 교체하고, 장면 하나 나올 때마다 떠들고... 애들을 뛰어놀고 뒹굴고...
뭐, 그래도 재미있었던 것 같습니다. ㅎㅎㅎ

사용자 삽입 이미지

라면은 역시 x양 라면! 원 계획은 다른 메뉴였으나...


그런데, 문제가... 천용희 님, 이정일 님께선 오후 스케줄이 있는데도 서울에서 용인까지 오셨단 겁니다.
(시간을 쪼개 참석해주신 두 분께는 특별히 더 고맙다는 말씀을 드립니다)
일단, 천용희 님께선 하는 수 없이 상영 중에 가셨습니다.
게다가 oneniner 님은 급한 일이 생겨 갑자기 나가셨습니다.

덕분에 식사는 okto 님, 이정일 님과만 했습니다.
메뉴는 무려 라면... (뭔가 다른 걸 생각했지만, 두 아이의 강력하기 짝이 없는 주장 때문에... ^^;)

사용자 삽입 이미지

술은 해로운 겁니다. 흠흠... 그래서 저희는 먹어서 없애버립니다!!!


주당파인 이정일 님께선 무려 이런 디저트를 갖고 오셨습니다.
그래서 대낮부터 초큼만 마셨습니다. ^^; (역시 도아님께서 오셨어야 합니다)

가볍게 홀짝인 뒤에 이정일 님도 다음 스케쥴을 위해 출발하셨습니다.
그리고, 남은 사람은 전통의 참가자 okto님 뿐...

사용자 삽입 이미지

색은 비록 불안정하지만, 영화 자체의 포스는 그대로입니다. 이 영화는 역시 걸작입니다!!!


Workprint는 역시 색깔이 많이 불안정하더군요.
엔딩의 나레이션이나 일부 무게 잡는 배경음악도 좀 과하다는 느낌이 들고 말이죠.
하지만, 영화 자체의 포스는 그대로였습니다. 이 영화는 역시 걸작입니다.

좀 정신이 없기는 했지만 즐거운 상영회였습니다.


2009년 3월 1일 일요일

2008 올블로그 어워드 참석 후기

요즘 좀 바빠서 올블 어워드에 참석할 수 없을 것 같았습니다.
하지만, 마침 이 날 저녁은 시간이 비어 부랴부랴 신청해서 참석할 수 있었습니다.

용인에서 서울을 혼자 가긴 좀 심심(?)해서 이웃블로거인 okto님과 함께 가기로 했습니다.
(밤새 잠도 못 자고 일하고 오후 늦게야 퇴근하셨더군요... ^^;;)


1. 좋았던 점

반가운 분들을 만날 수 있었던 점이 가장 좋았습니다.
우선 입구에 딱 들어서니 주성치 님께서 계시더군요. (오프라인에선 처음 뵌 것이라, 태그를 보고야 알았습니다)

사용자 삽입 이미지

QAOS의 영원한 교주 도아님...

사용자 삽입 이미지

가까이 계실 땐 정작 못 찍고, 수상하실 때 찍었습니다. ^^;


우리 세대에 있어서는 IT 계열에서 어떤 누구보다도 거대한 파워를 보여주셨던 한글의 개발자 이찬진 사장님...

사용자 삽입 이미지

아이팟 어플 대박나세요~


okto님... (아~ 이 분은 제가 끌고(?) 간 거군요... ^^;;)

사용자 삽입 이미지

워낙 인사가 짧아 촬영이 힘들었습니다... 홍홍



2. 아쉬웠던 점

a. 수상자 선정 과정의 불투명함 혹은 과하게 투명함

후보를 선정하거나 투표를 하는 과정에서 아무런 통제가 없었습니다.
이러한 방식은 주변에서 여론을 형성하기 쉬운 위치에 있는 사람이 몰표를 받을 수 있다는 치명적인 문제가 생깁니다.
그러다보니 스포츠 분야에서 토크온섹스닷컴낚시로그가 선정되는 촌극이 벌어졌습니다.

섹스도 스포츠고, 낚시도 스포츠란 말이냐!!!


b. 분야 선정의 황당함

앞에서 적은 "섹스도 스포츠" 역시 이러한 분야 선정의 황당함의 단면입니다.

또한, 분야 가운데 "블로그스피어 공로상"이라는 지극히 주관적인 기준으로밖에 판단할 수 없는 분야가 있다는 점 역시 이해하기 힘든 부분입니다.
(올블로그가 무슨 아카데미 시상식도 아니고말이죠...)

사용자 삽입 이미지

게다가, 문화예술 분야엔터테인먼트 분야가 따로 있는데 이렇게 나뉜 것이 이해가 되지 않을 뿐더러 문화예술 분야에서도 토크온섹스닷컴이 선정되는 촌극이 벌어졌습니다.
(무슨 문화비디오 광고란 말이냐!!!)


c. 행사 진행의 미숙함

시작 시간이 저녁 6시였는데, 6시 30분에 시작하면서 "당연한 것 아니냐"는 말씀을 너무 쉽게 하시더군요.
이것을 시작으로 미끈하지 못한 진행이 곳곳에 눈에 띄었습니다.

게다가 테이블 명찰들 역시 오타가 눈에 꽤 띄더군요.

사용자 삽입 이미지

폐인 + 페니웨이 = 폐니웨이. 찬조출연


토크온섹스닷컴낚시로그비난하는 것이 절대 아닙니다. 선정된 분야가 전혀 맞지 않는다는 뜻입니다.


3. 후기

비지니스 분야에 선정되신 mepay님은 다른 스케줄이 있어 못 오셨습니다.
그래서... 도아님okto님과 함께 잡으러(?) 갔습니다.
차를 가져 갔기 때문에 술을 먹지 않고 자리만 즐겼습니다.

그리고 나서...  도아님만 다시 집으로 모시고 와서 다시 술을 마셨습니다. ㅎㅎㅎ


덧. 이찬진 사장님께 사인을 받았습니다.
이건 가보로 물려야겠습니다.

사용자 삽입 이미지



2009년 2월 9일 월요일

[다크나이트] 상영회 열었습니다

그동안 꼭 열고 싶었던 [다크나이트] 상영회를 열었습니다.

자리엔 QAOSokto님이랑, 무비알지의 jafo님이 함께하셨습니다.
페니웨이™님도 초대를 했는데, 바쁜 스케쥴로 인해 못 오셨습니다.

okto님은 린이 생일을 기념해서 고구마 케익을, jafo님은 샤또 라 발리에 와인을 갖고 오셨습니다.

사용자 삽입 이미지

금강산도 식후경. 먹어야 산다.


상영 순서는 고담 투나잇영화 본편나머지 서플블루레이 서플 순이었습니다.

1. 고담 투나잇은 시점이 영화 바로 앞이기 때문에 먼저 보는 것이 몰입도를 높여주더군요.

2. 영화 본편은 DVD를 보려고 하다가 PC와 TV를 연결해서 HD 버전을 봤습니다. 칼같은 화질이 압권이었습니다.
   (PC를 연결하고 먹는 와인맛은 이 세상 최고의 맛이었습니다)

3. 블루레이 서플은 DVD엔 (당연히) 포함되어 있지 않아 어렵게 구해서 봤는데, 자막이 없어... ㅠ.ㅠ

상영은 오후 2시경에 시작했는데, 밤 11시가 되어야 끝났습니다.
그렇게나 오래 걸릴 줄은 몰랐는데, 시간이 꽤 오래 걸리더군요. 하지만, 정말 즐거운 상영회였습니다.

사용자 삽입 이미지

이 터질 듯한 정보량~ ㅎㄷㄷ




2009년 1월 24일 토요일

BBCode 도우미 + 이모티콘 최종 업데이트!!

사용자 삽입 이미지

OKTO 님과 Forevler 님께서 적용한 BBCode 도우미랑 이모티콘을 조금 변형해서 몽땅 적용했습니다.
더불어 기존의 BBCode와 약간 충돌하던 문제를 해결했습니다.
이 수정이 한동안 최종판이 될 것 같습니다.

1. 007() 과 forevler_007.gif()이 충돌을 일으키는 문제를 수정
    ※ 이 문제는 공개되어 있는 BBCode에서는 발생하지 않습니다.

2. ""로 되어 있는 글꼴모양을 이미지로 변경

3. 이모티콘 도우미창에 OTL(), 007() 추가

4. BBCode 사용법을 버튼으로 변경