프로그램 사용2009. 3. 6. 16:09
UFO:AI 번역을 하다 보니 이넘의 죽일넘의 영어 때문에, 무료 영어사전을 찾게 되었다.
구글에서 검색해보니 두개 정도가 눈에 띄어서 일단 사용해 보았다.

두가지 전부 기본값으로 'ctrl-우클릭'으로 자동 단어 검색을 지원한다.


WordWeb은 offline으로 사용이 가능한 사전이다.
Wikipedia의 경우 인터넷이 될 때 사용하면되고, 무료 버전의 광고 내용은 다음과 같다.

Definitions and synonyms
Proper nouns
Related words
Pronunciations
150 000 root words
120 000 synonym sets
Fixed web reference tabs

먼지는 몰라도.. 생각보다 단어수가 많다.
About에 프린스턴 대학이 어쩌구 저쩌구 라고 되어 있다. 자체제작 사전인 듯 하다.
2009년 3월 6일 기준, 최신버전의 인스톨러 크기는 7.44MB (7,803,496 바이트)






LINGOES는 번역/사전 프로그램이다
사전은 에센셜 영어사전을 내장하고 있다. (우리가 아는 그 에센셜인가 -ㅁ-?)
번역의 경우 구글번역을 통하고, 단어 검색시에도 구글의 사전 검색을 끌어온다. portable 버전을 제공하는것이 장점이다.
WordWeb에 비하면 상당히 깔끔하고 한글화도 부분적으로 되어있다(메뉴)



ctrl-우클릭시 팝업으로 뜬다.

2009년 3월 6일 기준, 최신버전의 인스톨러 크기는 4.54MB (4,767,383 바이트)
premium dictionary를 다운받아 설치 가능하다. 잘 찾아 보면 한영/영한 사전도 있다.
[사전 다운로드 : http://www.lingoes.net/en/dictionary/]



결론 :
WordWeb은 기본 단어가 풍부하고, Lingoes는 빈약하다,
예를들어 sigma라는 단어조차도 Lingoes 기본 단어 사전에는 나오지 않는다.

하지만 UI라던가 편의성에서는 Lingoes가 앞선다.
예를들어, Ctrl-우클릭의 경우 WordWeb은 프로그램을 다시 띄워서 보여주지만(가뜩이나 UI도 안이쁜데 ^^;)
Lingoes는 다른 UI의 팝업을 띄워준다.

그리고 윈도우 시작시 자동실행은 WordWeb의 경우에는 강제적이고, 끄는 옵션이 존재하지 않는다.
Lingoes는 설정메뉴에 끄는 옵션이 존재하는데 비해서, WordWeb의 이러한 차이는 상당히 아쉬움으로 남는다.

결론만 이야기 하자면, Lingoes에 여러가지 사전을 다운 받아 사용하는것이 좋을 듯 하지만,
이넘의 다운로드 링크가 잘 안열리는 문제가 있기 때문에, 조금 번거로운 감이 없진 않다.


[WordWeb : http://wordweb.info/]
[lingoes : http://www.lingoes.net/]
Posted by 구차니
CVS만 2년 정도 사용했다.
물론 branch 까지는 사용해보지 않았고,
주로 사용하던 기능은 history와 tag 뿐이었다.

아무튼 이렇게 CVS만 쓰다가 SVN을 사용해봤는데,
처음 사용할때의 어색함인지, 상당히 다른 느낌이 든다.

일단 CVS는 module 단위였는데 SVN은 그러한 구분이 없다는 사실.
어쩌면 구형 TortoiseCVS를 사용해서 그럴지도 모르겠다는 생각이 든다.
신형 TortoiseCVS의 경우에는 물론 module단위로 만들기는 하지만,
module 목록을 combobox가 아닌 listbox로 보여 주기 때문에, 기존 버전보다는
확연히 구분되어 있다는 느낌이 적게 들었다.

하지만, SVN은 이러한 '프로젝트'의 느낌보다는, 이력이 남는 '파일 저장소'라는 느낌이 강하게 든다.
(아마 파일 이동의 편의성과, checkout시 URL로 입력하는 특성때문일 것이다)


CVS 구버전 UI

CVS 신버전 UI

Posted by 구차니
Linux2009. 3. 5. 20:21
$ tree -d /usr/share/fonts/korean/
/usr/share/fonts/korean/
|-- TrueType
`-- misc

TrueType의 아래에는 ttf 폰트가 있고, 윈도우에서도 쓸수 있다.
(다르게 말하면 윈도우용 트루타입 폰트를 이곳에 복사하면 리눅스에서도 사용할 수 있다는 의미이다)

현재 리눅스(FC6 기준)에는 백묵폰트가 기본으로 들어 있으며

백묵돋음
백묵굴림
백묵바탕
백묵헤드라인

네가지가 포함되어 있다.

-rw-r--r-- 1 root root 13939436 Jul 12  2006 batang.ttf
-rw-r--r-- 1 root root  3066060 Jul 12  2006 dotum.ttf
-rw-r--r-- 1 root root      560 Jan 21 07:13 fonts.dir
-rw-r--r-- 1 root root      560 Jan 21 07:13 fonts.scale
-rw-r--r-- 1 root root 10385096 Jul 12  2006 gulim.ttf
-rw-r--r-- 1 root root  1203464 Jul 12  2006 hline.ttf

[백묵폰트 공식 : http://font21.com/]
Posted by 구차니
개소리 왈왈2009. 3. 5. 18:38

y = sin(pi + x) 그래프인데?

'개소리 왈왈' 카테고리의 다른 글

멘토라는 것의 의미  (6) 2009.03.13
250 근접!  (2) 2009.03.10
간만에 MD를 꺼내 봤습니다.  (2) 2009.03.04
8K의 행복  (6) 2009.02.28
문득 세상이 많이 변했음을 느낀다.  (4) 2009.02.27
Posted by 구차니
UFO:AI 한글화 프로젝트 참여중인데, SVN의 사용은 처음이라 이래저래 적응이 안된다.
가장 큰 것으로는
CVS의 history라는 것이 SVN에서는 Show Log로 바뀌었다는 것이다.
그리고 SVN은 하나의 커밋이나 수정사항이 있을때, 전체의 리비전이 변경되므로,
파일 각각이 아닌 SVN repository 전체에 대한 Log가 존재하게 된다
(사용이 미숙해서 그럴지도 모르지만 TortoiseCVS에서는 파일 단위로 밖에 보지 못했다)

Context-menu 이다. 주로 사용하는 것은
프로젝트 전체의 업데이트인 SVN Update와
프로젝트 전체의 수정 업로드인 SVN Commit 그리고
프로젝트의 변경사항을 볼수 있는 Show Log 이다.

위의 이미지는 프로젝트 전체의 Show Log 결과이다.
프로젝트에서 추가 / 삭제된 파일등과 전체의 Revision이 표기된다.

자막 번역 파일 하나의 내역이다. 자세히 보면 알겠지만, Revision이 1씩 증가하지 않는다.
리비전에서 변동사항이 있을 수도 있고, 없을 수도 있기 때문에, 파일을 Show Log 하면
위와 같이 나오지 않는 사항들을 볼 수 있다.
Posted by 구차니
문득 꽤 나 오래전에 달았던 리플에 대한 리플이 달렸길래 확인하러 가봤다.
엄청난 장문이었다. [링크 : http://offree.net/entry/ROH-MooHyun-My-President-2#comment46551]

요지만 말하면, 친일파는 숙청해야만 한다라는것이다.
내가 편 논리가 마치 친일파가 자신의 존재를 희석하기 위한 논리 같다는 이야기가 곁들어져 있었다.


너무 이상적으로 생각을 하는건지 모르겠지만,
인간이 다른 인간에게 벌을 주고, 사형을 집행하고, 내가 타인보다 우월하니 내 의견이 옳다 라고 강요하는 것들
이런것들이 모두 너무나 무의미하고 우습다고까지 생각된다.

내가 보는 시점을 너무 넓혔나?


물론 대한민국에서 태어나 대한민국에서 살아가는 대한민국 국민으로
역사를 배웠다면, 일본에 대한 악감정(이라고 표현할 정도로 강한)이 없을리가 없다.
대한민국 사람과 일본인/그리고 일본에 기생한 한국놈들 이라는 구도로는
사지를 찢어 까마귀가 파먹게 해도 속이 풀리지 않아 3대를 멸하고 싶다.
이런 치욕적인 역사에 동참을 하고, 지금에 와서는 배를 불리고 살고 있으니 말이다.

하지만, 그들 역시(물론 친일파의 논리일지도 모르지만) 대한민국의 사람이고, 살아있는 인간으로
(인간의 조건이 있나라고 할지도 모르지만), 그리고 가족이 있는 한집의 가장으로(어머니던,아버지던) 생각을 하면
그들역시 살고자 그렇게 했을뿐이고, 단지 다른 사람들 보다 쉽게 협박에 굴했을 뿐이다.
일부에는 물론 기회로 삼아 일본인 행세를 하며 더 잘살아 보겠다고 생각을 해서 일본의 앞잡이가 되어 행동했겠지만
총부리를 들이밀며 밥내놔해서 준 소시민들 마저도 그렇다면
그들의 논리에는 친일행적을 했고, 죽어야 하지 않을까?

어떻게 보면 법의 딜레마와 비슷할수도 있겠지만, 먼가 석연찮은 느낌이 드는건 왜일까?
지금의 궁핍한(라고 느끼게 강요하는 미디어) 경제사정에 신경이 곤두서서 누군가를 적으로 만들어야 살아있을 수 있기에
이 사람들마저도 사지로 몰아갈려는 건 아닐까? 이런 생각이 든다.


문득, 이런 생각이 든다.
보편적으로 사람들이 분노해하는 일에 대해서 분노하지 않으면,
동질감을 느끼지 못하고 전혀 다른 사람 혹은 적으로 생각하는게 아닐까 싶다.

가슴은 뜨겁게, 머리는 차갑게.
전투에서 이긴다고 전쟁이 승리하는 것은 아니다.

그자리에서 분노한다고 달라지는 것도 아니고, 분노한 움직임은 피를 부를뿐이다.
그리고, 다수결이 항상 옳은것도 아니다.
많은 사람들이 보편적으로 분노한다고 해서 반드시 분노를 따라 해야하는 것도 아니다.

핑계? 핑계일수도 있다.
하지만, 분노하지 않아 보이는 사람들이 진정으로 분노하지 않는 것으로 보이는가?
분노를 삭히며 다음 대책을 세우려는 사람들에게 "우리와 같이 왜 분노하지 않냐? 너도 적이냐?" 라고 하는건
코앞의 토끼를 잡기위해 함정으로 뛰어드는 호랑이의 모습이 아닐까 싶다.
Posted by 구차니
typedef unsigned char		u8;
typedef unsigned short		u16;

#define ARABIC_SIN 0
#define ARABIC_END 1
#define ARABIC_1ST 2
#define ARABIC_MID 3

u16 ArabicEncode(u16 *arab, u8 pos, BOOL* stepit, BOOL* is2set)
{
    u16 ucode = 0;
    BOOL nowChar = FALSE;
    switch(*arab)
    {
        // 2개일 경우
        case 0x0622: ucode = 0xFE81; nowChar = TRUE; break;
        case 0x0623: ucode = 0xFE83; nowChar = TRUE; break;
        case 0x0624: ucode = 0xFE85; nowChar = TRUE; break;
        case 0x0625: ucode = 0xFE87; nowChar = TRUE; break;
        case 0x0627: ucode = 0xFE8D; nowChar = TRUE; break;
        case 0x0629: ucode = 0xFE93; nowChar = TRUE; break;
        case 0x062F: ucode = 0xFEA9; nowChar = TRUE; break;
        case 0x0630: ucode = 0xFEAB; nowChar = TRUE; break;
        case 0x0631: ucode = 0xFEAD; nowChar = TRUE; break;
        case 0x0632: ucode = 0xFEAF; nowChar = TRUE; break;
        case 0x0648: ucode = 0xFEED; nowChar = TRUE; break;
        case 0x0649: ucode = 0xFEEF; nowChar = TRUE; break;

        // 4개 일경우
        case 0x0626: ucode = 0xFE89; nowChar = FALSE; break;
        case 0x0628: ucode = 0xFE8F; nowChar = FALSE; break;
        case 0x062A: ucode = 0xFE95; nowChar = FALSE; break;
        case 0x062B: ucode = 0xFE99; nowChar = FALSE; break;
        case 0x062C: ucode = 0xFE9D; nowChar = FALSE; break;
        case 0x062D: ucode = 0xFEA1; nowChar = FALSE; break;
        case 0x062E: ucode = 0xFEA5; nowChar = FALSE; break;
        case 0x0633: ucode = 0xFEB1; nowChar = FALSE; break;
        case 0x0634: ucode = 0xFEB5; nowChar = FALSE; break;
        case 0x0635: ucode = 0xFEB9; nowChar = FALSE; break;
        case 0x0636: ucode = 0xFEBD; nowChar = FALSE; break;
        case 0x0637: ucode = 0xFEC1; nowChar = FALSE; break;
        case 0x0638: ucode = 0xFEC5; nowChar = FALSE; break;
        case 0x0639: ucode = 0xFEC9; nowChar = FALSE; break;
        case 0x063A: ucode = 0xFECD; nowChar = FALSE; break;
        case 0x0641: ucode = 0xFED1; nowChar = FALSE; break;
        case 0x0642: ucode = 0xFED5; nowChar = FALSE; break;
        case 0x0643: ucode = 0xFED9; nowChar = FALSE; break;
        case 0x0644: ucode = 0xFEDD; nowChar = FALSE; break;
        case 0x0645: ucode = 0xFEE1; nowChar = FALSE; break;
        case 0x0646: ucode = 0xFEE5; nowChar = FALSE; break;
        case 0x0647: ucode = 0xFEE9; nowChar = FALSE; break;
        case 0x064A: ucode = 0xFEF1; nowChar = FALSE; break;
    }

    if((*arab == 0x0644) && (pos != ARABIC_END) && (pos != ARABIC_SIN))
    {
        switch(*(arab+1))
        {
            case 0x0622: ucode = 0xFEF5; *stepit = TRUE; break;
            case 0x0623: ucode = 0xFEF7; *stepit = TRUE; break;
            case 0x0625: ucode = 0xFEF9; *stepit = TRUE; break;
            case 0x0627: ucode = 0xFEFB; *stepit = TRUE; break;
            default: break;
        }

        if(*stepit == TRUE)
        {
            switch(pos)
            {
                case ARABIC_1ST:
                    if(*(arab+2) == 0x0020) break;
                    else { ucode += 0x001; break; }
                case ARABIC_MID:
                    if(*is2set == TRUE) break;
                    else { ucode += 0x001; break; }
            }

            *is2set = nowChar;
            return ucode;
        }
    }

    switch(pos)
    {
        //case ARABIC_SIN: return ucode;
        case ARABIC_1ST:
                if(nowChar == TRUE) ucode = *arab;
                else ucode += ARABIC_1ST;
                break;
        case ARABIC_MID:
                if(nowChar == TRUE) // 2개 짜리
                {
                    if(*is2set == TRUE) ucode = *arab;
                    else ucode += ARABIC_END;
                }
                else // 4개 짜리
                {
                    if(*is2set == TRUE) ucode += ARABIC_1ST;
                    else ucode += ARABIC_MID;
                }
                break;
        case ARABIC_END:
                if(nowChar == TRUE) // 2개 짜리
                {
                    if(*is2set == TRUE) ucode = *arab;
                    else ucode += ARABIC_END;
                }
                else // 4개 짜리
                {
                    if(*is2set == TRUE) ucode = *arab;
                    else ucode += ARABIC_END;
                }
                break;
    }

    *is2set = nowChar;
    return ucode;
}

BOOL isarabicstr(u16 *pu16String, u16 u16StrLength)
{
    u16 index = 0;
    BOOL arabic_exist = FALSE;

    for(index = 0;index < u16StrLength;index++)
    {
        if(pu16String[index] >= 0x060C && pu16String[index] <= 0x064B) return TRUE;
    }

    return arabic_exist;
}

void Arabic_automata(u16 *target_str, u16 *src_str,u16 u16Length)
{
	BOOL b8ArabSpe = FALSE;
	BOOL b8is2set = FALSE;
	u16 u16Index = 0;
	u16 u16Index2 = 0;
	u16 u16Index3 = 0;
	u16 u16offset = 0;
	u16 *temp_str = NULL;
	
	temp_str = malloc((u16Length + 1) * 2);

	for (u16Index = 0; u16Index < u16Length;)
	{
		if (src_str[u16Index] >= 0x060C && u16Index < u16Length) // arabic
		{
			u16Index2 = u16Index; // 아랍어 시작점
			while(src_str[u16Index] >= 0x060C && u16Index < u16Length ) u16Index++;
			if(u16Index - u16Index2 == 1) // 단독형
			{
				temp_str[u16Length - u16Index2 + u16offset - 1] = src_str[u16Index2];
			}
			else // 2개 이상 단어
			{
				// 첫자
				temp_str[u16Length - u16Index2 + u16offset - 1] = ArabicEncode(src_str + u16Index2, ARABIC_1ST ,&b8ArabSpe, &b8is2set);
				if(b8ArabSpe == TRUE) {++u16offset; ++u16Index2;}
				
				//중간글자
				for(u16Index3 = u16Index2 + 1; u16Index3 < u16Index - 1; u16Index3++)
				{
					if(b8ArabSpe == TRUE)
					{
						b8ArabSpe = FALSE;
						temp_str[u16Length - u16Index3 + u16offset - 1] = ArabicEncode(src_str + u16Index3, ARABIC_1ST ,&b8ArabSpe, &b8is2set);
					}
					else
						temp_str[u16Length - u16Index3 + u16offset - 1] = ArabicEncode(src_str + u16Index3, ARABIC_MID ,&b8ArabSpe, &b8is2set);
					if(b8ArabSpe == TRUE) {++u16offset; ++u16Index3;}
				}
				//마지막자
				if(u16Index - u16Index2 != 1)
				{
					if(b8ArabSpe == TRUE)
					{
						b8ArabSpe = FALSE;
						temp_str[u16Length - u16Index + u16offset] = ArabicEncode(src_str + u16Index - 1, ARABIC_1ST ,&b8ArabSpe, &b8is2set);
					}
					else
						temp_str[u16Length - u16Index + u16offset] = ArabicEncode(src_str + u16Index - 1, ARABIC_END ,&b8ArabSpe, &b8is2set);
					if(b8ArabSpe == TRUE) b8ArabSpe = FALSE;
				}
			}
		}
		else if (src_str[u16Index] == 0x0020)
		{
			u16Index2 = u16Index++;
			temp_str[u16Length - u16Index + u16offset] = src_str[u16Index - 1];
		}
		else // not arabic
		{
			u16Index2 = u16Index; // 영어 시작점
			while(src_str[u16Index] > 32 && src_str[u16Index] < 255  && u16Index < u16Length && src_str[u16Index] != 0x0020) u16Index++;
			for(u16Index3 = 0; u16Index3 < u16Index - u16Index2; u16Index3++)
			{
				temp_str[u16Length - u16Index + u16Index3 + u16offset] = src_str[u16Index2 + u16Index3];
			}
		}
	}

	if(u16offset > 0)
	{
		memcpy(target_str,temp_str + u16offset,(u16Length - u16offset) * 2);
		memset(target_str + (u16Length - u16offset),0x00,u16offset * 2);
	}
	else
	{
		memcpy(target_str,temp_str,(u16Length) * 2);
		memset(target_str + u16Length,0x00,2);
	}

	free(temp_str);
}



아놔 syntax highlighter 왜 이따구야 ㅠ.ㅠ

'모종의 음모 > 아랍어 오토마타' 카테고리의 다른 글

아랍어 조합 방법 - unicode  (5) 2008.11.16
Posted by 구차니
[링크 : http://media.daum.net/society/nation/seoul/view.html?cateid=1034&newsid=20090304165553930&p=yonhap&RIGHT_ENTER=R1]

일단 뉴스를 먼저 보시고. 시작합시다? (뭘~!)


넌 얼마나 정품을 쓰냐라고 공격 들어 오신다면 저도 할말은 없습니다만,
글쎄.. 다른 사람도 아니고 불법다운로드를 받는다고 시인한 사람들이(스스로는 용기있게 자수했다고 할지도 모르겠지만)
저작권을 제대로 하겠다는 원 저작권자/제작자가 밝히는데 이걸 딴지 거는건 무슨 심보일까?

뉴스에서 자극적으로, 일부 의견을 내놓은것인줄 알았는데, 달리는 리플마다 족족 악플이니
이 사태는 도대체 어떻게 생각을 해야 할까?

문득, 로마시대로 돌아 간 것 같다.
민중의 환호에 의해서 손가락이 내려가냐 올라가냐를 조마조마 하게 쳐다보고 있었을 검투사들의 심정.
어쩌면 타의에 끌려 올라가서 타인들에 의해서 자신을 평가하는게 마음에 안들지도 모르지만,
목숨이 달린일이기에 어쩔수 없이 열심히 싸우고도 목숨을 건지지 못한, 민중의 환호성에 파묻힌 생명.

다수결이란것이 항상 옳은것은 아니다.
이번 대통령선거도 그러했고,
시민의 감정에 따라 정책이 오가는 정권도 그렇다.

사용자 입장에서는 웹하드 업체에 매달 돈을 내고 있으므로, 정당한 요구라고 생각이 될지도 모른다.
하지만 엄밀하게 유통구조로는 원저작권자에게 돈이 가지 않는 구조이고,
결과론적으로 원저작권자/제작자에게 한푼의 돈도 떨어지지 않는 구조이다.

그렇다면 웹하드 업체가 생기는 족족 잡아 없애야 하는 것일까?
아니면 이런 유통구조가 만들어 놓은 놈들을 잡아 없애야 하는 것일까?
아니면 이런 구조가 생기는 것을 방관해온 방관자(국민)을 잡아 없애야 하는 것일까?

어쩌면, 가장 좋은 방법은 이미 썩을대로 썩은 대한민국이 망하거나
죽을지도 모르지만 그 썩은 부위를 전부 도려내고 치료를 하는것일지도 모른다.
그렇지 않다면, 누구의 책임이냐를 따지고 있지만 말고, 하나하나 행동을 통해서 하나 둘씩
차근차근 잡아 나가면 될텐데 감정이 휩쓸려(요즘 경제가 안좋으니)

이정도 벌었음 됐지 무료로 돌려라.
돈독 올랐구나, 매스컴 타볼려고 초기에 놔두고 이제야 터트리는구나
웹하드에 돈줬음 됐지 왜 지랄이냐?

이런 소리를 엉뚱한 사람에게 해대는 모습을 보고 있자니 답답하기만 하다.
아니면

그런 소리 하는 사람들은 자신이 생산해내는 무형의 서비스가 타인에 의해서 도용당하고
돈벌이로 전락하는데 웃으면서 그럴 자신이 있는건가?
아니면 자기는 숭고해서 모든 것을 open source 처럼 생각하는걸까?

어쩌면 open source 라는 것 조차도 open이 아닌 free 만이라고 생각하고 있는건 아니었을까...
Posted by 구차니
개소리 왈왈2009. 3. 4. 10:31
친구녀석에게 싸게 강매당한 MD가 사운드 카드를 처분하면서
SPDIF 출력이 없어 지는 바람에 쓰지 않고 서랍에 고이 모셔져 있다가,
문득 배터리가 살아 있나? 라는 생각에 꺼내서 충전을 해보게 되었다.




이녀석이 사용하는 배터리는 AD-T51BT 인데 3.6V 800mAh 이다. 인터넷 뒤지다 보니, 정품은 2.5만 ㄱ-
샓!! 그래서 다시 검색을 해보니 호환가능한 배터리가 존재를 한다고 한다.

일단 현재 구매가능한건 교세라용 BP-1000S 이고 3.7V에 10000mAh 1000mAh이다.
BP-1100S도 나오는데, 이녀석은 1150mAh이지만, 배터리 형태가 달라서 사용은 하지 못할 것 같다.
아무튼 현재 가격은 대략 8000원 미만(택배비 제외)

[참고 : http://blog.naver.com/lettee_4_me?Redirect=Log&logNo=9131542]

아무튼 오랫만에 꺼내는 바람에 켜는법도 까먹고,
간만에 작동시켜 보니 리모컨이 고장난것도 잊고 있었고,
구석에 먼지를 소복히 먹어 버린 220->110V 트랜스와 110V 충전기
그리고 아직도 광택이 나는 MD 미디어 3장

문득, SPDIF 출력이 되는 사운드 카드를 하나 사서 다시 들고 다닐까? 라는 생각이 든다.




사족 : 아버지 생신으로 저번주 원주 다녀 오는데, 누나가 MP3 아이리버 256M 짜리 너무 크고 그래서 쪽팔린다고 하길래
         하나 사줄까 라는 생각을 하다가 문득 나도 포터블 기기가 있었지! 라는 생각이 들었다.
         지금은 방송국에서나 사용하고, 일부 매니아들이 겨우 명맥을 유지하고 있지만, 혹시나 PSP의 UMD가
         그 후속으로 대체 가능하지 않을까 했는데 구동원리는 전혀 다른것 같아서 조금은 실망을 했다.
         어짜피 음악이 들리면 되는건데, 굳이 크고 작은게 중요할까? 라는 생각도 들지만, 언젠가 부터
         내가 쓰는 것보다는 타인에게 보여주기 위한 장치, 디자인이 된게 아닐까라는 씁쓸함이 밀려왔다.

사족2: 간만에 생각이 나서 나에게 강매한 녀석에게 연락을 해봤더니
         "내가 그런것도 팔았냐? ㅋㅋㅋ 기억도 안나" 라고 하는군 ㄱ-

'개소리 왈왈' 카테고리의 다른 글

250 근접!  (2) 2009.03.10
내 블로그는 사인그래프를 알고 있다.  (6) 2009.03.05
8K의 행복  (6) 2009.02.28
문득 세상이 많이 변했음을 느낀다.  (4) 2009.02.27
200개 글 돌파 기념 그런거 없음!  (2) 2009.02.24
Posted by 구차니
프로그램 사용/vi2009. 3. 3. 18:39
:%!xxd
:%!xxd -r <-- 원 상태로 복귀

VI에서 바이너리를 열어 HEX 모드로 보는 방법

[출처 : http://k.daum.net/qna/view.html?category_id=QCE003&qid=00gOz&q=hex+editor&srchid=NKS00gOz]
Posted by 구차니