분류가 모호한 글2008. 12. 22. 22:55
Here is a much faster algorithm in C/Java language :

    long bin2gray(long n)
    {
        long idiv;
        idiv = n >> 1;
        n ^= idiv;
        return n;
    }


 2-bit Gray code

00
01
11
10

3-bit Gray code

000
001
011
010
110
111
101
100
 4-bit Gray code

0000
0001
0011
0010
110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000


[출처 : http://en.wikipedia.org/wiki/Gray_code]


BCD -> Gray code

0011
0    - 첫자리는 그대로
 0   - 현재 자리의 앞자리와 XOR
  1  - 현재 자리의 앞자리와 XOR
   0 - 현재 자리의 앞자리와 XOR

[출처 : http://iitech.shingu.ac.kr/~nsbaek/from_ns/comp/gray.htm]

'분류가 모호한 글' 카테고리의 다른 글

확장자 sgm  (2) 2009.04.03
mp3 ID3 tag  (0) 2009.04.02
MD(Mini Disc) / UMD(Univeral Media Disc)  (0) 2009.03.03
이미지 포맷별 차이점  (8) 2009.02.24
불 대수(Boolean Algebra)  (4) 2008.12.19
Posted by 구차니
Linux2008. 12. 22. 12:02
-rwxr-xr-x 1 root root   76400 Jul  5  2007 libresolv-2.5.so
lrwxrwxrwx 1 root root      16 Apr 11  2008 libresolv.so.2 -> libresolv-2.5.so
-rwxr-xr-x 1 root root   44060 Jul  5  2007 librt-2.5.so
lrwxrwxrwx 1 root root      12 Apr 11  2008 librt.so.1 -> librt-2.5.so

심볼릭 링크를 보는데 의구심이 생겼다.

1. 어떻게 심볼릭 링크는 저장이 되는지
2. libresolv-2.5.so면 16글자인데, 그럼 null 포함하면 17byte인데 왜 파일 사이즈가 16인가?

/usr/share/file/magic 파일을 보면
 9280 # lnk files windows symlinks
 9281 0       string  \114\000\000\000\001\024\002\000\000\000\000\000\300\000\000\000\000\000\000\106        MS Windows shortcut
 라는 내용이 있는데, file 하면 나오는

lrwxrwxrwx  1 morpheuz dev      7 Dec 22 11:47 tt -> err.log
[morpheuz@dev stbmw]$ file tt
tt: symbolic link to `err.log'

file 결과에서 나온 "symbolic link t"o 라는 메시지는 magic 파일에서 검색되지 않는다.

그리고 readlink() / readlink 라는 녀석도 존재 하는데
이녀석이 심볼릭 링크의 실제 내용을 읽어 주는 녀석이라고 한다.
READLINK(1)                      User Commands                     READLINK(1)

NAME
       readlink - display value of a symbolic link

SYNOPSIS
       readlink [OPTION]... FILE

DESCRIPTION
       Display value of a symbolic link on standard output.

       -f, --canonicalize
              canonicalize  by  following every symlink in every component of the given name recursively; all but the
              last component must exist

       -e, --canonicalize-existing
              canonicalize by following every symlink in every component of the given name  recursively,  all  compo-
              nents must exist

       -m, --canonicalize-missing
              canonicalize  by  following  every  symlink  in  every component of the given name recursively, without
              requirements on components existence

       -n, --no-newline
              do not output the trailing newline

       -q, --quiet,

       -s, --silent
              suppress most error messages

       -v, --verbose
              report error messages

       --help display this help and exit

       --version
              output version information and exit
근데.. 해보니 머.. ls -l 이랑 별 차이도 없는데 -ㅁ-!
Posted by 구차니
모종의 음모/Notepad22008. 12. 22. 00:57

프로젝트 설정에서 기본 값으로는 PlatformSDK의 include를 사용하지 않기 때문에
Platform SDK를 설치 한다고 해서 에러가 사라지는 것은 아닌 듯 하다.

아래 글을 읽다가 문득 Platform SDK의 경로에 대해서 떠오르게 되었고, 프로젝트 설정에서
어떤 곳에도 include를 설정해 놓은곳이 없었다는 점이 떠올랐다.

[발견 : http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/0300699f-4f0d-46dc-9c47-c4f5f0a2356b]

그리고 나머지 에러는 undefined 에러 이므로.. 오리지널 소스와 비교해서 차이점을 보면 어떻게 될 듯 하고,
문제는 Scintilla 에서 선언된 것들을 끌어 오는 문제인데.. 아마도 프로젝트 환경 설정과 컴파일러 버전 차이로
/Wp64 /GS- /GF 이 세가지 옵션을 인식 못하는게 원인이라고 생각이 된다.

Visual C++ 컴파일러 옵션 /GS(버퍼 보안 검사)
[출처 : http://msdn.microsoft.com/ko-kr/library/8dbf701c.aspx]

Visual C++ 컴파일러 옵션 /GF(중복 문자열 제거)
[출처 : http://msdn.microsoft.com/ko-kr/library/s0s0asdt.aspx]



이 페이지에서 다루는 특정 제품:.
Microsoft Visual Studio 2008/.NET Framework 3.5

다음 제품들은 다른 버전에서 다루어 집니다.

이래저래.. 그냥 VC++ 6.0을 쓰지 말아야 하는 건가 ㄱ-


그리고 에러 중에 COLOR_HOTLIGHT 를 찾지 못하는 것이 있는데
이 녀석은 windows.h에서 include 하는 winuser.h에 정의 되어 있다고 한다.

COLOR_HOTLIGHT
26

Color for a hyperlink or hot-tracked item.


Requirements

Minimum supported clientWindows 2000 Professional
Minimum supported serverWindows 2000 Server
HeaderWinuser.h (include Windows.h)
LibraryUser32.lib
DLLUser32.dll

[출처 : http://msdn.microsoft.com/en-us/library/ms724371(VS.85).aspx]


그래서 내 꺼에서 파일을 봤더니..
#if(WINVER >= 0x0500)
#define COLOR_HOTLIGHT          26

헉.. 설마 CODEWIZ 님의 삽질을 유발했던 저 써글넘의 WINVER이 문제인건가 -ㅁ-!
[codewiz님의 삽질기 : http://www.jiniya.net/tt/635]


아무튼.. 소스 상에서는
#define _WIN32_WINNT 0x501 로 선언되어 있는데, 이 경우 컴파일 하면...
Notepad2.exe - 170 error(s), 41 warning(s)

이 녀석이 존재하는
Searching for '#define _WIN32_WINNT 0x501'...
C:\cvsdown\np2src_VC6\src\Dialogs.c(20):#define _WIN32_WINNT 0x501
C:\cvsdown\np2src_VC6\src\Dlapi.c(20):#define _WIN32_WINNT 0x501
C:\cvsdown\np2src_VC6\src\Edit.c(20):#define _WIN32_WINNT 0x501
C:\cvsdown\np2src_VC6\src\Helpers.c(22):#define _WIN32_WINNT 0x501
C:\cvsdown\np2src_VC6\src\Notepad2.c(21):#define _WIN32_WINNT 0x501
C:\cvsdown\np2src_VC6\src\Print.cpp(21):#define _WIN32_WINNT 0x501
C:\cvsdown\np2src_VC6\src\SciWrap.cpp(20):#define _WIN32_WINNT 0x501
C:\cvsdown\np2src_VC6\src\Styles.c(20):#define _WIN32_WINNT 0x501
8 occurrence(s) have been found.
8 녀석에게 일일이
#define WINVER 0x501 을 추가 하면
Notepad2.exe - 75 error(s), 33 warning(s)

우와~ 에러가 100개가 줄었어요 >_< (젠장!)
디버그의 신 : 너에게는 아직 100개가 줄은 것이 아니라 75개의 버그가 남은 것이란다~


잠시 검색을 했더니.. OTL 역시 적당하게 좀 더 게을렀어야 했다.

Visual C++ 2008을 시작하면 Visual C++는 Windows 95, Windows 98, Windows ME 또는 Windows NT를 지원하지 않습니다. WINVER 또는 _WIN32_WINNT 매크로를 이러한 Windows 버전 중 하나에 할당하면 해당 매크로를 수정해야 합니다. 이전 버전의 Visual C++에서 만든 프로젝트를 업그레이드하는 경우 WINVER 또는 _WIN32_WINNT 매크로를 더 이상 지원되지 않는 Windows 버전에 할당하면 해당 매크로와 관련된 컴파일 오류가 발생합니다.

해당 매크로를 수정하려면 헤더 파일에 다음 줄을 추가합니다.

#define WINVER 0x0500
#define _WIN32_WINNT 0x0500

이렇게 하면 Windows 2000 운영 체제를 대상으로 합니다. Windows XP, Windows Server 2003 및 Windows Vista에 대한 유효 값은 각각 0x0501, 0x0502 및 0x0600입니다.

/D 컴파일러 옵션을 사용하여 이 매크로를 정의할 수도 있습니다. 자세한 내용은 /D(전처리기 정의)를 참조하십시오.

[출처 : http://msdn.microsoft.com/ko-kr/library/6sehtctf.aspx]



Platfrom SDK가 설치된 상태의 Visual Studio 6.0의 환경설정이다.
문제는 Win32 Platform에 대해서만 존재하고, Microsfot SDK(platform SDK)에 경로가 잡혀 있음에도 불구하고
제대로 파일을 불러 오지 못한 것으로 보인다.

즉, 가장 위의  MIDL 에서 굳이 추가해줄 필요는 없었고, 위의 WINVER 선언만 컴파일 옵션에서 넣어 주면 되었던 것이다.
Posted by 구차니
모종의 음모/Notepad22008. 12. 21. 23:04
BLUE'nLIVE 님에게 Notepad2 VC++ 6.0 버전용을 받아서 컴파일 하려고

VC++ 6.0 깔고
Visual Studio 6.0 SP6 깔고
Platform SDK 도 깔았는데...


여전한 에러

DWORD_PTR 이란 변수명을 인식 못하고
컴파일 옵션중에 /Wp64 /S 를 인식을 못하는데.. 아직까지 해결 방법을 못찾았다.
Posted by 구차니
Microsoft/Windows2008. 12. 20. 13:31
250기가 하드를 포맷할 일이 있어서 format 명령으로 낑낑대도 되지도 않기에 구글링을 해봤더니
LinkFormatter라는 물건이 나왔다. 다운 받은 곳 조차도 출처 unknown / googling 이라서 써놨으니.. ㄱ-

아무튼 I-O Data inc. 라는 회사의 유틸리티인듯 하고, 그 홈페이지에서는
USB/e-SATA 외장 하드를 제조/판매하는 곳이라는 것 외에는 별다른 다운로드 링크를 발견하지 못했다.

사용법
외장 USB 하드를 꼽고 프로그램을 실행하면 다음-다음-Accept-다음 하면 그냥 알아서 포맷한다.
[사용법 : http://www.ihuf.net/board/view.php?id=download_h300&no=60]


 
(2008년 12월 19일자 네이버 피시그린-카스퍼스키 바이러스 없음)

[I-O DATA : http://www.iodata.com/]



내침김에 왜! windowsXP 에서 FAT32를 대용량 읽을수는 있지만 포맷은 하지 못하게(최고 32GB)로 제한을 했는지
검색을 해봤더니 이거 뭥미 -ㅁ-?

Windows XP의 FAT32 파일 시스템 제한 사항

  • Windows XP 설치 과정에서 FAT32 파일 시스템을 사용하여 32GB보다 큰 볼륨을 포맷할 수 없습니다. Windows XP는 32GB보다 큰 FAT32 볼륨을 탑재하고 지원할 수 있지만(다른 제한 사항이 있음) 설치 중에 포맷 도구를 사용하여 32G보다 큰 FAT32 볼륨을 만들 수 없습니다. 32GB보다 큰 볼륨을 포맷해야 하는 경우 NTFS 파일 시스템을 사용하여 포맷합니다. 또 다른 방법은 Microsoft Windows 98 또는 Microsoft Windows Millennium Edition(Me) 시동 디스크에서 시작하고 디스크에 포함된 포맷 도구를 사용하는 것입니다.

    Microsoft Windows 98 또는 Microsoft Windows Millennium Edition(Me) 시동 디스크를 사용하여 하드 디스크를 포맷하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    255867  (http://support.microsoft.com/kb/255867/KO/ ) Fdisk 도구 및 포맷 도구를 사용하여 하드 디스크의 파티션을 나누거나 다시 나누는 방법
    참고: Windows XP 설치 과정에서 32GB보다 큰 FAT32 파티션을 포맷하려고 하면 설치 과정의 끝부분에서 포맷 작업이 실패하고 다음과 같은 내용의 오류 메시지가 나타날 수 있습니다.
    논리 디스크 관리자: 볼륨 크기가 너무 큽니다.
  • MS-DOS, Microsoft Windows 95의 원본 버전 및 Microsoft Windows NT 4.0과 이전 버전은 FAT32 파티션을 인식하지 않으므로 FAT32 볼륨에서 시작할 수 없습니다.
  • FAT32 파티션에서 (2^32)-1바이트보다 큰 파일(이 파일은 4GB보다 1바이트 작음)을 만들 수 없습니다.
  • FAT32 파일 시스템에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    310525  (http://support.microsoft.com/kb/310525/KO/ ) Windows XP에서 FAT32 파일 시스템에 대한 설명
    FAT32 볼륨에서 NTFS로 변환하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    307881  (http://support.microsoft.com/kb/307881/KO/ ) HOWTO: Windows XP에서 FAT16 또는 FAT32 볼륨을 NTFS로 변환
    [출처 : http://support.microsoft.com/kb/314463]


    Windows XP에서 FAT32 파일 시스템에 대한 설명
    Windows XP에는 FAT 파일 시스템의 업데이트된 버전이 들어 있습니다. 이 업데이트된 버전을 FAT32라고 합니다. FAT32 파일 시스템에서는 4KB의 작은 기본 클러스터 크기를 사용할 수 있고 2GB보다 큰 EIDE 하드 디스크 크기를 지원할 수 있습니다.

    다음과 같은 사항에 유의하십시오.
    • Microsoft Windows 2000, Windows Millennium Edition, Windows 98 및 Windows 95 OSR2 또한 FAT32 파일 시스템을 지원합니다.
    • Microsoft Windows NT 4.0은 FAT32 파일 시스템을 지원하지 않습니다.

      Windows NT 4.0에서 지원되는 파일 시스템에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
      100108  (http://support.microsoft.com/kb/100108/KO/ ) FAT, HPFS 및 NTFS 파일 시스템의 개요

    지원 제한 사항

    FAT32 볼륨에 설치할 수 없거나, 파일을 제대로 저장하거나 읽지 못하는 레거시(이전) 프로그램의 경우 프로그램 제조업체에 문의하십시오.

    참고: FAT32 파일 시스템이 하드 디스크를 최대 2테라바이트 크기까지 지원하지만 해당 시스템의 기본 입/출력 시스템(BIOS) INT13 인터페이스의 제한 사항으로 인해 일부 하드 디스크는 7.8GB보다 큰 부팅 가능한 파티션을 포함하지 못할 수 있습니다. 해당 시스템의 BIOS가 업데이트된 INT13 확장을 지원하는지 확인하려면 하드웨어 제조업체에 문의하십시오.

    Windows XP에서 ATAPI 디스크 드라이브에 대한 48비트 논리 블록 주소 지정 지원을 설정하는 방법

    본 문서에서는 현재의 137GB 한도보다 크게 하드 디스크 용량을 늘릴 수 있는 ATA Packet Interface(ATAPI) 디스크 드라이브에 대한 Windows XP 서비스 팩1(SP1) 48비트 논리 블록 주소 지정(LBA) 지원에 대해 설명합니다.

    참고 Windows XP SP1을 실행하지 않으면 Windows XP에서 48비트 LBA를 지원하지 않습니다. 48비트 LBA 지원을 사용하려면 Windows XP SP1 이상을 적용해야 합니다. Windows XP Media Center Edition 및 Windows XP Tablet PC Edition에는 SP1이 포함되어 있습니다.

    Windows XP의 최신 서비스 팩에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
    322389  (http://support.microsoft.com/kb/322389/ ) 최신 Windows XP 서비스 팩을 구하는 방법


    Posted by 구차니
    개인의 투정거림이니 듣기 싫으신분은 뒤로가기를 눌러주세요




    나는 능력없는 3년차 임베디드 개발자이다.
    조금 더 세분화 하자면 C언어 기반에 Linux 위성 셋탑 개발 6개월과, 총 합 2년의 3년차 개발자이다.
    시간이 흐르면 뭐든지 잘 할 것만 같았지만 시간이 갈 수록 이것 저것 고려 할게 많아 지면서
    갈수록 실력은 오히려 줄어드는 것 만 같고, 오히려 예전보다 못 만들어 내는 것 같다.

    개발자에게 있어서 가장 큰 문제는 대화가 아닐까 싶긴하지만,
    막내라는 이유로 이리저리 불려 다니고, 막내라서 실력도 없고(이런 변명은 싫지만) 그런데
    내 시간까지 빼앗겨 가면서 이것저것 하고 내일도 해야 하니 결국에는 내 시간을 쪼개고 소비하면서
    회사일을 해야 한다. 아니 내가 쓸데 없이 오지랍이 넓어서 일지도 모르겠지만...

    매번 일을 하면서 느끼는 건
    "절이 싫으면 중이 떠나라. 하지만 떠날 수 없다면 인내하라." 이다.
    아직 어중간한 경력에 능력은 없고 실력도 없고 내세울 경력도 없는 나로서는
    매우 솔찍하게 말하자면 지금 이 곳에서 이런 대우를 받고 있는 것만으로도 감지덕지 해야 하지만
    사람 마음이란, 더러워서 때려치우고 조금 더 편한곳으로(지금은 솔찍히 마음이 편하면 좋겠다) 가고 싶은데
    경제 사정은 지랄 맞고 앞으로 MBLee 께서 잃어버린 10년을 위해서 1년 만에 10년을 물려 주시는 바람에
    앞으로 10년은 다시 힘들어 질 것이라, 이직을 위한 경력을 위해 일단은 눌러 앉아 있지만..
    무슨 경력이 깡패라고 에효...



    "닥치고 내말들어. 우리는 달려야 해. 바보놈이 될 수 없어."
    라는 말이 나에게는 환청으로 왱왱 거리면서 다르게 들려온다.
    넌 닥치고 내가 시키는대로만 만들면돼. 왜 쓸데 없이 다른 것들과 다르게 만들려고 고생만 하냐?
    난 그래도 너보다 오래 했고 다른 제품들도 많이 봐왔고 최소한 다른 것들과 같이 만들면 마이너스는 아니야
    그러니까 넌 내가 주문하는데로 만들기만 하면 돼.

    평소에는 자기 소신껏 행동하라면서 아이디어를 내라는 말을 하면서
    정작 요구사항을 반영해서 개발하고 몇가지 내가 만들면서 이게 더 좋겠다 생각하고 놔둔 부분이나 만든 것들은
    모두 다르니까 쓸모 없어 저것과 같이 만들면 돼. 라는 식으로 무조건 퇴짜를 놔버린다.

    때리는 시어머니 보다 말리는 시누이가 더 밉다고.
    뒤에서 침묵으로 일관하시는 소장님도 조금은 밉긴하지만,

    개발자 역시 이런 만행에 대응하기 위해서
    영업이나 사장이 뱉은 말은 항상 Change.log로 저장하고 녹음을 해놔야 한다 라는 생각마저 든다.
    아니.. Changlog.xls을 만들어서 오늘부터 작성중이다.


    가끔은 이런 생각도 든다.
    1. 그렇게 잘 알고 그러면 댁이 프로그램 배워서 만드시지?
    2. 그렇게 세부적으로 잘 알면 확실하게 문서로 러프 이미지라도 그려서
       아니 state diagram 까지는 바라지도 않으니  말로만 그렇게 하지 말고
       확실한 시나리오와 함께 문서로 주시지?


    평소에는 머 다크호스니, 너 없으면 회사가 안 돌아 간다니 말은 하면서
    과연 내가 없는 술자리에서 얼마나 나 때문에 개발이 지연되서 매출을 못 올리네 하면서
    까대고 있을지 참으로 걱정이다.


    솔찍히 나로 인해서 상당히 시간이 지연이 생기고 있는건 사실이다.
    스케쥴을 맞추지 못하는건 대한민국의 프로 개발자로서는 치명적이고 변명의 여지가 없다.


    그래도 변명을 하자면,
    커뮤니케이션 부재로 인한 실시간 요구사항 변동과
    (어떻게 된 게 볼 때마다 원하는게 달라져? 최소한 여기까지란게 있어야지 원하는대로 바꾸어 주면
    또 거기서 변동을 시켜달라고 하고 언제 끝내?)

    먼가 조금은 개선을 하려고 노력을 해서 만들면 이상한 소리로 기운 쭉 빼놓고
    (내가 말했자나. 다른 셋트들도 좀 보고 만들라고. 다른 셋트보다는 낫지 않아도 최소한 비슷하게는 만들어야지
    라고 하는 말은 실력도 없는데 멀 새로 만들어 그냥 저거 대로 만들어! 라고 밖에 안들려)

    "모 회사의 차장은 입사하고 15년이 넘었는데 12시 이전에 퇴근한게 10번도 안된대."
    "자식 없어요?"
    "있지"
    "우리도 조금은 더 그렇게 열심히 해야해"
    열심히 하는 모습. 다 좋은데 도대체 애아빠가 일에만 빠져서 12시 까지 퇴근도 안하고 맨날 회사에만 있으면
    아빠가 아니라 돈만 물어 오는 기러기. 그 이상도 이하도 아닌데 그렇게 되는게 좋아서 당신은 집에도 안가고
    맨날 늦게 까지 퇴근도 안하고 놀고 있으면서 회사에서 바둑하고 그러시나? 당신이 그렇게 앉아 있으면 나 같은
    말단은 눈치 보여서 퇴근도 못하니까 제발 일찍 좀 퇴근하고 솔찍히 애보기 싫어서 그냥 회사 있는거니까
    먼저 퇴근들 하세요 라고 하던가!


    그래도 지금의 경력과 경험을 바탕으로
    다음부터는 회사를 구할때는
    "개발과 영업이 확실하게 분리된 회사"
    "기술 출신 사장인 회사 이거나 혹은 영업 출신 사장이 아닌 회사"
    를 구해야 한다는 점을 뼈에 새기고, 그렇게 실천을 해야 겠다.


    어디서 주워들어서 그걸 써보지도 않고 '~가 있다고 하더라' 라고 이야기 하는 사람이 가장 위험한 사람이다.
    Posted by 구차니
    Linux2008. 12. 19. 20:05
    man find

           -type c
                  File is of type c:

                  b      block (buffered) special

                  c      character (unbuffered) special

                  d      directory

                  p      named pipe (FIFO)

                  f      regular file

                  l      symbolic link; this is never true if the -L option or the -follow option is in effect,
                         unless  the symbolic link is broken.  If you want to search for symbolic links when -L
                         is in effect, use -xtype.

                  s      socket

                  D      door (Solaris)


    'ls -l'을  실행하면
    $ ll
    total 1922
    drwxr-xr-x   2 root root    4096 Nov 15 04:17 bin
    drwxr-xr-x   4 root root    1024 Apr 11  2008 boot
    drwxr-xr-x  12 root root    3900 Nov 14 13:07 dev
    drwxr-xr-x 101 root root   12288 Dec 15 04:15 etc
    drwxr-xr-x  10 root root    4096 Aug 19 13:59 home
    drwxr-xr-x  14 root root    4096 Apr 11  2008 lib
    drwx------   2 root root   16384 Apr 10  2008 lost+found
    drwxr-xr-x   2 root root    4096 Nov 14 13:07 media
    drwxr-xr-x   2 root root       0 Nov 14 13:07 misc
    drwxr-xr-x   2 root root       0 Nov 14 13:07 mnt
    drwxr-xr-x   2 root root       0 Nov 14 13:07 net
    drwxr-xr-x   2 root root    4096 Jun 19  2008 nfsroot
    drwxr-xr-x   3 root root    4096 May 29  2008 opt
    dr-xr-xr-x 195 root root       0 Nov 14 13:06 proc
    drwxr-x---  29 root root    4096 Dec 17 11:00 root
    drwxr-xr-x   2 root root   12288 Apr 11  2008 sbin
    drwxr-xr-x   2 root root    4096 Apr 10  2008 selinux
    drwxr-xr-x   2 root root    4096 Oct 11  2006 srv
    drwxr-xr-x  12 root root       0 Nov 14 13:06 sys
    drwxr-xr-x   2 root root    4096 Dec 17 13:30 tftpboot
    drwxrwxrwt  16 root dev    90112 Dec 19 20:01 tmp
    drwxr-xr-x  15 root root    4096 May 30  2008 usr
    drwxr-xr-x  24 root root    4096 Apr 10  2008 var

    이런식으로 퍼미션과 파일의 종류가 출력이 된다.
    아무튼 일반적으로 보이는 녀석들은

    - 일반 파일
    b Block device
    c Character device
    d Directory
    l symbolic Link

    인데 드물게 보이는 녀석들이 존재 한다.
    prw------- 1 morpheuz dev        0 Jul 15 13:21 initctl
    crw-rw---- 1 morpheuz dev  61,   0 May 30  2008 lirc
    srwxr-xr-x 1 morpheuz dev        0 Oct 20 19:57 lircd
    brw-rw---- 1 morpheuz dev   7,   0 May 30  2008 loop0

    이 녀석들의 의미는 역설적이게도.. find에서 찾아 냈다.

    p name Pipe
    s Socket


    Posted by 구차니
    분류가 모호한 글2008. 12. 19. 09:56
    무선설비기사 자격증 공부 하는데 머이리 잡다하게 많이 알아야 볼 수 있는지 ㄱ-

    아무튼 불 대수는 우리가 사용하는 10진수에서 적용되는 대수와는 조금 다르다



    연산자

    AND / OR / XOR / NOT / NAND / NOR / NXOR 이 있으며 아래와 같은 진리표를 가진다.

    AND

    A

    B

    O

    0

    0

    0

    0

    1

    0

    1

    0

    0

    1

    1

    1

    OR

    A

    B

    O

    0

    0

    0

    0

    1

    1

    1

    0

    1

    1

    1

    1

    XOR

    A

    B

    O

    0

    0

    0

    0

    1

    1

    1

    0

    1

    1

    1

    0

    NOT

    A

    O

    0

    1

    1

    0

    NAND

    A

    B

    O

    0

    0

    1

    0

    1

    1

    1

    0

    1

    1

    1

    0

    NOR

    A

    B

    O

    0

    0

    1

    0

    1

    0

    1

    0

    0

    1

    1

    0

    NXOR

    A

    B

    O

    0

    0

    1

    0

    1

    0

    1

    0

    0

    1

    1

    1

    표 모양은.. 티스토리에게 항의를 하도록.. OTL


    표기법
    A AND B = AB = A·B
    A OR B = A + B
    NOT A = A' = Ā

    공리
    A+0=A
    A+1=1
    A·0=0
    A·1=A
    A+A'=1
    A·A'=0
     A+AB=A
    ->  A(1+B)
    ->  A(1)
    ->  A

     X+X'Y=X+Y
    ->  X'(X'Y)'             <- 드 모르간 법칙 X'Y를 묶어서 적용
    ->  X'(X+Y')
    ->  X'X+X'Y'
    ->  0+X'Y'               <- 드 모르간 법칙 적용
    ->  X'Y'                  <- 드 모르간 법칙 적용
    ->  X+Y


    교환법칙
    A+B=B+A
    AB=BA

    분배법칙
    A(B+C)=AB+AC

    드 모르간 법칙
    A+B = (AB)'
    (AB) = (A+B)'

    연산자 우선 순위
    () > NOT > AND > OR


    '분류가 모호한 글' 카테고리의 다른 글

    확장자 sgm  (2) 2009.04.03
    mp3 ID3 tag  (0) 2009.04.02
    MD(Mini Disc) / UMD(Univeral Media Disc)  (0) 2009.03.03
    이미지 포맷별 차이점  (8) 2009.02.24
    gray code  (0) 2008.12.22
    Posted by 구차니
    Microsoft/Windows2008. 12. 18. 14:04
    회사에 새로 오신분이 계셔서 TG 에버라텍 4600 을 샀는데...

    오피스 깔고 패치 하고 나서 프린터 잡을려고 SAMBA 서버에 접속해서 파일을 복사 하는데

    갑자기 블루 스크린...


    이거 뭥미 -ㅁ-!?






    오늘 다시 출근 하셔서 하시는 말씀이

    "애들이 어제 쥬니버에서 게임하고 그랬는데 갑자기 블루 스크린이 떳다"



    그래서 에버라텍과 비스타 블루 스크린을 검색하니 의외로 도움 되는 내용은 없었다.

    아무튼 dump 파일을 보니 두개(덧. c:\windows\minidump 가 crash dump 파일 기본 위치임)

    하나는 어제 발생한 것이라서 파일 명이 Mini121708-01.dmp인데 Mini112808-01.dmp는 뭐지 -ㅁ-?
    최초 설치 하고도 삼보에서 한번 죽었는데 그걸 그냥 판건가? -ㅁ-!


    아무튼 덤프 파일은 WinDbg 를 이용하여 분석하면 된다고 해서 MS 사이트에서 받아서 돌렸는데
    결과는

    Mini112808-01.dmp
    Probably caused by : dxgkrnl.sys ( dxgkrnl+3d8b )

    Mini121708-01.dmp
    Probably caused by : NETIO.SYS ( NETIO+835b )


    아마도 2008년 11월 28일은 삼보에서 제조 하면서 설치 중에 발생한 듯 하고,
    이름만 봐서는 directX 관련 오류 인데..

    2008년 12월 17일 오류는 조금 검색을 더 해보니
    NETIO.SYS 관련 hotfix가 있다고 한다. [hotfix download]
    [출처 : http://forum.soft32.com/windows/Netio-SYS-Errors-ftopict341619.html]


    결론은.. 뽑기 운이 안 좋은 것 일려나..




    Posted by 구차니
    Programming/C Win32 MFC2008. 12. 18. 13:41
    아래는 frhed 프로그램의 레지스트리 등록 부분의 소스이다.

        case IDM_CONTEXT:
            if (MF_CHECKED == GetMenuState(hMenu, IDM_CONTEXT, 0))
            {
               //WinNT requires the key to have no subkeys
                RegDeleteKey(HKEY_CLASSES_ROOT, "*\\shell\\Open in frhed\\command");
                RegDeleteKey(HKEY_CLASSES_ROOT, "*\\shell\\Open in frhed");
            }
            else
            {
                HKEY key1;
                LONG res = RegCreateKey(HKEY_CLASSES_ROOT,
                    "*\\shell\\Open in frhed\\command",
                    &key1);
                if (res == ERROR_SUCCESS)
                {
                    char cmd[MAX_PATH];
                    int len = sprintf(cmd, "%s %%1", _pgmptr);
                    RegSetValue(key1, NULL, REG_SZ, cmd, len);
                }
            }
            break;
        case IDM_UNKNOWN:
            if (MF_CHECKED == GetMenuState(hMenu, IDM_UNKNOWN, 0))
            {
                HKEY hk;
                //WinNT requires the key to have no subkeys
                RegDeleteKey(HKEY_CLASSES_ROOT, "Unknown\\shell\\Open in frhed\\command");
                RegDeleteKey(HKEY_CLASSES_ROOT, "Unknown\\shell\\Open in frhed");
                if (ERROR_SUCCESS == RegOpenKey(HKEY_CLASSES_ROOT, "Unknown\\shell", &hk))
                {
                    RegDeleteValue(hk, NULL);
                    RegCloseKey(hk);
                }
            }
            else
            {
                HKEY key1;
                LONG res = RegCreateKey(HKEY_CLASSES_ROOT,
                    "Unknown\\shell\\Open in frhed\\command",
                    &key1);
                if (res == ERROR_SUCCESS)
                {
                    char cmd[MAX_PATH];
                    int len = sprintf(cmd, "%s %%1", _pgmptr);
                    RegSetValue(key1, NULL, REG_SZ, cmd, len);
                }
            }
            break;
        case IDM_DEFAULT:
            if (MF_CHECKED == GetMenuState(hMenu, IDM_DEFAULT, 0))
            {
                HKEY hk;
                if (ERROR_SUCCESS == RegOpenKey(HKEY_CLASSES_ROOT, "Unknown\\shell", &hk))
                {
                    RegDeleteValue(hk, NULL);
                    RegCloseKey(hk);
                }
            }
            else
            {
                RegSetValue(HKEY_CLASSES_ROOT, "Unknown\\shell", REG_SZ, "Open in frhed", 13);
            }
            break;


    notepad2의 아쉬운점이 컨텍스트 메뉴를 지원하지 않는 다는 점이었는데, 이 부분을 응용하여 적용하면
    notepad2의 효용이 200배는 증가 할 듯 하다.
    Posted by 구차니