Araxis나 WinMerge나 이녀석들이 보기에는 소스코드가 아니면 전부 바이너리로 밖에 보이지 않는지라,
이러한 파일들의 내용을 알 수 없기에, 바이너리의 버전 관리는 상당히 힘든 문제가 발생한다.


위의 사진은 WinMerge로 xls 파일을 비교한 내용이다.(물론 합성! 실제로는 저 에러가 먼저 뜨고 내용이 뜬다)
바이너리라서 전혀 이해할 수도, 볼 수도 없다.

하.지.만!
플러그인을 사용하면 아래와 같이 텍스트로 내용을 볼 수 있다.
(물론 병합/Merge를 할 수 있지는 않다. 단지 내용을 볼 수 있을 뿐이다)


어떻게 보면 병합도 못하는데 무슨 소용이냐? 라고 할 수 있겠지만,
글쎄?
일일이 비교도 안되는 엑셀의 내용을 뚫어라 쳐다보면서 비교점을 찾을 수 있다면서 필요 없겠지만,
최소한 무슨 내용이 변경되었는지 알 수 있는 것과 비교 한다면 천지 차이가 아닐려나?



xdocdiff WinMerge Plugin -Compare Word, Excel, PowerPoint, pdf-With this plugin, you can compare these files.
.rtf Rich Text
.docx/.docm Microsoft WORD 2007(OOXML)
.xlsx/.xlsm Microsoft Excel 2007(OOXML)
.pptx/.pptm Microsoft PowerPoint 2007(OOXML)
.doc
Microsoft WORD ver5.0/95/97/2000/XP/2003
.xls Microsoft Excel ver5.0/95/97/2000/XP/2003
.ppt Microsoft PowerPoint 97/2000/XP/2003
.sxw/.sxc/.sxi/.sxd OpenOffice.org
.odt/.ods/.odp/.odg Open Document
.wj2/wj3/wk3/wk4/123 Lotus 123
.wri Windows3.1 Write
.pdf Adobe PDF
.mht Web Archive
.eml Exported files from OutlookExpress

outlook 외부 저장파일 까지 지원을 한다. 실질적으로 거의 모든 문서를 지원한다고 보면된다.
(아래한글이 없잖아! 이러면 곤란)

[링크 : http://freemind.s57.xrea.com/xdocdiffPlugin/en/index.html]


Posted by 구차니
프로그램 사용/gcc2009. 2. 18. 17:13
char str[] = "Hello world!";

만약에 키보드로는 입력 불가능한 control chacter(제어문자)를 문자열 상에 넣고 싶으면 어떻게 해야 할까?
일단 가장 흔히 쓰는 제어문자로는

\t
\n

인데, 자신이 직접 헥사로 넣고 싶다면

\x20

이런식으로 입력을 하면된다.


덧 : 개인적으로는 ISO8859 용 스트링의 첫 바이트에 들어 가는 제어문자를 넣는 방법으로 활용하고 있다.
덧2: 솔찍히 이실직고 하자면, 직접해보니 오작동을 하는 경향이 보인다.
      비쥬얼 스튜디오나 일반 gcc 에서도 테스트를 해봐야겠다.
Posted by 구차니
load 라는 명령어가 gdb에 존재한다.
(gdb) help load
Dynamically load FILE into the running program, and record its symbols
for access from GDB.
A load OFFSET may also be given.

stlinux.com 에서 gdb를 이용하는 방법은, u-boot가 없을때
JTAG을 이용해서 u-boot 실행 파일을 메모리로 외부에서 올려 실행 시킬때만 사용한다.

그래서 혹시나 하는 마음에 다른 파일을 올려 볼려고 했더니..
(gdb) load /tftpboot/uImage 0xA4000000
"/tftpboot/uImage" is not an object file: File format not recognized
uImage는 커널이미지인데.. 인식을 못하고는 배째버린다.

에헤라디야. 시리얼이나 써서 느긋하게 파일을 올려야 하나.

[참고 : http://www.delorie.com/gnu/docs/gdb/gdb_171.html]

'프로그램 사용 > gdb & insight' 카테고리의 다른 글

GDB Insight FAQ - support target list  (0) 2009.06.26
insight - GDB GUI frontend  (0) 2009.06.26
gdb야 좀 대충 속아라~ 응?! 아 쫌!  (6) 2009.06.18
gdb 한글 문서  (0) 2009.06.18
gdb 기동시 xterm 에러 - STLinux  (2) 2009.04.09
Posted by 구차니
프로그램 사용/meld2009. 2. 13. 21:01
한국 복귀 기념으로 블로그 순회하다가
Mr.Dust 님의 블로그에서 meld라는 프로그램을 발견했다.

처음에 스샷 만 봐서는 WinMerge인줄 알았는데, 리눅스용 GUI Diff 툴이라고 한다. Gnome ,python 기반이다.


디렉토리 비교 / 파일 비교

홈페이지에서 보니 i18n 지원되고(간단하게 다국어 지원), 디렉토리 비교는 WinMerge 보다 나은 것 같다.
[공식 : http://meld.sourceforge.net/]


덧 : meld라길래 무슨 daemon 인 줄 알았네 ㄱ-
Posted by 구차니
프로그램 사용/Putty2009. 2. 7. 00:09
결론만 말하자면, 서버에서 Ctrl-E 메시지를 보내면 터미널은 자신의 존재를 알려야 하는데,
이러한 이유로 인해서, PuTTY 라는 명령어가 응답 메시지로 기본 저장이 되어있고, 그러다 보니 나도 모르는 사이에
어느샌가 화면 가득 PuTTYPuTTYPuTTYPuTTY 라고 가득 차 있게 되는 것이다.

해결 방법으로는 answerback 메시지를 등록하지 않는 방법 정도인 듯 하다.

A.7.12 When I cat a binary file, I get ‘PuTTYPuTTYPuTTY’ on my command line.

Don't do that, then.

This is designed behaviour; when PuTTY receives the character Control-E from the remote server, it interprets it as a request to identify itself, and so it sends back the string ‘PuTTY’ as if that string had been entered at the keyboard. Control-E should only be sent by programs that are prepared to deal with the response. Writing a binary file to your terminal is likely to output many Control-E characters, and cause this behaviour. Don't do it. It's a bad plan.

To mitigate the effects, you could configure the answerback string to be empty (see section 4.3.7); but writing binary files to your terminal is likely to cause various other unpleasant behaviour, so this is only a small remedy.

[출처 : http://www.chiark.greenend.org.uk/~sgtatham/putty/faq.html#faq-puttyputty]


4.3.7 ‘Answerback to ^E’

This option controls what PuTTY will send back to the server if the server sends it the ^E enquiry character. Normally it just sends the string ‘PuTTY’.

If you accidentally write the contents of a binary file to your terminal, you will probably find that it contains more than one ^E character, and as a result your next command line will probably read ‘PuTTYPuTTYPuTTY...’ as if you had typed the answerback string multiple times at the keyboard. If you set the answerback string to be empty, this problem should go away, but doing so might cause other problems.

Note that this is not the feature of PuTTY which the server will typically use to determine your terminal type. That feature is the ‘Terminal-type string’ in the Connection panel; see section 4.14.3 for details.

You can include control characters in the answerback string using ^C notation. (Use ^~ to get a literal ^.)

[출처 : http://tartarus.org/~simon/putty-snapshots/htmldoc/Chapter4.html#config-answerback]


Answerback to ^E 옵션의 위치


4.14.3 ‘Terminal-type string’

Most servers you might connect to with PuTTY are designed to be connected to from lots of different types of terminal. In order to send the right control sequences to each one, the server will need to know what type of terminal it is dealing with. Therefore, each of the SSH, Telnet and Rlogin protocols allow a text string to be sent down the connection describing the terminal. On a Unix server, this selects an entry from the termcap or terminfo database that tells applications what control sequences to send to the terminal, and what character sequences to expect the keyboard to generate.

PuTTY attempts to emulate the Unix xterm program, and by default it reflects this by sending xterm as a terminal-type string. If you find this is not doing what you want - perhaps the remote system reports ‘Unknown terminal type’ - you could try setting this to something different, such as vt220.

If you're not sure whether a problem is due to the terminal type setting or not, you probably need to consult the manual for your application or your server.

[출처 : http://tartarus.org/~simon/putty-snapshots/htmldoc/Chapter4.html#config-termtype]

'프로그램 사용 > Putty' 카테고리의 다른 글

putty로 proxy 설정하기 (socks5 + firefox)  (0) 2014.12.17
linux용 putty  (2) 2011.09.21
putty를 이용한 vnc 터널링  (1) 2011.06.21
Putty를 이용한 Dynamic SOCKS  (2) 2010.11.20
putty 자동 로그인  (2) 2009.07.18
Posted by 구차니
프로그램 사용/GIMP2009. 2. 5. 04:40
포토샾에서도 있는데 포토샾을 많이 다뤄보질 않아서
자세한 이야기는 할 수 없지만, 포토샾에서 페더는 주변을 흐릿하게 잘라낼때 썼던것 같다.

아무튼 GIMP에서 페더를 적용해 보았다.

step 1. 색상을 선택한다.

step 2. 선택메뉴의 페더를 선택한다.

step 3. 페더 값을 조정한다.

step 4. 페더 결과

페더는 선택영역 부드럽게 해주는 역활을 하는데, 값이 커지면 원에 가까워진다.

[GIMP document : http://docs.gimp.org/en/gimp-painting.html#id2824669]
Posted by 구차니
프로그램 사용/GIMP2009. 2. 5. 01:52
특정영역을 선택해서 그 영역보다 작게 선택하여 그 외의 영역을 잘라내고 싶을 경우에
혹은 그 반대로 선택영역을 조금더 늘리고 싶을 경우 사용한다.

예를 들어 원하는 영역을 선택하려 했지만 비슷한 색상영역으로 선택시에는
anti-aliasing의 영향으로 색상이 혼잡한 영역을 피해 선택하고 싶은 경우에 유용하다.

step 1. 비슷한 색상 영역을 선택한다.

step 2. 선택-늘이기를 선택한다.

step 3. 선택 늘리기 에서 원하는 픽셀을 입력한다.

step 4. 늘어난 영역을 보면 아까의 영역보다 1pixel 커진것을 알 수 있다.

Posted by 구차니
프로그램 사용2009. 1. 30. 16:01

이번에 출장을 가면서 메일 클라이언트로 Outlook을 벗어 나볼려고 설정을 하는데
아무래도 익숙하지 않은게 가장 큰 문제라서, 이것저것 설정을 해보고서야 겨우 알아내었는데..

결론만 말하자면, 서버 설정 항목에서 메시지를 서버에 보관을 체크 하면, 서버에 메일을 남겨 놓는다.
off-line 메일 관리자로서는 당연한 거지만,
기본값이 메일 서버에서 삭제라니 조금은 위험한 기본 설정이 아닐까라는 생각이 든다.


Outlook express(WinXP 기본 내장)에서의 메일 남기기 설정. 기본값은 여전히 메일서버에서 삭제이다.

Posted by 구차니
[서버 - linux]

Fedora Core 6에서 CVS 서버 설치하기
 
step 1. xinetd이 이 없다면 설치 한다 (FC 설치시 옵션에 따라서 xinetd가 설치가 안됨. 기본 값 설치시에는 xinetd 포함)

step 2. cvs 에서 사용하는 프로그램들을 설치 한다 [optional]
        cvs, cvsgraph, cvsweb를 설치해준다

step 3. cvs 유저를 및 cvs 그룹을 만든다
        a. useradd cvs 하여 cvs 유저와 그룹을 만든 다음 passwd에서 cvs의 로그인 쉘을 /sbin/nologin 으로 바꾸어 준다
        b. '사용자 관리자' 에서  cvs  유저와 cvs 그룹을 추가 후 로그인 쉘을 /sbin/nologin으로 바꾸어준다
        c. cvs[user]/cvs[group]가 없을 경우 module이 없다는 엉뚱한 에러 메시지가 발생한다.

step 4. cvs를 저장할 곳을 생성하고 디렉토리의 권한을 설정한다.
        그룹이 같이 사용하기 위해서는  CVS 루트 디렉토리의 권한이 그룹에도 write할 수 있도록 되어야 한다
        a. chmod -R $CVS_HOME 775
        b. $CVSROOT 디렉토리의 그룹/유저 권한이 설정되어 있지 않다면 파일을 읽을 수 없으므로
            module 목록을 받아 올 때 에러가 발생하게 된다.

step 5. cvs 루트 디렉토리를 추가한다
        a. cvs -d $CVSROOT init

step 6. 루트 디렉토리 안에 CVSROOT 라는 디렉토리가 생성되었나 확인한다

step 7. CVS를 사용할 유저들을 CVS 그룹에 넣는다

step 8. CVSROOT 디렉토리로 들어 가서 passwd 파일을 생성한다
        a. htpasswd -c passwd $USERID  // 최초 생성시
        b. htpasswd passwd $USERID    // 유저 추가시

step 9. cvs 클라이언트를 이용해서 cvs를 사용한다

step 10. cvs 클라이언트 접속시 cvs pserver: cannot open /var/cvst/CVSROOT/config: Permission denied 라는
            에러가 뜨면 대부분 SELinux 활성화로 인해 충돌이 일어 나는 것이므로,
        a. # setenforce 0 로 selinux를 해제하거나
        b. selinux 설정에서 cvs 보호를 해제 한다. 조금더 안전한 방법을 찾아 봐야함<-
        c. cvs repository의 permission을 확인해본다. 일반적으로 cvs 그룹에 속해 있지 않거나,
            파일을 추가한 사람의 퍼미션을 따라가면서 others의 권한으로 읽다 보니 이런 경우가 발생함
[참고 : http://blog.naver.com/neutrino37/110011154935 & http://forums.fedoraforum.org/archive/index.php/t-100962.html]

 

 cvsweb을 굳이 설치 해야 할 이유는 없으나, 설치 하지 않을시 Tortoise CVS 에서 아래와 같이 설정을 해주어야 한다.

웹 로그를 설치 하지 않은채 '웹 로그 파싱'을 끄지 않으면 웹 로그 서버를 찾는데 엄청나게 오랜 시간 동안 멈추어 버리므로
웹 로그 설치하지 않았다면 반드시 웹 로그 파싱을 끄도록 한다.

 '빈 폴더 제거'의 경우 기본 설정이지만, 일부 프로그램에서 컴파일 결과용 폴더라던가 내용이 없는 폴더의 경우 이 옵션은 꺼주는 것이 좋다. 그게 아니라면, 없어진 폴더를 일일이 생성을 해야 하는 귀차니즘을 경험하게 될 것이다.
(컴파일시 결과 출력 디렉토리라면 컴파일 시 에러가 발생할 것 이다)
 
'네트워크(원격) 드라이브의 저장소 허용'의 경우 꺼지는 것이 기본 설정이지만,리눅스 서버에서 개발을 하고 소스 수정은
windows에서 하는 경우에는 대부분 samba나 nfs를 사용할텐데, 이경우 cvs가 작동이 되지 않게 되는 원인이 바로 이녀석이다. 이녀석을 체크해주면 원격 드라이브에서도 cvs를 사용할 수 있으므로, 개발 환경 구축이 편해지는 장점이 있다.
<20080619 추가>




2008/12/12 - [프로그램 사용] - TortoiseCVS - CVS client for windows
Posted by 구차니
프로그램 사용/LVM2009. 1. 22. 18:49
LVM은 Fedora 부터 포함이 되었던 것으로 기억한다.(최소한 Redhat에서는 존재하지 않았으니)
솔찍히 LVM의 장점은 모르겠지만, 기본으로 설정되어 있다 보니 생각없이 단일 하드에 설치 할때
LVM으로 했는데 막상 고장이 나서 다른 컴퓨터에 물려 내용을 확인하려고 하니
파티션을 마운트 시키지 못했다. 그래서 이것저것 검색을 해보니

LVM은 물리적 파티션들을 논리적으로 묶어서 사용하는 것이고, 그러한 볼륨 그룹을 활성화 시켜야
/dev/VolGroup00 식으로 장치가 생기고, 이것을 마운트 시킬 수 있게 된다고 한다.

관련 명령어들은 pvdisplay, vgdisplay, lvdisplay 등이 있다.

pvdisplay - display attributes of a physical volume
vgdisplay - display attributes of volume groups
lvdisplay - display attributes of a logical volume

[참고 : http://kldp.org/node/60097]



man -k pv 중 발췌
pvchange             (8)  - change attributes of a physical volume
pvcreate             (8)  - initialize a disk or partition for use by LVM
pvdisplay            (8)  - display attributes of a physical volume
pvmove               (8)  - move physical extents
pvremove             (8)  - remove a physical volume
pvresize             (8)  - resize a disk or partition in use by LVM2
pvs                  (8)  - report information about physical volumes
pvscan               (8)  - scan all disks for physical volumes

man -k vg 중 발췌
vgcfgbackup          (8)  - backup volume group descriptor area
vgcfgrestore         (8)  - restore volume group descriptor area
vgchange             (8)  - change attributes of a volume group
vgck                 (8)  - check volume group metadata
vgconvert            (8)  - convert volume group metadata format
vgcreate             (8)  - create a volume group
vgdisplay            (8)  - display attributes of volume groups
vgexport             (8)  - make volume groups unknown to the system
vgextend             (8)  - add physical volumes to a volume group
vgimport             (8)  - make exported volume groups known to the system
vgmerge              (8)  - merge two volume groups
vgmknodes            (8)  - recreate volume group directory and logical volume special files
vgreduce             (8)  - reduce a volume group
vgremove             (8)  - remove a volume group
vgrename             (8)  - rename a volume group
vgs                  (8)  - report information about volume groups
vgscan               (8)  - scan all disks for volume groups and rebuild caches
vgsplit              (8)  - split a volume group into two

man -k lv 중 발췌
lvchange             (8)  - change attributes of a logical volume
lvconvert            (8)  - convert a logical volume between linear and mirror
lvcreate             (8)  - create a logical volume in an existing volume group
lvdisplay            (8)  - display attributes of a logical volume
lvextend             (8)  - extend the size of a logical volume
lvm                  (8)  - LVM2 tools
lvm.conf [lvm]       (5)  - Configuration file for LVM2
lvmchange            (8)  - change attributes of the logical volume manager
lvmdiskscan          (8)  - scan for all devices visible to LVM2
lvmdump              (8)  - create lvm2 information dumps for diagnostic purposes
lvreduce             (8)  - reduce the size of a logical volume
lvremove             (8)  - remove a logical volume
lvrename             (8)  - rename a logical volume
lvresize             (8)  - resize a logical volume
lvs                  (8)  - report information about logical volumes
lvscan               (8)  - scan (all disks) for logical volumes

'프로그램 사용 > LVM' 카테고리의 다른 글

lvm as ssd cache  (0) 2022.02.14
LVM 관리  (0) 2019.03.05
애증의.. LVM? centos 기본값 설치에서 변형했더니...  (0) 2019.03.05
lvm raid  (0) 2019.01.15
Posted by 구차니