« Previous : 1 : 2 : 3 : 4 : Next »

m2ts를 avi로

얼마전 지인으로부터 Cannon HD 캠코더로 녹화된 동영상 파일을 받았다.

그런데 동영상 파일 확장자가 .m2ts로 되어 있었고, 곰 플레이어(버전 2.1.10.3789)나 윈도우즈 내장 미디어 플레이어로는 재생되지 않아서 구글위키피디아 검색에 바로 들어 갔다.

1. .m2ts

위키피디아 자료에 의하면 .m2ts 파일은 소니 HD (High Definition) 파일로 소니 캠코더로 녹화된 AVCHD 비디오 파일이다.
소니 뿐만 아니라 파나소닉, 캐논 등 AVCHD 캠코더들도 .m2ts 파일 형태로 동영상을 저장한다. (출처: http://en.wikipedia.org/wiki/.m2ts)

2. AVCHD (Advanced Video Codec High Definition)

AVCHD는 테잎을 사용하지 않는 캠코더에서 사용되는 High-Definition 동영상 저장 포맷이며 TOD, HDV, MiniDV와 호환된다. (출처: http://en.wikipedia.org/wiki/AVCHD)

그러므로 .m2ts 동영상 파일을 재생하거나 읽으려면 AVCHD 코덱이 필요한데, 현재 곰 플레이어(2008년 7월 11일 현재 버전 2,1,10 3779)나 윈도우즈 미디어 플레이어(버전 11.0.5721.5730)에는 이 코덱이 설치되어 있지 않으므로 일단 AVCHD를 디코딩하는 코덱을 찾아서 설치해야 한다.

다만 상용으로 구입할 수 있는 PowerDVD Ultra나 CoreAVC는 AVCHD 코덱이 내장되어 있으나 돈 안들이고 문제 해결을 해보았다.

구글로 검색을 해보니 http://forum.videohelp.com/topic339534.html에 답이 나와 있었다.

위 글에 나와 있는 방법을 사용하여 ffdshow와 Haali Media Spliter로 AVCHD를 디코딩하는 코덱을 설치한 다음 AviSynth를 Frame Server로 하여 VirtualDub으로 .m2ts 동영상을 읽은 다음 VirtuaDub으로 일반적으로 많이 사용되는 코덱으로 다시 인코딩해서 AVI 파일로 저장하면 AVCHD 코덱이 설치되어 있지 않은 플레이어도 변환된 동영상을 자유롭게 재생할 수 있게 한다.

3. ffdshow 설치

ffdshow는 http://sourceforge.net/projects/ffdshow-tryout/에서 다운로드 받아 설치할 수 있는데 내가 설치한 버전은 ffdshow_beta5_rev2033_20080705_clsid.exe 이다.

ffdshow를 설치한 다음 AVCHD 비디오 디코더 설정이 다음과 같이 되어 있는지 확인해야 한다.



먼저 위 그림과 같이 Video decoder configuration을 시작 메뉴에서 클릭하고 아래 그림과 같이 H.264/AVC가 libavcode으로 되어 있는지 확인한다. 만일 disabled로 되어 있다면 libavcodec으로 변경한뒤 OK 버튼을 누른다.



4. Haali Media Splitter 설치

Haali Media Splitter는 http://haali.cs.msu.ru/mkv/에서 다운로드 받고 설치한다.
현재 내 컴퓨터에 설치된 버전은 1.8.122.18 이다.

5. VirtualDub과 AviSynth 설치

내게는 이미 설치되어 있는 소프트웨어들이지만 새로 설치하려면 아래 링크로부터 다운로드 받고 설치한다.

VirtualDub - http://www.virtualdub.org/ (현재 설치된 버전: 1.8.1)
AviSynth - http://avisynth.org/ (현재 설치된 버전: 2.5.7)

6. 마지막으로 .m2ts를 avi로 변환하는데 필요한 Yadif Deinterlace AviSynth 플러그인을 다운로드 받아 설치한다.

Yadif Deinterlace 플러그인은 http://avisynth.org.ru/yadif/yadif.html에서 다운로드 받을 수 있으며 현재 설치된 버전은 0.9이다. (다운로드 링크가 화면 최하단에 있다. http://avisynth.org.ru/yadif/yadif09.zip)

Yadif 플러그인 설치는 AviSynth 플러그인 디렉토리에 DLL 파일을 설치하면 되는데 ZIP 파일안에 있는 여러 파일 중에서 yadif.dll만을 AviSynth 플러그인 디렉토리에 복사하면 된다. (내 컴퓨터의 경우 AviSynth 플러그인 디렉토리는 C:\Program Files\AviSynth 2.5\plugins이다.)


이상으로 .m2ts를 .avi로 바꾸기 위한 준비과정을 모두 마쳤다.

예를 들어 20080628133846.m2ts 파일을 avi로 바꾸고 싶다면 확장자 .avs를 가지는 AviSynth 스크립트를 Notepad 등으로 .m2ts 파일이 있는 디렉토리에 다음과 같이 작성하여 저장한다. (예제에서는 이 파일을 source.avs라고 한다.)



source.avs 스크립트를 대한 설명을 한다면 아래와 같다. (회색 칸에 적힌 줄번호는 참고를 위한 것이므로 소스 파일에는 입력하지 않는다.)

1 번줄에서 yadif 외부 플러그인을 로드한다.
이 때 yadif.dll이 설치된 경로를 정확하게 적어야 한다.
2 번줄에서 20080628133846.m2ts 동영상 원본을 오픈하고,
3 번줄에서는 Yadif 디인터레이스 플러그인으로 원본 이미지를 디인터레이스 시키고,
4 번줄에서 이미지 사이즈를 720 x 400으로 줄인다.

이렇게 저장된 AviSynth 스크립트는 곰 플레이어등으로 오픈하여 .m2ts 동영상을 볼 수 있게 해주는데 여러 단계를 거쳐 동영상을 보는 것이므로 컴퓨터 사양이 높아야 될 것이다.

.m2ts를 디코딩 할 수 없거나 보통 사양의 컴퓨터에서 재생할 수 있게 하기 위해서는 원본 동영상을 재인코딩 해야 하는데, VirtualDub을 사용하여 간단하게 재인코딩할 수 있다.

우선 VirtualDub에서 source.avs를 열고 재인코딩하고자 하는 Video와 Audio 코덱 설정을 한다.

재인코딩을 하는 것이므로 Video와 Audio 모두 Full Processing Mode로 지정하고 각각 원하는 코덱을 Compression Menu를 통해 정한다.





비디오 코덱은 인코딩 속도와 범용성을 고려해서 Microsoft MPEG-4 Video Code V2 으로 하였고, 오디오 코덱은 MP3로 하였다.





비디오/오디오 코덱 설정이 끝났으면 동영상을 AVI로 저장만 하면 된다.

저장하는 방법은 File 메뉴에서 Save as AVI 메뉴를 클릭하면 된다.



Save as AVI를 클릭하자마자 원본 동영상을 재인코딩해서 AVI로 저장하는데 컴퓨터 사양에 따라서 꽤 시간이 걸릴 수도 있다.



하지만 이렇게 저장된 AVI 파일은 .m2ts 파일보다 쉽게 어디서나 재생할 수 있다.

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by ace

2008/07/12 09:11 2008/07/12 09:11
, , , , , , , , , , , ,
Response
No Trackback , 9 Comments
RSS :
http://par.sarang.net/rss/response/448

Trackback URL : http://par.sarang.net/trackback/448

Comments List

  1. 이병일 2008/07/30 12:26 # M/D Reply Permalink

    LoadCPlugin("C:\Program Files\AviSynth 2.5\plugins\yadif.dll*
    DirectShowSource ("20080729203251.m2ts";)
    yadif(mode=1)
    Lanczos4Resize(720,400)
    이상과 같이 실행했더니 버츄얼덥에서
    Avisynth open failure:
    Script error: expected a, or)
    (G:\동영...\source.avs, line 2, column 34)라는 에러 메시지가 뜹니다.
    뭐가 잘못 된건지 알려주시면 감사하겠습니다.

    1. ace 2008/07/30 20:47 # M/D Permalink

      에러 메세지로 봐선 열린 괄호 ( 에 맞춰 닫힌 괄호 ) 가 제대로 닫히지 않은 것 같습니다.

      일단 댓글에 올리신 내용대로라면
      첫번째 줄에서 LoadCPlugin( .... ) 으로 괄호가 닫히지 않고 *으로 닫혔네요.

      간단한 소스 코드이지만 찬찬히 살펴보시면 에러가 생긴 부분을 찾을 수 있을 것입니다.

      좋은 결과 있으시길 빕니다.

  2. 이정애 2008/08/20 12:40 # M/D Reply Permalink

    잘되네요^^

    1. ace 2008/08/21 01:22 # M/D Permalink

      도움이 되었다니 기쁩니다. :)

  3. 느그네 2008/08/24 18:36 # M/D Reply Permalink

    많은 량의 m2ts파일이 있다면 ffmpeg도 좋은 선택입니다~

    VirtualDub은 간단한 변환 이외에도 여러가지 효과를 지정해서 넣을 수 있어서 좋구요~

    1. ace 2008/09/11 06:04 # M/D Permalink

      ffmpeg으로 m2ts 변환을 해보진 않았습니다만 좋은 도구로 알고 있습니다.
      한번 시간날때 들여다 봐야겠습니다.
      댓글 남겨 주셔서 감사합니다.

  4. saea 2008/10/02 14:40 # M/D Reply Permalink

    버츄얼덥에서 avs파일이 열리지 않습니다. 뭐가 문제일까요?

  5. saea 2008/10/02 14:42 # M/D Reply Permalink

    avisynth open failure:
    script error: syntax error
    (avs파일경로, line 1, column 1)

    1. ace 2008/10/02 23:44 # M/D Permalink

      source.avs 파일에서 첫번째 줄 LoadCPlugin 안에 yadif.dll 플러그인을 읽기위해서 경로명을 적어야 하는데, 그 경로명이 잘못된 것 같습니다.
      윈도우즈에서 내 컴퓨터 (My Computer)로 C:\Program Files 디렉토리부터 시작해서 yadif.dll이 있는 디렉토리까지 찾아보시고 그 디렉토리명을 정확하게 (중간에 빈공간이 있으면 그것까지 포함해서) 입력하세요.
      좋은 결과 있으시길 바랍니다.

Leave a comment
윈도우즈가 설치된 놋북에 줌라(Joomla) CMS를 작동시키기 위하여 PHP가 설치된 아파치 웹서버와 MySQL 데이타베이스 서버를 설치하였다.

우선 아파치 웹서버를 설치하는데 아파치 서버 홈페이지에서 윈도우즈 실행 파일을 다운로드받아서 설치한다. [1]



아파치 웹서버가 설치되었으면 PHP5를 설치한다. [3]





줌라를 실행시키기 위해서는 Extension이 필요하므로 아래 그림과 같이 Extensions 설치를 클릭해야 한다.



PHP5 가 설치되면서 아파치 설정 파일 (httpd.conf)를 자동으로 PHP5가 실행되도록 변경하는데 그것만으로는 PHP5가 제대로 작동하지 않는 수가 있다.

내 윈도우즈 XP의 경우 퍼미션 문제 때문에 익스텐션을 로딩할 수 없었는데, 그것은 PHP 익스텐션이 설치된 디렉토리의 퍼미션을 고쳐주는 것으로 간단하게 해결된다. (내 경우 C:\Program Files\PHP\ext 디렉토리)

즉, 아래 그림처럼 ext 에서 오른쪽 마우스 버튼을 눌러 Properties(속성) 메뉴를 선택한 다음 Read-only 속성을 클릭해서 Read-only 속성을 없앤다.



MySQL 데이타베이스 서버 설치도 [2]에서 윈도우즈 설치 파일을 다운로드 받아서 설치하면 간단하게 끝난다.

웹서버와 데이타베이스 서버 설치가 끝났으면 PHP로 만들어진 Joomla CMS를 [4]에서 다운로드 받아서 설치하면 되는데, 설치방법은 Joomla 1.5RC3 (또는 최신 버전) ZIP 파일을 다운로드 받아서 아파치 웹서버 설정 파일에서 지정한 DocumentRoot 디렉토리 아래에 풀어 놓으면 된다. 아파치 웹서버 설정은 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf에서 찾을 수 있는데(기본 설정으로 설치했을 경우)  Notepad++ 에디터로 열은 화면은 아래와 같다.



줌라까지 설치되었으면 http://localhost 로 시작하는 줌라가 설치된 URL을 웹 브라우저로 열어서 줌라를 서버가 아닌 놋북에서 즐겨보자.

[1] Apache Download - http://www.apache.org/dyn/closer.cgi/ht ··· win32%2F
[2] MySQL Download - http://dev.mysql.com/downloads/mysql/5.0.html#win32
[3] PHP Download - http://www.php.net/downloads.php
[4] Joomla 1.5RC3 Download - http://joomlacode.org/gf/project/joomla ··· d%3D2892
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by ace

2007/11/25 06:58 2007/11/25 06:58

Trackback URL : http://par.sarang.net/trackback/418

Leave a comment
사용자 삽입 이미지
요즘은 거의 모든 한글 웹 프로그래밍을 UTF-8 인코딩으로 하므로 윈도우즈가 설치된 내 놋북에서 UTF-8로 인코딩된 파일을 이리 저리 편집할 프로그램이 필요하게 되었다.

지금껏 대부분의 작업은 유닉스 환경에서 VIM이나 Emacs로 했으므로 윈도우즈용 에디터가 별 필요가 없었으나 때로는 웍스테이션이나 서버에 로그인 하지 않고 아무데서나 윈도우즈가 설치된 놋북 컴퓨터로 작업 하는 것이 편할 때가 많다. (특히 커피 샾 등에서... ^^)

컴퓨터에 무엇이 필요할 때 가장 먼저 하는 것이 요즘엔 "구글 검색" 인데 구글에서 검색해 본 몇가지 에디터 중에서 Notepad++가 내게는 가장 알맞는 에디터인 것 같다.

Notepad라는 이름과는 달리 풍부한 기능을 가지고 있고 오픈 소스 프로그램으로 무료로 쓸 수 있으며 많은 개발자들이 쓸모있는 플러그인들을 추가 기능으로 개발하고 있다.

1. 설치

우선 Notepad++ 홈 페이지에서 프로그램을 다운로드 받는다. (다운로드 링크 클릭)
내 경우엔 npp.4.5.Installer.exe라는 파일을 다운받아서 저장했는데 계속 개발되고 있는 프로그램이므로 가운데 버전 넘버는 차이가 있을 수 있다.

다운로드 받은 설치 프로그램을 실행시키면 설치 화면이 나오는데 첫화면에서 언어 선택을 원하는대로 선택하는 것 이외에는 별다른 설정은 없다.



2. UTF-8 환경 설정

Notepad++를 실행시키면 깔끔한 화면이 나오는데 이후로 모든 문서를 UTF-8 인코딩으로 작성하려면 기본적인 설정을 해줘야 한다.

메뉴에서 설정 > 환경 설정... 을 선택하고 새 문서 탭을 선택한 다음 형식은 Unix로 인코딩은 UTF-8 without BOM으로 설정한다. (Unix 형식으로 설정한 것은 내가 하는 작업 대부분이 유닉스 서버에서 이루어지므로 문서간 호환을 위해서 Unix 형식으로 설정했다.)



이것으로 UTF-8 환경 설정이 끝났으며 이후 편집하는 문서들은 UTF-8 인코딩으로 작성된다.

UTF-8으로 작성된 문서를 열어보면 오른쪽 아래에 있는 상태 표시줄에 다음과 같은 표시가 있음을 확인할 수 있다.



여기서 ANSI as UTF-8 이란 지금 편집하는 문서가 BOM 없이 UTF-8 으로 인코딩 된 문서라는 표시인데, BOM에 대해서 잠깐 알아보겠다.

3. BOM (Byte-Order Mark)

BOM이란 U+FEFF의 값을 갖는 유니코드 문자로 문서에 저장된 내용이 UTF-16이나 UTF-32 인코딩에서 어떤 바이트 순서로 저장되는지 그리고 UTF-8, UTF-16, UTF-32 방식 중 어느 방식으로 인코딩되어 있는지 표시하기 위해 쓰인다. [2]

BOM은 문서 가장 처음에 기록되어서 문서를 읽는 프로그램 (에디터 등)이 이하 문서 내용에 사용된 인코딩 방식을 자동적으로 인식하게 한다.

표 1: BOM 표시 방법 (참고문헌 [1]에서 인용)
인코딩표시 방법 (16진수)
UTF-8EF BB BF
UTF-16 Big EndianFE FF
UTF-16 Little EndianFF FE
UTF-32 Big Endian00 00 FE FF
UTF-32 Little EndianFF FE 00 00
SCSU0F FE FF
UTF-72B 2F 76
그리고 다음 바이트 중 하나 선택: [ 38 | 39 | 2B | 2F ]
UTF-EBCDICDD 73 66 73
BOCU-1FB EE 28


그런데 UTF-8 인코딩 방식은 1-3 바이트로 문자셋을 인코딩 하면서 바이트 순서는 상관 없게 되므로 사실 BOM이 필요 없게 된다. 또한 웹 페이지 서식 문서 (CSS) 등에 BOM을 사용하게 되면 웹 브라우저가 잘못 인식하는 경우도 생기므로 웹 프로그래밍 환경에서는 BOM을 사용하지 않는 것이 좋다고 생각한다.


참고 링크

[1] Notepad++ 홈 페이지 (http://notepad-plus.sourceforge.net/)
[2] Byte-Order Mark, Wikipedia (http://en.wikipedia.org/wiki/Byte-order_mark)
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by ace

2007/11/16 02:58 2007/11/16 02:58
, , , , , ,
Response
No Trackback , No Comment
RSS :
http://par.sarang.net/rss/response/413

Trackback URL : http://par.sarang.net/trackback/413

Leave a comment

FileZilla 에서 보안 접속 FTP 설정

무료 FTP 클라이언트인 FileZilla에는 FTP 서버에서 보안 접속을 요구하거나 허용할때 이를 설정하는 기능이 있다.

보안접속 설정을 하기 위해서는 우선 FileZilla를 아래 사이트에서 다운로드 받아 설치한다. 이 글에서는 3.0.2.1 윈도우즈 버전 설정을 예제로 한다.

FileZilla 다운로드 ☞ http://sourceforge.net/projects/filezilla
 (FileZilla_3.0.2.1_win32-setup.exe)

FileZilla를 실행시키면 아래 그림과 같은 화면이 나오는데 메뉴에서 File > Site Manager 를 선택하거나 아니면 CTRL-S 를 눌러 사이트 매니저 화면을 띄운다.



사이트 매니저 화면이 뜨면 New Site 버튼을 눌러 사이트 설정을 하는데 보안 접속 사이트인 경우 아래 그림에서 화살표 표시가 있는 부분, 즉 Servertype을 반드시 FTPES - FTP over explicit TLS/SSL 로 설정해야 하며 FTP 계정에 로그인 하는 경우 Logontype을 Normal로 설정한다.



나머지 부분은 일반적인 FTP 설정을 따르면 된다.

FTP 서버가 공인 인증서를 사용하지 않으면 경고 화면이 나오는데, 인증서를 서버에서 자체적으로 발행한 경우 OK 버튼을 누르면 된다.




이올린에 북마크하기

Posted by ace

2007/11/05 05:29 2007/11/05 05:29
, , , ,
Response
No Trackback , No Comment
RSS :
http://par.sarang.net/rss/response/411

Trackback URL : http://par.sarang.net/trackback/411

Leave a comment

SWF를 AVI로 변환하기

SWF로 된 플래쉬 동영상을 휴대용 DVD 플레이어에서 재생하기 위해서는 VCD 제작 툴 (Nero 등)에서 읽을 수 있는 무비 동영상 (AVI) 형식으로 변환해야 한다.

인터넷 검색으로 찾아본 많은 SWF 변환 소프트웨어들이 얼마의 사용료를 요구하는 쉐어웨어 이거나 상용 프로그램들이 대부분이었는데, http://www.avi-swf-convert.com/ 에서 제공하는 무료 프로그램도 충분히 제 역할을 다하였다.

SWF->AVI Converter

다만 한가지 주의해야 할 점은 변환시킨 출력 동영상의 크기 지정을 잘해야 하는데, VCD 제작을 위해서는 출력화면 크기를 352 x 288로 지정해야 한다.

출력화면 크기 지정에만 조심하면 나머지 사용법은 간단하므로 쉽게 SWF 파일을 무비 동영상으로 변환 시킬 수 있다.

변환된 무비 파일은 VirtualDub 으로 목적에 맞게 편집할 수 있다.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by ace

2007/09/02 09:20 2007/09/02 09:20
Response
No Trackback , 12 Comments
RSS :
http://par.sarang.net/rss/response/402

Trackback URL : http://par.sarang.net/trackback/402

Comments List

  1. 제대로 2008/02/18 18:07 # M/D Reply Permalink

    너 써봤냐야
    되는지 확인해봐

    1. ace 2008/02/20 00:14 # M/D Permalink

      물론 사용해 보고 올린 글입니다.
      제 블로그에 올린 글은 100% 제 글이며, 대부분 경험과 체험한 것에 대한 글입니다.
      만일 사용에 문제가 있다면 제가 사용하였던 환경과 다른 점이 있었기 때문이라고 생각합니다.
      좋은 결과 있으시길 빕니다. :)

  2. 지나가다 2008/03/11 16:29 # M/D Reply Permalink

    .net Framwork 1.1을 설치해야 실행이 되던데요.

    1. ace 2008/03/12 03:41 # M/D Permalink

      네. 맞습니다.
      Microsoft .NET 환경이 설치되어 있어야 됩니다.
      또한 Windows 98/ME/NT 에서는 이 프로그램은 실행되지 않는 것으로 알고 있습니다.

      http://www.avi-swf-convert.com/swf-avi-convert-faq.asp 를 보시면 참고가 될 것입니다.

  3. 허거덩 2008/03/15 17:15 # M/D Reply Permalink

    이거 안되는 거네....설치가..

    1. ace 2008/03/18 20:03 # M/D Permalink

      윈도우즈 환경이 달라서 설치가 안되는 경우이신가 봅니다.
      다른 프로그램을 찾으셔야 할 것 같네요.

  4. 설치안됨 2008/07/25 22:51 # M/D Reply Permalink

    xp 에서 설치가 안되네.
    구가다 버전인가 으음.

    1. ace 2008/07/30 03:28 # M/D Permalink

      이전 댓글에서 보이는 것 같이 윈도우즈 환경에 따라 설치가 안되는 경우도 있습니다.
      다른 방법을 찾으셔야 할 것 같네요.

  5. 버트 2008/07/27 23:55 # M/D Reply Permalink

    10메가 swf 를 avi 로 바꿨더니 909메가가 되네요. 쩝.

    1. ace 2008/07/30 03:29 # M/D Permalink

      swf는 벡터 방식으로 이미지를 저장하므로 용량이 얼마 안되지만
      avi는 그야말로 비디오이므로 아무래도 용량이 커지겠지요.
      avi 크기를 줄이는 방법은 화질과 음질을 낮추거나 압축률이 더 높은 코덱으로 압축시키는 방법이 있겠습니다.

  6. Suk 2008/10/09 21:20 # M/D Reply Permalink

    주인장님 고생하십니다 ^^ 첫번째 리플은 좀.... 돈 받고 글올리는것도 아닌데 저런식으로 말하시면 곤란하지요..

    1. ace 2008/10/09 23:03 # M/D Permalink

      격려의 댓글 감사합니다.
      인터넷에서는 글이 그 사람 속을 보여주는 유일한 방법인데, 그것을 가끔씩 잊는 분들이 계십니다.
      안타까운 일이기는 하지만 악플 다신 분이 의식 있는 분이라면 양심이 괴로울 것이고, 늘 그렇게 해서 별다른 느낌이 없으신 분은 무의식 속에서 자신을 깎아내고 있으니 본인 손해이지요.
      말이나 글은 살아 있어서 세상을 돌고 돌아 언젠가는 자신에게 돌아와서 마지막 숨을 거둔다는 말이 생각납니다.
      좋은 말이나 글이면 세상에서 좋은 일 많이 하고 내게 돌아오겠지만, 나쁜 말이나 글이라면 세상을 다니며 온갖 해꼬지를 다하고 더 나빠져서 자신에게 돌아오겠지요.
      따라서 악플이 달려도 저는 별로 신경 안씁니다. :)

Leave a comment

컴퓨터 프로그래밍 언어 LOGO

길고도 긴 아이들 여름방학이 내일 모레부터 시작된다.
5월 말부터 8월 말까지 무려 석달이나 되는 시간 동안 아이들에게 무언가 유익한 것을 가르칠 것이 없을까 생각하던 중 컴퓨터 프로그래밍이나 가르쳐 보는 것이 어떻겠는가 하는 생각이 들었다.

사용자 삽입 이미지

수많은 컴퓨터 프로그래밍 언어가 있지만 특히 아이들에게 수학적 사고 능력과 기본적인 프로그래밍을 가르치기에는 LOGO 라는 언어가 적당하다고 생각된다.

물론 C++ 언어 등을 마이크로소프트 비주얼 스튜디오로 가르칠 수도 있겠지만 아이들이 무슨 직업 훈련 받는 것도 아니고 윈도우즈 프로그래밍은 개념을 배우는 것보다 겉모양 꾸미는데 더 시간이 많이 소요되므로 바람직 하지 않다고 생각되었다.



LOGO는 1960년대 말에 개발된 언어이지만 LISP으로 부터 많은 개념을 가져왔고 특히 인터프리터로 입력 즉시 반응을 알아볼 수 있으며 또한 터틀 그래픽이라고 하는 그래픽 기능이 내장되어 있어서 아이들이 재밌게 개념을 배울 수 있을 것이라고 생각된다.

또한 프로그래밍 환경이나 자료들이 공개되어 있는 것이 많이 있는 만큼 따로 교재를 구입하지 않아도 될 것 같다. 다만 좀 더 재밌는 프로그래밍 환경을 위하여 PC에 연결해서 구동 시킬 만한 로봇을 만들었으면 좋겠는데 시간과 노력을 거기에 낼 수 있을런지 모르겠다.

1. LOGO 프로그래밍 환경

사실 LOGO는 정해진 표준이 있는 것은 아니지만 UCB 로고를 대강 기준으로 삼는 것 같다.
아이들 컴퓨팅 환경이 윈도우즈이므로 UCB 로고의 기능을 윈도우즈 환경에 맞게 확장시킨
MSWLogo나 FMSLogo 프로그래밍 환경으로 한다. [1] [5]

2. 교재

MSWLogo 웹 페이지에 보면 많은 참고 자료들이 있는데, 그것을 그대로 따라 하기는 힘들 것 같고 아무래도 매 주말마다 아이들을 위해서 따로 교재를 만드는 수고를 해야할 것 같다.
다만 Brian Harvey 교수의 로고로 가르치는 컴퓨터 사이언스 책 3권 모두가 온라인에 공개되어 있으므로 그것을 참고해서 중요한 개념들을 가르쳐 볼 생각이다. [2]

3. 로봇

모니터 화면에서 원하는 결과를 얻어내는 과정도 재미있겠지만 실제로 움직이는 로봇을 가지고 기계적인 작동을 시켜 보는 것도 아이들에게 많은 재미를 가져다 줄 것 같다.
간단하게 시리얼 포트 또는 패럴랠 포트에 연결해서 구동시킬 만한 로봇을 찾아봐야 하는데 저렴하게 만들 수 있는 것을 찾아봐야 겠다. 키트로 된 로봇이나 로봇 만드는데 필요한 부품들은 [4]에 많이 나와 있다.

참고링크

[1] MSWLogo
[2] Computer Science Logo Style, Brian Harvey, MIT Press (3 volumnes)
[3] Logo (Programming Language), Wikipedia
[4] Jameco's Robot Store
[5] FMSLogo

이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by ace

2007/05/23 10:17 2007/05/23 10:17

Trackback URL : http://par.sarang.net/trackback/373

Leave a comment
Unix + Emacs + (whatever compiler/interpreter)로 프로그래밍하는데 익숙한 나로서는
비주얼 스튜디오 등 윈도우즈 환경에서 번쩍거리는 IDE로 프로그래밍 하는데 복잡함만 느낀다.

물론 resource file을 만든다던가 할 때 수작업으로 하면 그 또한 고통이겠으나, 개발 툴로부터 자동 생성되는 코드에다가 살을 입히는 것이 내게는 잘 맞는 방법으로 보이지 않는다.

유닉스 환경에서는 수도 없이 많은 프로젝트를 해보았지만 MS Windows 환경에서 무언가 쓸만한 것을 만들어 본적이 없는데 개인적은 프로젝트로 MS Windows에서 돌아가는 애플리케이션이 필요하게 되었다.

그래서 비싼 비주얼 스튜디오 같은 개발 툴을 사지 않고 MinGW로 윈도우즈 개발 환경을 마련하게 되었다.

MinGWMinimalistic GNU for Windows의 약자로 윈도우즈에 포팅된 GNU GCC 등 개발에 필요한 최소한의 툴들을 제공해 준다.

또한 MinGW는 윈도우즈에서 뿐만 아니라 Linux, FreeBSD 등 유닉스 환경에서 윈도우즈 애플리케이션을 크로스 컴파일 시킬 수도 있으므로 Unix + X11 환경에서 주로 모든 일을 처리하는 내게는 더욱 매력적이지 않을 수 없다.

그러나 내가 개인적으로 사용하는 놋북에는 Windows XP가 설치되어 있으므로 여기에 MinGW를 설치하기로 한다.

1. 필요한 패키지 다운로드 및 설치

MinGW를 설치하기 위한 패키지들은 http://prddownloads.sf.net/mingw 에서 다운로드 받을 수 있는데 Candidate, Contribute, Current, Previous, Snapshot 등 여러 버전들이 화면에 나와서 처음에는 좀 헷갈리게 되어있다.

가장 최근의 안정적인 패키지 설치를 위해서 우선 Package 란에서 Current 를 클릭하였다.

MinGW Download


Current 를 클릭하면 Current 버전의 모든 패키지들이 나오는데 우선적으로 MinGW를 다운로드 받아 설치한다.

MinGW-<version>.exe 를 클릭하면 다운로드해서 설치할 패키지 설정을 물어보는데 기본적인
* MinGW base tools
* g++ compiler
* MinGW Make
를 선택하였다. (필요에 따라 더 선택해도 된다.)

설치가 성공적으로 끝났으면 윈도우즈 cmd.exe 에서 컴파일러를 실행시킬 수 있게 환경변수 PATH에 C:\MinGWbin 을 넣는 것을 잊으면 안된다.

그 다음에 나머지 필요한 패키지들을 다운로드 받아 설치한다.
(gdb, binutils 두 패키지를 추가로 더 실치하였다.)

2. 테스트

MinGW가 잘 설치되었는지 테스트 하기 위해 간단한 윈도우즈 프로그래밍을 해본다.
우선 도스 쉘 (cmd.exe)를 실행시켜서 적당한 디렉토리를 만들고 에디터 (vim 등)로 다음 소스 파일을 하나 만든다음 컴파일 해본다.
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,
	           HINSTANCE hPrevInstance,
	           LPSTR     szCmdLine,
	           int       iCmdShow)
{
    MessageBox(NULL, TEXT("Hello, MinGW!"), TEXT("MinGW Test"), MB_OK);

    return 0;
}
C:\Work> mingw32-gcc hello.c



C:\Work> a.exe

컴파일이 성공적으로 끝나고 실행시킨 후 아래와 같이 결과가 나오면 모든 설치가 성공적으로 이루어진 것이다.

Hello, MinGW!



이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by ace

2007/05/11 01:18 2007/05/11 01:18

Trackback URL : http://par.sarang.net/trackback/372

Leave a comment

Base64 인코딩 원리

올블로그를 보다가 Base64 인코딩에 대한 글이 있어 읽어 보았다.
(http://blueiblog.com/ko/40)

윈도우즈 환경에서 쓰려고 그런 것 같은데 Base64 인코딩의 원리는 간단하므로
어떤 컴퓨팅 환경이던 원리만 알면 누구나 쉽게 코딩할 수 있으리라 생각된다.

Base64 인코딩 원리

우선 제목이 말하는 Base64의 의미가 무엇인지 살펴 보자.

베이스가 64라는 것은 모든 정보를 64진수로 표시한다는 것인데, 컴퓨터는 2진수를 사용하므로 64진수로 표시하기 위해서는
2^6 = 64 즉 6 비트 2진수 열이 필요하다.

그런데 대개 컴퓨터에서 가장 기본이 되는 정보 단위는 8 비트씩 엮어진 바이트이므로
6비트와 8비트가 각각 나누어 떨어질 수 있는 공배수의 최소값 (최소 공배수)를 구하면 24비트가 된다.

24비트는 8비트 바이트에서는 3바이트가 되고, 64진수로 나타내기 위한 6비트 단위로는 4 단위가 된다. (바이트라고 반복하기 말하면 혼동이 될 것 같아서 "단위"라는 말로 대치하였다.)

따라서 Base64의 인코딩 원리는 3바이트 단위마다 (즉 24비트 마다) 6비트씩 쪼개어서 6비트 짜리 문자 4개로 만드는 것이 되겠다.

이 때 6비트씩 쪼개진 단위를 A-Z a-z 0-9 +- (모두 64개 문자)로 각각 대응시키면 Base64 인코딩이 된다.

Base64 Encoding Decoding

Base64 Encoding/Decoding



그런데 입력되는 정보가 모두 3바이트씩 떨어진다는 보장이 없으므로 3바이트로 나누어떨어지지 않는 경우 = 문자로 채우기를 한다. 즉 Base64로 인코딩 된 데이타에서 = 가 보이면 그 것은 다시 원래의 정보로 되돌아 갈때 (디코딩 될때) 아무 것도 없는 것이라는 소리가 된다.
(Base64로 인코딩 정보의 끝에 최대 나올 수 있는 = 의 수는 2개가 되겠다. 즉 끝부분에 =가 없거나 1개가 있거나 2개가 있는 것이 모두 나올 수 있는 경우가 되겠다.)

디코딩은 A-Z a-z 0-9 +- 문자를 각각 6비트의 정보로 바꾸어서 4 단위 (6*4=24 비트) 마다 합쳐서 3바이트 (3*8=24 비트) 로 다시 복원시키면 된다.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by ace

2007/04/29 07:22 2007/04/29 07:22
, ,
Response
No Trackback , 2 Comments
RSS :
http://par.sarang.net/rss/response/369

Trackback URL : http://par.sarang.net/trackback/369

Comments List

  1. 남은주 2008/10/17 21:27 # M/D Reply Permalink

    수업때문에 base64를 조사하게 되었는데
    설명이 너무 잘 되어 있어서 복사해 갑니다.

    1. ace 2008/10/17 22:38 # M/D Permalink

      도움이 되었다니 기쁩니다.

Leave a comment
태터툴즈 기본 스킨 파일들을 살펴 보면 들여쓰기를 전부 탭으로 해서 에디터로 열어 볼 때 고개를 한참 좌에서 우로 우에서 좌로 이동시켜야 하는 불편이 있다.

FreeBSD나 Linux 등 유닉스 계통 운영체제를 쓴다면 아래 명령을 쓰면 탭 문자 때문에 듬성 듬성한 소스 코드를 좀 보기 좋게 간단히 처리할 수 있다.

$ mv skin.html skin-old.html
$ expand skin-old.html | unexpand | expand -t 2,4,6,8,10,12,14,16,18 > skin.html


두 번째 줄을 보게 되면 여러 명령어들이 파이프 (|)로 연결되어 있는데 각 명령어의 의미는 다음과 같다.
  1. expand 명령으로 파일안의 모든 탭 문자를 공백 문자로 바꾸어서 탭과 공백문자가 혹시 용되었을 경우 모두 공백문자로 치환한 후
  2. unexpand 명령어로 탭 문자 간격만큼 떨어진 모든 공백을 탭 문자로 바꾸고
  3. 다시 expand 명령으로 탭 문자를 기본 간격인 8이 아니라 2,4,6,8... 등으로 촘촘한 간격의 공백문자로 바꾸어서 저장한다.

알고보면 별것아닌 간단한 팁인데, 그래도 내용을 보기엔 훨씬 수월한 것 같다.

또 하나, 요즘은 윈도우즈 때문인지 몰라도 모든 일을 마우스로 클릭해서 처리하려고 하는 경향이 있는데 위와 같이 데이타 처리등은 기본 명령어와 유닉스의 파이프 기능을 조합하면 간단하고 효율적인 처리를 할 수 있다.  (유닉스 만세!)
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by ace

2007/04/29 06:34 2007/04/29 06:34
, , , , ,
Response
No Trackback , No Comment
RSS :
http://par.sarang.net/rss/response/368

Trackback URL : http://par.sarang.net/trackback/368

Leave a comment

정신차려 iPod!

사용자 삽입 이미지
iPod Shuffle이 언제부터인가 눈만 껌벅 껌벅하고 소리를 내지 못하고 있었다.

머리를 톡톡 쳐도 정신 못차리는 이 놈을 어디다 내다 버릴 수도 없고 어떻게 해야 하나 골치가 아팠던 차에 무언가 고칠 길이 있겠지 하며 인터넷 최고의 무기인 검색엔진을 가동하기 시작했다.

이런 전자제품의 경우 우선적으로 의심을 해볼만한 것은 Firmware인데, "iPod Shuffle Firmware"로 검색을 하다보니까 iPod Reset Utility라는 애플에서 서비스 프로그램으로 공개한 놈이 눈에 들어왔다. (http://docs.info.apple.com/article.html?artnum=305204)

바로 이거다 하는 직감과 함께 다운로드 받아서 실행시켜보니 왠 걸 "Windows Logo Testing"에 통과하지 못한 프로그램이므로 실행이 되지 않는다는 메세지가 뜨는 것이 아닌가?

그래서 제어판에서 "시스템" 프로그램을 실행시켜서 Driver Signing에서 Block에서 Warn으로 바꾸고 다시 iPod Reset Utility 프로그램을 실행시키니까 프로그램 설치가 제대로 되었다.


사용자 삽입 이미지사용자 삽입 이미지


프로그램 설치가 되면 시작 메뉴에서 아이팟 리셋 프로그램을 실행시켜서 아이팟 리셋을 시켜 놓고, 아이팟을 들어보니 그동안 눈만 껌벅거리던 놈이 드디어 제대로 소리를 내기 시작하였다.

어쩌다가 펌웨어가 엉켜버렸는지 모르겠지만 이것으로 다시 아이팟은 제 구실을 하게 되었다.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Posted by ace

2007/04/23 07:20 2007/04/23 07:20
, , , ,
Response
A trackback , No Comment
RSS :
http://par.sarang.net/rss/response/365

Trackback URL : http://par.sarang.net/trackback/365

Trackbacks List

  1. Hydrocodone apap 5 500.

    Tracked from Can dogs take hydrocodone. 2008/11/20 21:07 Delete

    Hydrocodone. How to ween off hydrocodone while pregnant.

Leave a comment
« Previous : 1 : 2 : 3 : 4 : Next »

블로그 이미지

느낌과 기록

- ace

archive