Index . 블로그창고 . Any comments?

\cat gadgets, software

CellVic

mafi
wikiZ
링크 구분자
사용예
주의
기능개선
wikiZ (English)
Link separators
Example
Caution
Improvements
DiCA
화면구성
기타 조작법
에러메시지
기능개선
활용법
AutoGrp
기능개선
AutoGrp (English)
CVrescue
사용법
백업
복구
기능개선
CVrescue (English)
Usage
cvd2cvdx
사용법
기능개선
알려진 버그
h4MP
기능개선

한때 사용했던 CellVic I와 XG라는 PDA를 위해 만든 유틸리티들이다. 요즘 기계에서 작동하는지 확인한 바 없다. 저작권은 모두 BSD 라이센스를 따른다. 배포되는 파일 내의 연락처는 모두 오래된 것들이다.

mafi

MAth Friendly Interpreter

cellvic/mafi_julia.png

mafi는 수학 계산용 인터프리터이다. 1996년께부터 UNIX용으로 만들기 시작해서 중단되었다가 2001년 9월 18일 CellVic용으로 포팅하면서 계속 제작되었다. 제작의도는 어휘, 구문 분석기의 도움없이 파서를 제작하는 것과 공학용 계산기의 구현에 있었다. CellVic에서는 그래픽 함수까지 구현이 되어있지만 UNIX에서의 X-Window는 아직 지원하지 않는다.

이걸로 셀빅회사에서 샘숭노트북 하나 받은 적이 있다. ;)

wikiZ

Wiki Zero: 어플리케이션간 링크

cellvic/wikiZmain.png cellvic/wikiZshortcuts.png

Web 상에서의 Wiki 시스템은 특정주제에 대해 여러사람들의 생각이 보태지고 수정되면서 점진적으로 완성된 형태의 정보를 제공하는 도구로서 사용되고 있습니다.

물론 닫힌 시스템인 셀빅에서는 동일한 과정이 일어날 수는 없습니다만, 정보를 엮어 놓는다는 비슷한 개념으로서 wikiZ(Wiki Zero)라는 핵어플이 만들어지고 있습니다.

작동방식

링크 구분자

여섯개의 기본어플에 해당하는 사항입니다. 각 구분자로 둘러싸인 단어를 키워드라고 부르겠습니다.

[메모장]

메모장으로 이동을 원할 경우 [...]로 둘러쌉니다. 목표가 되는 메모장 자료의 첫줄이 키워드가 되어야 하며, 공백은 무시되지 않습니다.

메모장에서 이동하면서 히스토리에 기록되기 위해서는 메모장 내용에 링크가 있어야 됩니다만, 이 경우엔 당연한 거겠죠?

(주소록)

주소록으로 이동을 원할 경우 (...)로 둘러쌉니다. 목표가 되는 주소록의 이름에 해당하는 자료가 키워드가 됩니다.

주소록에서 이동하면서 히스토리에 기록되기 위해서는 편집상태의 메모 필드에서 이동해야 합니다.

<일정>

일정으로 이동을 원할 경우 <...>로 둘러쌉니다. 목표가 되는 일정의 날짜에 해당하는 자료가 키워드가 됩니다. 날짜의 형식은 정해지지 않았으며 구분자 사이의 모든 숫자를 모아서 날짜를 생성합니다.

단, 2002년 8월 3일과 같이 숫자만 모아도 YYYYMMDD이 되지 않는 경우가 있습니다만, 처리를 하고 있습니다. 예를 들어 <8월 3일>은 올해 8월 3일이 되고, <3월>은 올해, 이번달 3일입니다. 월이라는 글자는 아무런 의미가 없으므로 혼동하면 안 됩니다. 생략가능한 순서는 년, 월, 일 순입니다. 따라서, <오늘>은 항상 오늘을 의미합니다. 굳이 오늘 이라는 단어가 들어가야 하는 것이 아니고 구분자 사이를 공백으로 비워두지만 않으면 됩니다. <today>, <->

이제 문제는 같은 날 일정이 여러개일 경우입니다. 원하는 일정을 띄우기 위해서 일정 메모의 첫번째 줄을 지정합니다. <오늘@세미나@서울>은 오늘은 이미 설명한 날짜를 지정하고 있으며 바로 다음 @가 날짜와 일정 메모의 제목을 구분하고 있습니다. 다음 @는 제목에 포함된 것입니다. 즉, 오늘 날짜의 일정 중에서 첫번째 줄이 "세미나@서울"인 메모를 찾게 됩니다. <10월 3일@예방접종>, <11월 9일@wikix@wikix.org 메일>

일정에서 이동하면서 히스토리에 기록되기 위해서는 일정의 할일을 메모하는 부분에서 이동해야 합니다.

`할일'

할일로 이동을 원할 경우 `...'로 둘러쌉니다. 목표가 되는 할일의 첫번째줄 내용이 키워드가 됩니다. 왼쪽 따옴표와 오른쪽 따옴표로 둘러 싸면 됩니다.

할일에서 이동하면서 히스토리에 기록되기 위해서는 역시 할일을 메모하는 부분에서 이동해야 합니다.

{{필기장}}

필기장으로 이동을 원할 경우 {{...}}로 둘러쌉니다. 목표가 되는 필기장 자료의 제목이 키워드가 됩니다.

필기장에서는 에디트필드가 없기 때문에 다른 어플로의 이동이 불가능합니다.

{포토앨범}

포토앨범으로 이동을 원할 경우 {...}로 둘러쌉니다. 필기장과의 구분을 위해서 {{...}} 형식이 되지 않게 조심하세요. 목표가 되는 포토앨범의 이름이 키워드가 됩니다.

포토앨범에서 이동하면서 히스토리에 기록되기 위해서는 내용을 메모하는 부분에서 이동해야 합니다.

사용예

주의

주의할 점이 있습니다. 지금 돋보기 아이콘을 눌러서 메모장에 있는 아무 메모나 검색을 해 보세요. 그런 다음 검색된 메모를 클릭해서 메모내용을 봅니다. 이제 상/하키를 눌러서 이전/이후의 메모로 계속 이동을 해봅니다. 오류가 날 겁니다.

이는 본 wikiZ의 설치여부와는 상관없는 메모어플의 찾기에 문제가 있는 것입니다. wikiZ 또한 동일한 방법을 사용하므로 wikiZ에서 태핑으로 이동해서 들어간 메모에서는 상/하키를 눌러서 이전/이후의 메모로 이동하는 일이 없도록 주의를 하셔야 합니다. 가능하면 상/하키를 사용하기 보다는 스크롤바를 이용해서 전체 내용을 훑어 보시기를 권장합니다.

기능개선

v0.4

v0.35 까지

wikiZ (English)

Wiki Zero: wikiZ is a hack application that helps you link data between basic CellVic applications such as Memo, Address, Scheduler, Todo, InkWriter, and PhotoAlbum.

cellvic/wikiZmain.png cellvic/wikiZshortcuts.png

Rules

[Memo]

You can use [TITLE] to link to the Memo application. Then, you should use the TITLE string as the first line of a memo data.

(Address) You can use (NAME) to link to the Address application. Then, you should use the NAME string as the name of an address data.

<Scheduler> You can use <YYYYMMDD> to link to the Scheduler application.

In addition, you might want to specify one event out of many events in the day. <YYYYMMDD@EVENT> is available.

`Todo' You can use `TITLE' to link to the Todo application. Then, you should use the TITLE string as the first line of a todo data.

{{Ink}}

You can use {{TITLE}} to link to the InkWriter application. Then, you should use the TITLE string as the title of an inkwriter data.

{PhotoAlbum}

You can use {NAME} to link to the PhotoAlbum application. Then, you should use the NAME string as the name of a photoalbum image.

Example

Caution

Do not move to next data by pushing the up/down hardware button in the Memo application. Due to the OS' bug, you may meet the "Unexpected System Mode" error.

Improvements

DiCA

Dictionary CA for Wordy

cellvic/DiCA.gif

Wordy라는 단어암기 프로그램이 사용하는 DB를 검색해서 단어의 뜻을 보여주는 CA Launcher용 프로그램입니다. PC측 Wordy Maker에서 여러개의 단어장을 만들어서 셀빅으로 싱크하면 단어장들이 보입니다.

화면구성

[t]

Test mode로서 [t] <-> [T] 토글버튼입니다. [T]일 경우 test mode가 됩니다. 단어 -> 의미 -> 단어 순으로 보여줍니다.

[r]

Range mode로서 [r] -> [R] -> [F] -> [r] 순으로 바뀝니다.

  • [r]모드는 전체 단어장을 대상으로 작동합니다.

  • [R]모드는 사용자가 지정한 구간을 대상으로 작동합니다.

    1. [r]모드에서 구간의 시작단어로 이동합니다. [r]을 한번 눌러 [R]이 된 후 좌측키를 누릅니다. 이제 구간의 시작단어를 지정했습니다. 재지정도 마찬가지 방법으로 가능합니다.

    2. [r]로 돌아와 있습니다. 구간의 끝단어로 이동합니다. [r]을 한번 눌러 [R]이 된 후 우측키를 누릅니다. 이제 구간의 끝단어를 지정했습니다. 재지정도 마찬가지 방법으로 가능합니다.

    3. [r]로 돌아와 있습니다. 현재는 아직 전체 단어장을 대상으로 작동합니다. [r]을 한번 눌러 [R]이 된 후 엔터키를 누르면 여전히 [R]인 상태로 남아 있습니다. 이제 부터는 이미 지정했던 구간을 대상으로 작동을 시작합니다.

    4. 해제는 [R]을 한번 누르면 [r]로 돌아옵니다. 지정했던 구간은 재지정하기 전까지는 유효합니다.

    시작단어와 끝단어 모두 지정되지 않으면 [R] -> [Enter]를 눌러도 [R]모드가 실행되지 않습니다.

    시작단어가 끝단어보다 뒤쪽에 있을 경우, 시작단어 -> 단어장의 끝단어 -> 단어장의 시작단어 -> 끝단어 순으로 진행합니다.

  • [F]모드는 첫글자가 같은 단어들을 대상으로 작동합니다. 단, 상하키를 눌러서 다른 첫글자로 이동할 수 있습니다.

    이 모드는 영어단어장의 경우 알파벳 단위로 범위를 지정해서 암기하고자 할 경우 사용되며, 해당 알파벳의 끝단어의 다음 단어는 같은 알파벳의 시작단어가 되어 계속 순환합니다.

[i]

Ignore case mode로서 [i] <-> [I] 토글버튼입니다. [I]일 경우 ignore case mode가 됩니다. 검색에서 대소문자를 구별하지 않습니다.

[Sv]

Skip range로서 좌우키로 단어를 이동할 때의 건너뛰기 양을 지정합니다.

babble부터 63개까지의 단어를 보고 싶을 경우

  1. babble을 검색해서 [R]모드 시작단어로 지정

  2. Skip을 50으로 해서 우측키 한번

  3. Skip을 10으로 해서 우측키 한번

  4. Skip을 1로 해서 우측키 두번(총 62번: babble도 포함해서 63개니까)

  5. [R]모드 끝단어로 지정

  6. [R]모드 시작

[Tv]

Timer seconds로서 자동넘김 기능을 사용할 때 원하는 시간간격을 지정합니다.

자동넘김의 방향은 이미 상하좌우 또는 엔터키를 눌렀을 경우 그를 따르며, 한번도 누르지 않았을 경우 우측키를 누른 것과 같이 작동합니다.

자동넘김이 진행 중일 때는 셀빅의 자동꺼짐이 작동하지 않습니다.

자동넘김을 일시정지하고 싶을 때는 넘어가는 쪽의 방향키를 제외한 나머지 방향키를 누르면 멈춥니다. 원하는 방향키를 누르면 다시 시작합니다.

[Fv]

Font로서 입출력 폰트를 지정합니다. 일본어나 중국어를 표시하기 위해서는 11크기의 폰트를 지정해야 합니다.

[Dv]

Dictionary로서 Wordy의 단어장을 지정하며, 이 단어장을 기준으로 작동합니다.

__________

단어 입력창입니다.

[C]

Clear로서 단어 입출력창을 비웁니다. //C가 아닙니다.

[V]

//V로서 다른 프로그램의 에디트필드에서 //C(복사하기)한 단어를 단어입력창에 붙여넣기할 때 사용합니다.

그 아래 공백

당연히 단어 출력창입니다.

이 창은 삼등분을 해서 맨 왼쪽을 누르면 "아는 단어니까 테스트에서 제외", 가운데를 누르면 "알았는데 이제 잊어버렸으니까 다시 테스트에 포함", 맨 오른쪽을 누르면

단어장이름: *?현재단어인덱스/전체단어개수(*제외단어수+나머지단어수)
DiCA 버전
웹페이지주소

를 표시하며 단어인덱스 앞에 별표가 있으면 테스트에서 제외된 상태를 의미합니다. 다시 포함하고 싶으면 가운데를 누르면 됩니다.

[RF]모드에서는 구간정보를 [...] 사이에 같은 형식으로 표시합니다.

구간 전체단어의 제외는 출력창의 맨 오른쪽을 누른 후 떼지 않고 맨 왼쪽으로 와서 뗍니다.

구간 전체단어의 포함은 출력창의 맨 오른쪽을 누른 후 떼지 않고 가운데로 와서 뗍니다.

이렇게 제외된 단어들을 다시 모두 포함시키고 싶을 경우 [Dv] 팝업리스트를 열어서 현재 선택된 단어장이나, 기타 다른 단어장을 선택하면 해제됩니다. 리스트 바깥 영역을 선택하면 그대로 있습니다.

최대허용 가능 단어수는 10만 단어이며, 그 이상의 단어장에서는 단어인덱스 10만까지만 지원합니다.

새롭게 선택된 단어장에서 하나 이상의 제외된 단어가 생길 경우 테스트모드에서 단어를 넘기는데 약간의 시간지연이 있습니다. 이는 단어의 제외여부를 판단하기 위해 단어인덱스를 가져오는 DBMGetOffset() 함수의 속도가 느리기 때문입니다.

테스트모드 중이라도 단어를 제외시키지 않으면 속도저하는 일어나지 않습니다.

문제 포함/제외시 애니메이션(?)을 선택하면 문제의 이동이 눈에 보입니다. DiCA 윈도의 왼쪽 끝부분 바로 아래, 위 쪽을 누르면 되며, 사각형이 움직이면 애니메이션 지정입니다. 애니메이션되는 시간간격이 짧기는 하지만 그것도 기다리기 싫고 바로 다음 문제로 넘기고 싶은 경우는 선택 안 하면 되겠습니다. 기본은 하지 않습니다.

좌측키

정렬된 단어장에서 현재 단어의 이전 단어로 이동합니다.

우측키

정렬된 단어장에서 현재 단어의 다음 단어로 이동합니다.

상측키

[rF]모드에서는 현재 단어의 첫글자를 기준으로 그 이전 글자를 첫글자로 하는 첫번째 단어로 이동합니다.

abacus, abate, abuse, babble, baby와 같을 경우, baby에서 상측키를 누르면 baby의 첫글자 b를 기준으로 이전 글자인 a를 첫글자로 하는 첫번째 단어인 abacus로 이동합니다.

만약 c로 시작하는 단어에서 상측키를 눌렀는데 b로 시작하는 단어가 없을 경우 a로 시작하는 단어를 검색합니다. 발견될 때까지 계속 이동합니다. 만약 이전의 글자를 발견하지 못 했을 경우 단어장의 끝으로 건너뛰어서 검색을 계속합니다.

[R]모드에서는 [R]모드의 시작단어를 보여줍니다.

하측키

[rF]모드에서는 상측키와는 반대의 방향으로 다음 글자를 첫글자로 하는 첫번째 단어로 이동합니다.

[R]모드에서는 [R]모드의 끝단어를 보여줍니다.

엔터키

지정된 단어범위 내에서 무작위로 단어를 검색해서 보여줍니다.

기타 조작법

DiCA 종료

기본적으로 드래그 종료방법을 사용합니다. DiCA 윈도 바깥에서 펜을 누른 후 떼지않고 DiCA 윈도 안으로 들어 와서 떼면 종료됩니다.

또 다른 방법으로는 DiCA 윈도 바깥 영역을 눌러서 종료하는 것입니다. 단, DiCA 내에서 선택한 컴포넌트를 취소하기 위해 펜을 누른 채로 바깥으로 나와서 뗄 경우는 종료되지 않습니다.

후자의 방법이 편하기는 하나, 의도하지 않은 종료를 야기할 수 있습니다. 예를 들면 걸어가면서 단어를 외울 경우 외울 동안 손에 셀빅을 꼭 쥐고 있다가 실수로 액정을 누르는 경우입니다.

이런 일이 절대로 없다고 생각하는 사람은 윈도 바깥을 눌러서 종료하는 방법을 선택하면 되고, 정말 이런 일이 있다고 생각하는 사람은 기존의 드래그 종료방법을 선택하면 됩니다.

최초 설치를 하면 기존의 드래그 종료방법입니다. 바꾸는 방법은 DiCA 윈도가 화면 아래쪽에 있을 때는 타이틀바의 맨 오른쪽 바로 위를, 화면 위쪽에 있을 때는 DiCA 윈도의 맨 오른쪽 바로 밑을 누르면 됩니다.

바깥을 한번 찍어서 종료하는 방법의 경우 작은 사각형이 한번 깜빡거립니다. 드래그 종료방법의 경우 사각형이 윈도 안으로 들어오는 모습을 보입니다.

철자가 동일한 단어의 처리

동일한 철자의 단어가 여러개 있으면 최초의 단어만 검색대상이 됩니다. 예를 들어 byte 라는 소문자 철자의 단어가 둘 이상이면 최초 검색되는 뜻만 검색됩니다.

검색 뿐만 아니라 이동에서도 건너뛰게 됩니다.

이렇게 된 이유는 DB를 순차적으로 읽으면서 출력하는 방식이 아니고 현재 단어입력란에 입력된 단어를 기준으로 이동, 검색을 하는 방식이기 때문에 그렇습니다. 검색기능과 기타 적절한 이동기능을 위해서는 불가피한 선택입니다.

이런 경우 잘 없죠? ^^;

한가지 편법이 있긴 합니다. 제외된 단어는 [T]모드에서 나오지 않기 때문에 byte, byte, cool과 같은 순서일 때 첫번째 byte를 제외시킨 후 좌측키, 우측키를 차례로 누르면 두번째 byte가 나타날 겁니다.

제외시킨 후 우측키를 바로 누르면 현재 단어 byte의 다음 단어인 cool이 나오기 때문에 좌측으로 한번 갔다가 그 단어의 다음 단어인 제외되지 않은 byte가 나오게 합니다. 물론 [t]모드에서는 제외된 단어도 나오므로 이렇게 안 됩니다. :(

대소문자가 서로 다르면 상관없습니다. byte와 Byte는 다른 단어로 취급합니다.

유효하지 않은 단어의 검색

단어장에 없는 단어를 입력한 후 방향키를 누르게 되면 셀빅에서 제공하는 정렬에 의해 다음 단어를 찾아냅니다. 단, 잘 안 맞는 것도 있는 것 같습니다.

단어장에는 있으나 제외된 단어는 [t]모드에서는 모두 보이며, [T]모드에서는 "Not Found!"가 아닌 "Not Matched!"가 됩니다. Skip 지정시 제외된 단어는 개수를 세지 않습니다.

[rRF]모드에서 시작단어, 끝단어에서의 경계이동

검색이나 건너뛰기가 끝단어를 넘어갈 경우 시작단어로 이동합니다. [T]모드에서는 시작단어에서부터 제외되지 않은 첫단어를 찾습니다.

뒷방향으로 해서 시작단어를 넘어갈 경우는 끝단어로 이동하며, [T]모드에서는 끝단어에서부터 역으로 첫번째 제외되지 않은 단어를 찾습니다.

단어사이의 빠른 이동

[t]모드에서 [R]모드의 범위를 설정하거나 기타의 경우 빠른 속도로 모든 단어들을 대충 훑어보고 싶을 때가 있습니다. 그때는 [t]&&[Sv=1]인 상태에서 상하좌우키를 0.5초 이상 누르고 있으면 빨리넘기기를 시작합니다.

PC없이 원하는 단어의 학습은?

JTel이 제공하는 영한사전, 한영사전의 사용자사전(각각 ecustd, kcustd로 시작)을 포함했습니다. 이것을 이용하면 오토싱크없이도 학습을 원하는 단어를 셀빅만으로 입력이 가능하겠습니다. 위 DB는 단어자료가 전혀 없어도 존재하기 때문에 혼동을 피하기 위해 단어가 없을 때는 리스트에 표시하지 않습니다.

영한사전, 한영사전에 이미 있는 단어는 맨 뒤에 공백 정도는 붙여야 추가가 되겠지만요. 맨 앞에 붙이면 단어정렬에 문제가 생길 수 있으므로 맨 뒤에 붙여야 합니다.

에러메시지

DBM* Error: error_code

셀빅의 DB관리에 문제가 생긴 것입니다. 이 경우는 프로그램의 오류이거나 현재 선택된 단어장을 Wordy에서 삭제한 경우 발생하며, 후자인 경우는 다른 단어장을 선택하면 됩니다. error_code는 셀빅 SDK의 DBM.H 파일에 정의된 내용을 표시합니다.

* Error

기타 프로그램의 오류이거나 셀빅의 오류일 수 있습니다.

DB Not Selected!

워디 단어장을 선택하지 않았습니다. [Dv] 팝업리스트로 선택합니다.

No Memory!

셀빅의 메모리가 다 찼습니다.

No Data!

단어장은 있으나, 비어있습니다.

Not Found!

현재 입력하고 있는 단어를 찾지 못했으며 계속 입력을 하면 뜻을 찾게됩니다.

abort, abuse, acme 와 같은 단어가 순서대로 있을 경우 "abu"까지 입력하면 "abu" 라는 단어는 없지만 "se"를 추가로 입력하면 "abuse"를 찾을 수 있습니다.

Not Matched!

현재 입력하고 있는 단어는 앞으로 더 입력해봐도 뜻을 찾을 수 없습니다.

abort, abuse, acme 인 경우, "ab"까지는 "Not Found"지만 "abt"라고 입력하면 "abt"로 시작하는 단어가 없기 때문에 앞으로는 찾을 수 없습니다.

기능개선

활용법

제가 요즘 DiCA를 이용해서 단어를 게을리(^^;;) 외우고 있습니다. 제가 단어를 외우면서 그나마 제일 좋은 방법이라고 찾아낸 것을 소개해 드립니다. Pion의 영어단어 외우기에 소개된 방법을 참고했습니다. DiCA 역시 이 방법을 사용할 수 있게 만들어 졌습니다.

이 방법은 반복학습을 기본으로 합니다. 그리고 시간절약 또한 중요합니다. 우리가 중고등학교 때 단어를 외운다고 하면 의례히 연습장에 철자를 써 가면서 외웁니다. 새까맣게 될 때까지... 그리고 한번 외워졌다고 생각하면 넘어가고는 다시는 안 돌아옵니다.^^;; 연습장이 새까매지는 걸 보고 있으면 뿌듯하기도 하고 이젠 안 잊어버릴 것 같습니다만 어디 그렇습니까.

연습장에 철자를 쓴다는 것은 손의 움직임에 단어의 철자를 기억시킨다는 의미로서, 단어를 눈, 입, 귀, 손으로 외워두면 어느 하나가 잊혀져도 다른 것으로 기억해 낼 수 있다. 뭐 이런 논리로 온갖 수단으로 철자를 기억하려 합니다.

이젠, 그럴 시간은 없는 나이에 접어들었습니다(적어도 저는... ^^;;). 단어학습은 반복과 사용빈도에 있는 것이지 한번에 끝장 낼려는 태도에 있는 것이 아니기 때문에, 다시는 안 잊어버린다는 각오로 한번에 머리에 박힐 때까지 외운다는 것은 어리석을 뿐 아니라 시간도 장난이 아닙니다.

잡설이 길었습니다. 시간절약을 위해서 눈과 입으로만 학습을 합니다. 그리고 한번에 외우려고 하지 않습니다.

  1. 100개나 200개 정도의 단어뭉치를 외웁니다.
  2. 단어 하나에 약 30초 정도를 집중해서 뜻과 함께 반복 발음하면서 외워봅니다. 대여섯번 반복하면 시간이 다 되겠죠?
  3. 같은 방법으로 전체 단어를 모두 훑습니다.
  4. 다시 처음으로 돌아가서 이번에는 뜻을 가리고 처음 암기에서 외워졌는지 확인을 해 봅니다. 외워졌으면 체크를 하고 아니면 한번 더 같은 방법으로 외웁니다.
  5. 전체 단어를 모두 훑습니다. 다시 돌아가서 체크된 부분은 건너 뛰면서 체크 안된 단어만 같은 방법으로 확인 후 체크합니다.
  6. 이렇게 모든 단어가 체크될 때까지 반복합니다. 안 외워진 단어의 반복주기는 외운 단어가 늘어날 수록 점점 짧아지기 때문에 더 기억에 남게 됩니다.

이때 중요한 것은 한번 체크한 단어는 혹시나 잊어버렸을까 다시 보면 안 된다는 겁니다. 시간이 없습니다. ^^; 한 며칠 뒤 체크된 걸 지우고 다시 모든 단어를 확인해 봅니다. 어떨까요?

이 방법은 DiCA의 설계단계에서 모두 고려되었습니다.

  1. 단어의 범위를 [RF] 모드에서 지정합니다.
  2. [t] 모드에서 모든 단어를 외워봅니다.
  3. [T] 모드에서 다시 반복하면서 외워진 단어는 제외시킵니다.
  4. 모든 단어를 반복했으면 다시 처음으로 돌아갈겁니다. 이번엔 제외된 단어는 보이지 않습니다.
  5. 안 외워진 단어만 다시 외우게 됩니다. 이렇게 모두 외워질 때까지 반복합니다.

예전의 습관 때문에 한 단어에서 너무 오래 머무르게 될 경우 [Tv]의 자동넘김을 이용해서 시간을 정해 놓습니다. 아마 시간은 더 절약될 겁니다. 2초로 설정하면 200단어 훑는데 2*2*200이니까 800초, 15분이 안 되네요. 한단어에 철자, 뜻 이렇게 2초씩이니까 2*2*200이 맞겠죠?

저같은 경우 이렇게 해서 한시간 안팍으로 100 단어 정도를 모두 체크합니다. 뭐, 초기에 체크한 건 잊어버렸을 수도 있겠지만요. ^^;; 또 반복해야겠죠? 어차피 쓰면서 외운 것도 반복 안하면 다 잊어버릴텐데요 뭘. 한번 해보세요. :)

AutoGrp

cellvic/autogrp.gif

셀빅을 사용하다 보면 가끔씩 콜드리셋을 해야만 할 때가 있습니다. 이런 경우 콜드리셋을 하고나면 이전에 사용하던 프로그램 그룹들은 모두 지워져 버립니다. 이럴때는 이전에 사용하던 모든 어플들을 설치한 후 다시 그 그룹들을 생성하고 어플들을 해당 그룹으로 이동하는 반복적인 작업을 해야만 합니다.

이 작업을 자동화하기 위해 만들어진 유틸입니다.

  1. 그룹을 모두 만들고 해당 어플들을 모두 이동한 다음 AutoGrp을 실행합니다.
  2. [Backup] 버튼을 누릅니다.
  3. 오토싱크를 해서 메모장을 백업해 둡니다.
  4. 사용하다 콜드리셋을 하게 됩니다.
  5. 메모장을 싱크합니다.
  6. 모든 어플들을 설치합니다. 아직도 "비분류"에 들어가 있습니다.
  7. AutoGrp을 설치하고 실행합니다. [Restore] 버튼을 누릅니다.
  8. 이전의 그룹/어플 세팅으로 돌아갑니다.

메모장에 저장되는 AutoGrp의 자료형식은 아래와 같으며 메모장의 "비분류" 그룹에 저장됩니다.

AutoGrp
개발: 셀빅DB1, DevKit1, Tdel1,
게임: 블록격파1, 오목1,
기본: 메모장1, 주소록1, 일정1, 할일1, 필기장1, 제어판1,
그룹1: 어플1-10, 어플1-20, 어플1-30,
그룹2: 어플\,2-11, 어플2-21, 어플2-31, 어플2-41,
그룹3:
그룹\:4:,

첫줄은 AutoGrp 만 있어야합니다. 다음은 그룹명: 어플명[01], 들입니다. 모든 어플명 뒤에는 보이기/감추기 여부를 결정하는 1 또는 0이 오고, 다음 ,가 있어야합니다. 마지막 어플명도 마찬가지입니다. 하나의 그룹명이나 어플명 사이에 들어가는 공백을 제외한 모든 공백은 무시됩니다. 그리고 자료에 적힌 순서대로 어플을 보이게 해 줍니다.

그룹명이나 어플명 자체에 :나 ,가 포함된 경우는 각각 \:와 \,로 표현해서 구분자와 구별해야 합니다.

위에서 그룹3 과 그룹:4는 그룹이 없을 경우 그룹만 생성합니다.

위 자료는 [Backup]을 누르면 현재의 세팅을 자동으로 저장할 때 생성됩니다. 이 자료를 위와 같은 형식으로 직접 수정해도 상관없습니다.

위 자료에는 없는 어플이 설치되어 있다면 그대로 둡니다. 위 자료에는 있는 어플이 설치되어 있지 않아도 뭐 어쩌겠습니까? ^^;

기능개선

AutoGrp (English)

cellvic/autogrp.gif

PDA users, including CellVic users of course, may not be able to avoid resetting their machines. For this reason, data backup can not be emphasized too much. What should users do right after resetting the CellVic?

  1. Delete all garbage data created by the CellVic itself, i.e., Ad. of JTel.
  2. Install CVX's and CVD's.
  3. Create and move programs into the appropriate categories.
  4. Sync PIMS data.

The first step, deleting garbage data, is highly recommended to avoid memory fragmentation if you don't need the data. Of course, I don't mean that all these steps should be executed in that order. However, if your CVX's and CVD's are already in a stable status, I would recommend you the steps above.

AutoGrp is a utility that helps you do the third step.

  1. Create program groups and move programs into the categories you want.
  2. Run AutoGrp and press [Backup] button. AutoGrp data will be generated in Memo application DB.
  3. Now, sync the AutoGrp data.
  4. Unfortunately, you have to cold-reset your CellVic.
  5. After installing CVX's and other requirements, sync data from the PC to the CellVic.
  6. Run AutoGrp and press [Restore] button.
  7. Then all of the programs which are previously not categorized immediately after installation will be properly categorized. Yes, its setting is the same as that of [Backup] time.

AutoGrp data format is as follows:

AutoGrp
Games: Tetris1, Vexed1,
GroupName1: Prg\,1-11, Prg1-21, Prg1-30,
GroupName\:2: Prg2-10, Prg2- 21,

The first line should contain only "AutoGrp". Pairs of "GroupName: PrgName1, PrgName2, ...," follows. GroupName and PrgName are followed by ':' and ',' respectively. You should prepend '\' immediately before ':' or ',' included in GroupName and PrgName to differentiate these characters from separators. PrgName is followed by '1' or '0' which indicates if the program is visible or invisible.

White spaces included in names are not ignored, but prepended or appended white spaces are ignored.

    G roup Na\:me:    ;P rgN\,ame11, PrgName20,

"G roup Na:me" is used for a GroupName, the first four spaces (" ") are ignored, and "P rgN,ame1" is used for a PrgName. This program is visible because '1' is appended to the program name.

Don't worry about creating AutoGrp data, it's only for information purpose. You don't have to create the data by hand, instead just press [Backup] button in AutoGrp.

I hope you enjoy it!

CVrescue

CellVic Rescue

AutoGrp을 PC쪽에서 대체할 수 있는 프로그램입니다. 즉, 콜드리셋이 되었을 경우 지정된 디렉토리의 CVX 파일을 원하는 그룹에 설치를 하고 CVD 파일도 설치를 해 줍니다. 추가로 셀빅에 있는 DB를 백업할 수 있습니다.

사용법

CVrescue를 실행하면 셀빅에서 싱크를 시작할 때까지 대기합니다. -l 옵션 역시 싱크를 해야만 리스트가 보이므로 착오없기 바랍니다.

CVrescue [-h] [-cConfigFile] [-d] [-l] [-a] [-b[TableName]] [-gGroupName] [-o] [-t] [file...]
	-c: Specify a config file
	-d: Delete all records in the CellVic
	-l: Get the table list
	-a: Backup all tables in the CellVic
	-b: Backup the tables or the table given as a argument
	-g: Backup this group only
	-o: Backup as overwrite
	-t: Save the template

아래와 같은 설정파일을 만듭니다.

port:	com1
speed:	57600
cvx:	c:\cvrescue\cvx
cvd:	c:\cvrescue\cvd
backup:	c:\cvrescue\bak
	MemoDB
	AddressDB
	SchedNrDB
	SchedRpDB
	TodoDB
	InkDB
	PhotoAlbum

백업

셀빅에 있는 테이블을 백업하기 위해서는 세가지 방법이 있습니다.

CVrescue -b

설정파일에 지정된 테이블만 백업하기

CVrescue -b테이블이름

설정파일에 지정된 테이블 무시하고 옵션에서 지정한 테이블만 백업하기

CVrescue -b -a

셀빅에 있는 모든 테이블 백업하기

각각에 대해서 -o 옵션을 지정할 수 있으며, -o 옵션을 지정하지 않으면 생성된 CVDX 파일을 추후 재설치할 경우 셀빅의 같은 테이블의 자료를 보존하며 추가가 됩니다. -o 옵션을 지정하면 재설치시 현재 셀빅에 있는 같은 테이블을 삭제한 후 자료를 설치하므로 위험할 수도 있습니다. 이 속성은 파일 내의 &table write="overwrite"> 부분에서 지정하며 overwrite 또는 append를 설정할 수 있습니다.

복구

이제 셀빅이 콜드리셋됐다고 가정을 해봅니다. 최초 콜드리셋하고 좌표설정한 상태의 셀빅에 CVX를 설치하고 CVD를 설치하게 되면 메모리 변동이 거의 없는 부분들이 먼저 설치되므로 메모리 단편화 현상이 덜 할 겁니다.

  1. 콜드리셋 후 좌표설정
  2. PC 쪽에서 오토싱크 프로그램 종료
  3. CVrescue.exe 또는 CVrescue.exe c:\a.cfg를 실행
  4. 셀빅을 크래들에 꽂고 오토싱크 시작
  5. CVX, CVD 순으로 설치
  6. PC 쪽에서 오토싱크 프로그램 다시 시작
  7. PIMS 자료 싱크

위와같은 과정을 거쳐서 CVX, CVD, PIMS를 셀빅에 설치하게 됩니다. 물론 default_cvx라는 디렉토리는 이제 없어야 합니다. 두번 설치하면 안 되니까요.

이제 의문이 생깁니다. CVX 파일들의 그룹을 어떻게 지정할까요? c:\cvrescue\cvx 디렉토리 하부의 구조가 아래와 같다고 생각해 봅시다.

c:\cvrescue\cvx\
c:\cvrescue\cvx\어플0.cvx
c:\cvrescue\cvx\어플1.cvx
c:\cvrescue\cvx\그룹0\어플2.cvx
c:\cvrescue\cvx\그룹0\어플3.cvx
c:\cvrescue\cvx\그 룹1\어플4.cvx
c:\cvrescue\cvx\그 룹1\어플5.cvx
c:\cvrescue\cvx\그 룹1\그룹2?\어플6.cvx

어플0.cvx와 어플1.cvx는 "비분류"에 설치됩니다. 어플2.cvx와 어플3.cvx는 "그룹0"에 설치됩니다. "그룹0"이 없으면 만들어서 설치됩니다. 어플4.cvx와 어플5.cvx는 "그 룹1"에 설치됩니다. 그러면 어플6.cvx는? 왜 저렇게 했는지 모르겠지만 저렇게 했다고 생각하면 "그룹2?"에 설치됩니다.

CVD는 그룹개념이 없으므로 c:\cvrescue\cvd에 모두 넣으면 됩니다. 그래도 어플별로 분류를 해서 보기 좋게 디렉토리 구조를 꾸미고 싶을 경우가 있겠습니다.

c:\cvrescue\cvd\
c:\cvrescue\cvd\데이타0.cvd
c:\cvrescue\cvd\데이타1.cvd
c:\cvrescue\cvd\어플0\데이타2.cvd
c:\cvrescue\cvd\어플0\데이타3.cvd
c:\cvrescue\cvd\어 플1\데이타4.cvd
c:\cvrescue\cvd\어 플1\데이타5.cvd
c:\cvrescue\cvd\어 플1\어플2?\데이타6.cvd

모든 CVD들은 그냥 cvd에 모두 넣은 것과 마찬가지로 설치가 됩니다. 단, PC쪽에서 디렉토리로 구분을 할 수가 있으며 셀빅화면에 설치시 어플의 이름도 같이 표시가 됩니다. 데이타6.cvd는 "어플2?" 어플의 데이타가 되겠습니다.

CVD 설치는 확장자가 .cvd인 CVD 1.0과 1.1을 지원하며 .cvdx인 CVD 2.0도 지원합니다.

CVrescue.exe -d 처럼 -d 옵션을 주게되면 CVX, CVD를 설치하기 전에 셀빅에 있는 오토싱크 대상이 되는 모든 자료를 삭제합니다. 이는 콜드리셋을 하게되면 생성되는 기본적인 자료를 삭제하기 위해 만들었습니다. 저한텐 별로 필요없는 정보같고 또싱크하게 되면 자꾸 PC쪽에 쌓이는 것 같더라구요. 메모장, 주소록, 일정, 할일, 필기장 자료를 모두 삭제합니다. 조심해서 사용하세요.

기능개선

CVrescue (English)

CellVic Rescue

It is a replacement of AutoGrp on the PC side. However, it can be also used for AutoSync immediately after the CellVic is reset.

Usage

CVrescue [-h] [-cConfigFile] [-d] [-l] [-a] [-b[TableName]] [-gGroupName] [-o] [-t] [file...]
	-c: Specify a config file
	-d: Delete all records in the CellVic
	-l: Get the table list
	-a: Backup all tables in the CellVic
	-b: Backup the tables or the table given as a argument
	-g: Backup this group only
	-o: Backup as overwrite
	-t: Save the template

cvd2cvdx

CVD to CVDX converter

기존의 바이너리 CVD 파일을 텍스트 XML 포맷인 CVDX로 변환합니다. 이 포맷의 장점은 CVD를 생성, 수정하기가 용이하며 별도의 프로그램이 없어도 이런 작업이 가능하다는 것입니다.

예를 들어, 어떤 셀빅어플에서 읽어들이는 CVD 파일이 있는데, 내용을 수정하고 싶습니다. 그런데 도대체 어떤 프로그램으로 이 CVD 파일을 만들었는지 모르겠으며, 원래의 소스도 없는 상황입니다. 이런 경우 cvd2cvdx만 있으면 모두 해결됩니다.

cvd2cvdx data1.cvd data2.cvd

위와 같이 두개의 CVD 파일을 cvd2cvdx로 실행시키면 이 두파일은 모두 CVDX로 변환이 됩니다. data1.cvdx, data2.cvdx라는 파일이 생성됩니다. 물론 CVD 파일 하나만 지정해도 됩니다. ^^; 이렇게 생성된 *.cvdx 파일을 일반 텍스트에디터로 열어보면 대략 다음과 같은 구조로 되어 있습니다.

보시다시피 텍스트로 되어 있어 일반 에디터로도 자료의 추가, 삭제가 가능해집니다. <record>...</record> 사이의 형태로 자료를 추가할 수 있으며 수정 또한 가능합니다. 그 뿐만 아니라 자료의 트리구조도 웹브라우저로 쉽게 알 수 있습니다. 마치 HTML로 홈페이지 만드는 것과 비슷합니다. 기존 바이너리 CVD에서는 쉽게 할 수 없었던 이런 작업을 할 수 있는 것 만으로도 CVDX는 좋은 선택입니다. 물론 태그때문에 파일사이즈는 약간 커지지만, 요즘 같은 세상엔 뭐...

그렇다면, 포토앨범과 같이 텍스트가 아닌 자료가 있으면? CVDX에서는 이런 경우를 위해 바이너리 데이타를 포함하는 방법을 제공합니다. 바이너리 데이타를 정확히 65개의 ASCII 코드로 변환하는 방법인 base64 encoding을 통해 가능해 집니다. 65개 글잔데 왜 base64? 1개는 파일사이즈를 4의 배수로 맞추기 위해 끝부분에 '='를 추가하는데 이 글자는 내용에는 전혀 안 들어가기 때문입니다.

사용법

cvd2cvdx [-h] [-c] [-e] [-d] file...
	-c: base64 encoding for cvdx
	-e: base64 encoding
	-d: base64 decoding

만약에 BMP파일을 보여줄 수 있는 셀빅어플이 있다면

cvd2cvdx -c a.bmp a.enc

라고 하면 한줄짜리 a.enc라는 텍스트 파일이 생깁니다. 이 넘을 <content>...</content> 자리에 엔터없이 <content>여기바로</content> 삽입합니다. 그러면 그자리에 바이너리 자료가 삽입되는 겁니다. 이 예제가 바로 그런 예제입니다. 아래 쪽에 blob type 보이시죠?

설명이 제대로 되었는지 모르겠습니다. 궁금한 점은 comments에 질문해 주시구요. 이 프로그램으로 인해 CVDX 파일의 활성화를 꿈꿔봅니다. 인터페이스가 좀 지랄 같지만요. ^^;;

기능개선

알려진 버그

h4MP

Hack for MoneyPlus

cellvic/h4mp.gif

금전출납부+ Ver 1.13을 사용하면서 가장 불편했던 점은 자료가 자동으로 백업되지 않는다는 것이었습니다. 수작업으로 전체그룹을 메모장으로 내보내기해야 하며, 읽어 들일 때는 여러개로 나누어져서 내보내기된 자료들을 일일이 모두 읽어 들여야합니다.

그 뿐만이 아니라, 만의 하나 콜드리셋이라도 된다면 어지간히 부지런하게 내보내기를 자주 하지 않은 이상 며칠 정도의 자료는 잃게 될 것입니다.

이런 불편함에 결국은 손을 대고야 말았습니다. hack4MoneyPlus는 말 그대로 MoneyPlus(금전출납부+)를 위한 핵 프로그램입니다. 핵으로 등록을 해서 사용할 수도 있고 독립적으로 실행할 수도 있습니다.

기본적인 기능으로 [Backup], [Restore]가 있습니다. [Backup]을 누르면 금전출납부+의 모든 자료들을 메모장으로 내보내기합니다. 그 전에 메모장에 이미 금전출납부+의 자료가 있을 경우 중복을 피하기 위해 기존의 자료는 삭제합니다. 내보내기는 약 4000 바이트 단위로 메모장에 나뉘어져 저장됩니다.

이렇게 메모장으로 내보내기된 자료는 [Restore]를 누르면 금전출납부+의 자료로 변환됩니다. 단, 이 경우에도 기존의 금전출납부+에 있는 자료와의 중복을 피하기 위해 기존의 금전출납부+ 자료는 모두 삭제합니다.

단, 한가지 가정이 있습니다. 금전출납부+에서는 DB의 이름을 지정할 수 있게 되어 있습니다만, h4MP를 사용하기 위해서는 기본 DB명인 MoneyPlus만 사용해야 합니다. 최초 금전출납부+를 설치하고 다른 작업없이 바로 사용을 한 경우가 되겠습니다.

이제 남은 것은 PC로 오토싱크할 때 같이 싱크되게 하는 것입니다. 그렇지 않다면, 이것 역시 매번 백업/복구를 오토싱크와는 무관하게 수작업으로 해줘야 하기 때문입니다. 메모장은 기본으로 PC와 싱크되기 때문에 [Backup]한 자료는 PC와 싱크가 될 것입니다.

따라서, 이 [Backup] 작업을 오토싱크 직전에 자동으로 해주면 됩니다. 이를 위해서 [ ]hack4MP라는 체크박스가 있습니다. 이 체크박스를 선택해 놓을 경우 핵 프로그램으로 작동됩니다. 셀빅을 크래들에 꽂게 되면 오토싱크를 할 것인지를 묻는 대화상자가 뜨는데 그 바로 전에 [Backup] 작업을 수행하게 됩니다. 화면에는 아무런 표시도 되지 않습니다. 자료의 양에 따라 약간의 지연이 있은 후 오토싱크 메시지가 뜰 것입니다.

[ ]hack4MP 체크박스를 선택해 놓지 않으면 핵은 작동하지 않아서 크래들에 꽂아도 [Backup]하지 않습니다.

PC쪽에서는 자료의 업데이트가 없다고 생각합니다. PC쪽 금전출납부+ 프로그램이 없기 때문입니다. 따라서, [Restore]는 자동으로 이루어질 필요가 없습니다. 혹시라도 셀빅 쪽의 자료에 문제가 생겼다면 [ ]hack4MP 체크 해제하고 오토싱크하는 것 잊지 마세요.

기능개선


All the works in this site except software and copyrighted materials by others (e.g., 문학) are licensed under a Creative Commons License. 소프트웨어 및 문학과 같이 다른 이에게 저작권이 있는 작품을 제외하고 모두 크리에이티브 커먼즈 라이센스를 따른다.
Thu Oct 10 06:58:23 2019 . XHTML . CSS (lightbox.css is not part of Uniqki. ;-) . Powered by Uniqki!
refresh . edit . loginout . index