2012년 12월 23일 일요일

Visual Studio SKU 의 뜻

Visual Studio SKU 의 뜻...

나오는 곳
http://wix.sourceforge.net/votive.html

뜻은...
http://en.wikipedia.org/wiki/Stock-keeping_unit
에 나온다.
A stock-keeping unit or SKU (/ˈskjuː/ or /ˌɛsˌkeɪˈjuː/) is a number or code used to identify each unique product or item for sale in a store or other business.

2012년 10월 23일 화요일

dp0bin 의 의미 (vcvars32.bat 을 호출한다.)

visual c
설정을 하려다가 아무래도 command line 설정 방법을 알아보다가...

build environment (= compile environment, 컴파일 환경, 빌드 환경)을 설정하는
vsvarsall.bat, vcvarsall.bat, vcvars32.bat, 등등을 보게 되었다.
(주의: 첫번째 파일 이름의 2번째 글자는 's' 이고,
  두번째 파일 이름의 2번째 글자는 'c' 이다. 둘이 위치도 파일 이름도 다르다.
)
그런데, 아무래도 vcvarsall.bat 파일에 있는

"%~dp0bin\vcvars32.bat" 호출 속에 있는
%~dp0bin
이라는 폴더 이름이 무엇인지 모르겠어서 google 검색을 했더니,
검색어 :
dp0bin vcvars32.bat

http://social.msdn.microsoft.com/Forums/is/vssetup/thread/d52dcdd3-0ab4-4c0a-a0f4-91c30f8e00d3

그래서, 이것이 현재 실행하는 batch 파일의 위치를 가리킨다는 것을 알게 되었다.
그리고, 그 답변의 아래에 불평하는 사람의 글이 있었다.
도대체 %~dp0 라는 것이 무엇을 뜻하는 것인지 어떻게 알아먹으라고 이렇게 웃기는 이름을 만들었느냐는 것이다. 거기에 간단하게 답변되어 있는 Windows XP 매뉴얼 페이지에는
Windows XP이후의 윈도우즈 운영체제의 batch 파일 문법이 나와있었다. 이런 것을 예전에는 절대로 알지 못하는 것이었다.
 그래서, 이런 불평을 통해서 좀 더 많은 것을 알게 되었다.

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
여기에서 맨 처음의 고리를 따라가면,
Using batch parameters

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true

여기에서는 그냥 %~dp0 로써만이 아니라, %~dp0%~n0.%~x0 이렇게 하거나, 그냥
%~f0
라고 하는 것이 무엇인지에 대해서 알게 된다.

2012년 10월 14일 일요일

programmer's notepad - workspace


google : programmers notepad workspace


http://www.pnotepad.org/

search:
When saving the workspace sort the documents by tab orde

the bottom line
http://sourceforge.net/project/shownotes.php?release_id=362799


25) Optionally save workspace between runs ("Remember open files and projects between sessions" in General options).
26) Open to save workspace files from File menu, opening a .pnws file opens the saved workspace.
Now, I see "what really is the (workspace) in programmer's notepad."

프로그래머즈 노트패드 에서 새로 생긴(? 또는 이제서야 내가 알게된..) workspace
기능에 대해서 알아본 결과,
열려있는 창들의 layout 을 저장해 놓는 기능인 것이었다.


일일수학

https://plus.google.com/u/0/100110476644347678708/posts/eAR5SFXNx55


https://plus.google.com/u/0/s/일일수학

https://plus.google.com/u/0/s/%EC%9D%BC%EC%9D%BC%EC%88%98%ED%95%99

일일수학 사이트 : http://www.11math.com/


일일수학

2012년 10월 10일 수요일

2012년 10월 9일 화요일

중국에서 쓴다는 서보 드라이브

중국에서 쓴다고 하는 서보 드라이브

TECO
http://globalsa.teco.com.tw/products_more.aspx?KindID=1&ID=19

Tamagawa
제품이었던 듯하다.
중국에서 보내준 매뉴얼에서 컨넥터 부분에 사진이 있는데,
Tamagawa 라고 적혀 있고, 나머지 부분들은 teco 의 것과 똑같다.


2012년 10월 8일 월요일

gcc wide character option

일단, 
google 찾기 시도....

gcc manual 매뉴얼의 몇가지 ....

CPP(PreProcessor; 전처리기) 옵션....

여기에서는 
the source character set
이라는 용어를 소개하고 있고,

the execution character set
이라는 용어를 소개한다.

이것을 바꾸는 방법은,...
-finput-charset= option



아래의 고리를 따라가면,...
아래에 있는


여기에서는 
-fexec-charset
-fwide-exec-charset

이라는 두 옵션을 알아볼 수 있다.



2012년 10월 7일 일요일

Travelling Salesman Problem (여행하는 세일즈맨 문제)

Travelling Salesman Problem (여행하는 세일즈맨 문제)

이 문제는 내가 군대를 갔다가 대학교에 복학한 후에 거의 처음 참석한, 콜로퀴움 세미나에서 들은 주제이다. 그것이 아마도 1994년일 것이다. 그로부터 지금이 2012년이니까, 대충 18년전이다. 20년 가까이 되었다.

알고리즘 책을 봤다. 거기에 거의 처음으로 나오는 문제가 이것이다.
언뜻 보기에는 너무나도 쉬워 보이는 문제가 정말로 풀기에는 너무나도 어려운 문제이다. 이런 문제들이 무척 많은데, 그 중에서 가장 널리 알려진 것에 해당한다.

(1)
일단, 풀이를 위해 모든 경우의 수를 검토하는 것은 너무나도 방대한 시간이 걸리므로, 사실상 불가능하다.
그래서, 가장 쉬워 보이는 방법인,

(2)
일단 가장 짧게 가는 경로를 차례로 선택하기
이것은 무척 그럴듯하지만, 알고리즘 책에서는 이것이 좋은 해답이 아니라고, 보여주고 있다. 그 이유는,  실제로 적용하려고 하면, 불만족스러운 결과를 내는 경우를 쉽게 만날 수 있다. 그런 경우를 알고리즘 책에서는 몇개를 보여준다.
그리고, 그 경우는 너무 흔하게 만날 수 있는 경우라는 것을 알게된다. 그리고, 불만족스러운 결과는 너무나도 어이없는 이상한 동작을 보여주게 된다.
 따라서, 이런 경우를 몇개 보고 나면, 이 방법을 쓰고 싶은 생각은 전혀 없어지게 된다.

(3)
앞의 (2)번 방법을 조금 변형 시킨 방법
(2)의 방법을 유지하고 단지, 시작점을 잘 선택하면 될 것 같아 보인다. 하지만, 알고리즘 책을 쓴 사람은 어떤 다른 경우에, 이 방법으로 만든 경로가 아닌, 이 방법 말고 더 좋은 경로를 보여준다.

그래서, 쉬워 보이는 풀이들은 모두 제외되고, 본격적으로 어려운 방법들을 소개하기 시작한다.


왜 이런 어려운 문제를 봐야하는가?
이것은, 여행자가 여행 계획을 세우는데에만 필요한 것이 아니며, 특히 공장 자동화 (Factory Automation) 또는 생산 자동화 (Automated Production)에서 너무나도 빈번히 만나게 되는 문제이기 때문이다. 실제로 자동화 설비를 만들려면, 이것을 만족스럽게 해결할 방안이 있어야 오늘 당장 필요한 제품을 만들 수 있는 종류의 작업이 너무나도 많기 때문이다.

참고 목록

가장 본격적으로 이 문제를 다루고 있는 곳.
http://www.tsp.gatech.edu/

한국에서 인공지능을 공부하고 있는 학생의 개인 사이트 자료
http://www.aistudy.com/problem/traveling_salesman_problem.htm

구글 검색
구글 검색 : travelling salesman problem

영어 위키피디아
http://en.wikipedia.org/wiki/Travelling_salesman_problem

한국어 위키피디아
http://ko.wikipedia.org/wiki/외판원_문제

mathematica로 유명한 wolfram의 수학세상 자료
http://mathworld.wolfram.com/TravelingSalesmanProblem.html

이것을 주제로 영화가 만들어지고 있는 모양이다.
http://en.wikipedia.org/wiki/Travelling_Salesman_(2012_film)

내가 보고 있는 알고리즘 책
http://www.algorist.com/


한국에서는 좀 더 전문적인 수학/전산 단체(대학교 포함) 혹은 전문인의 자료가 없는 것이 아쉽다.
http://blog.naver.com/the2384/10106444843


위에서 영화가 만들어지고 있다고 했던 위키피디아에 있는 공식 영화 제작사(또는 판매사) 사이트이다.
http://www.travellingsalesmanmovie.com/
여기에 이 영화에 나온 수학인 "P=NP 인가?" 라는 문제는 무슨 문제인가에 대한 설명이 있다.
무척 좋은 설명이라서, 불안정하게 계속 변하고 사라지는 웹에 놔두기에는 너무 아까운 내용의 글이라서 복사해서 떠왔다. 나중에 번역좀 해 봐야겠다.

P vs. NP
THE MATH BEHIND THE FILM

The P vs. NP problem is the most notorious unsolved problem in computer science. First introduced in 1971, it asks whether one class of problems (NP) is more difficult than another class (P).

Mathematicians group problems into classes based on how long they take to be solved and verified. "NP" is the class of problems whose answer can be verified in a reasonable amount of time. Some NP problems can also be solved quickly. Those problems are said to be in "P", which stands for polynomial time. However, there are other problems in NP which have never been solved in polynomial time.

The question is, is it possible to solve all NP problems as quickly as P problems? To date, no one knows for sure. Some NP questions seem harder than P questions, but they may not be.

Currently, many NP problems take a long time to solve. As such, certain problems like logistics scheduling and protein structure prediction are very difficult. Likewise, many cryptosystems, which are used to secure the world's data, rely on the assumption that they cannot be solved in polynomial time.

If someone were to show that NP problems were not difficult?that P and NP problems were the same?it would would have significant practical consequences. Advances in bioinformatics and theoretical chemistry could be made. Much of modern cryptography would be rendered inert. Financial systems would be exposed, leaving the entire Western economy vulnerable.

Proving that P = NP would have enormous ramifications that would be equally enlightening, devastating, and valuable...

Press

'Travelling Salesman' movie considers the repercussions if P equals NP
by Duncan Geere, Wired
"Mathematical puzzles don't often get to star in feature films, but P vs NP is the subject of an upcoming thriller"


Travelling Salesman, Thriller Set In a World Where P=NP
Slashdot
"A movie that features science and technology is always welcome, but is it not often we have one that focuses on computer science. Travelling Salesman is just such a rare movie."


Travelling Salesman - A Movie About P=NP
by Alex Armstrong, I-Programmer
"We all know that the P=NP question is truly fascinating, but now it is about to be released as a movie."

ACME Science Podcast
Strongly Connected Components #46, ACME Science
"I speak with Timothy about where he got the idea for the movie, how he made sure that the mathematics was correct, and why science movies just may be the new comic book movies."


The Travelling Salesman's Power
by Kenneth W. Regan, Godel’s Lost Letter
"At last someone is taking the position that P = NP is a possibility seriously. If nothing else, the film's brain trust realize that being equal is the cool direction, the direction with the most excitement, the most worthy of a major motion picture."


Podcast: Rolling out the red carpet for the Travelling Salesman
by Rachel Thomas, Plus Magazine
"Travelling Salesman is an unusual movie: despite almost every character being a mathematician there's not a mad person in sight."

2012년 9월 26일 수요일

code lite 는 범용 programming IDE(Integrated Development Environment; 통합 개발환경) 이지만, MinGW 프로그래밍언어 컴파일러 모음과 WxWidget C++ GUI 프로그래밍 라이브러리를 번들로 설치하는 것도 하나의 설치파일로 지원한다.
그렇게 기본 WxWidget 기반 GUI프로그램을 만들었는데, 한글을 표시해 보려니 잘 안되어서, 좀 알아본 결과, 그리 어렵지만은 않게 한글을 표시하는데에 성공했다.
그 결과를 아래에 정리했다.
wxConvAuto class 를 사용해서 해냈으며,

#include <wx/convauto.h>

를 넣어서 wxConvAuto class 를 선언할 수 있도록 했고, 임시 object를 초기화하는 macro
를 정의해서 일반 C++ 소스코드에 윈도 코드 페이지 CP-949 인 multi-byte code로 표현된 한글이 사용된 C++ 소스코드를 편리하게 unicode로 변환해서 프로그램 내부에서 사용될 수 있게 했다.

#define _xwxMBT(s)  wxString(wxConvAuto(wxFONTENCODING_SYSTEM).cMB2WX(s))

좀더 가다듬어진 국제화 프로그래밍이라든가, 프로그램 지역화와는 전혀 거리가 멀지만, 한국 사람이 프로그램을 처음 배우는 과정에서 한글을 쉽게 표현하는 방법으로 사용하면 좋을 것이다.

사용법은, 윈도우즈 운영체제의 codelite 소스코드 에디터(또는 일반 텍스트 에디터에서), 윈도우즈의 ANSI 코드를 사용하도록 설정되어 있으므로,
wxString 문자열이 들어가는 곳에,
_xwxMBT("abcd 가나다라 이렇게 할 수 있습니다. \n 편리...")
와 같이 넣으면 된다.

mercurial 이라는 DVCS를 써서 코드 관리를 하고 있고, 무료로 호스팅하는 bitbucket에 올려 놓았다.


https://bitbucket.org/aiamama/wxwidget_001_with_codelite/





2012년 9월 15일 토요일

이 파일은 다른 컴퓨터로부터 왔으며 사용자의 컴퓨터를 보호하기 위해 차단 되었을 수도 있습니다

https://docs.google.com/file/d/0B60m8640SGWTQ3ltX05YajVscUU/edit

보안 속성을 없애기 위한 몇 가지 방법을 알아보자.

  1. Gpedit.msc를 이용
  2. 레지스트리 이용
  3. Streams.exe 이용
  4. 코드로 작성

  1. Gpedit.msc 이용
    1. Windows key + R (실행이죠)
    2. gpedit.msc  입력 실행

    1. 사용자 구성 -> 관리 템플릿 -> Windows 구성요소 -> 첨부 파일 관리자

    1. 오른쪽의 설정 항목중에서 ….
    2. 첨부파일에 대한 기본 위험 수준
…...............................

2012년 9월 11일 화요일

윈도 비스타/7 에서 스스로 하드디스크를 계속 읽을때


윈도 에서 하드를 계속 긁으면...



2013-02-04

윈도에서 하드를 계속 긁으면....
아래의 방법을 모두 동원해도 안된다면.... (나의 경우에는 잘 안되었다.)
윈도 탐색기의 메뉴 에서...
(만약 탐색기 창에 메뉴가 안 보인다면, 보이도록 한다.
(탐색기 창의 (구성) 버튼 >> 레이아웃 >> 메뉴모음) 항목을 클릭해서 체크 되도록
하면 된다.)
탐색기의 메뉴에서,
(도구(T) >> 폴더 옵션) 항목을 클릭해서 나오는 설정 창에서, ....
(보기 탭 선택 >> 고급 설정 창 내부의 항목들 중에서(스크롤바를 내리면 나옴)
(아이콘은 항상 표시하고 미리 보기는 표시하지 않음) 항목을 클릭해서 체크상태로
만든다.
).

이렇게 하면 하드를 긁는 양과 폴더 창을 열었을 때에 일반적인 응답 속도가
많이 좋아지는 것 같다.





윈도 에서 하드를 계속 긁으면...

서비스를 중지시켰다.. 내가 중지시킨 서비스는
(1)
작업관리자(task manager)에 표시되는 것은,
CscService  (설명:Offline Files) ==
서비스 관리 제어판에서 나오는 것은,( 이름 == Offline Files)


왜 이름이 CSC 인지 궁금했는데, 다른 microsoft 상담 사이트에 이 설명이 있었다. 
The Offline Files (CSC or Client Side Caching) 
그 출처는
http://support.microsoft.com/kb/230738

앞의 출처는
http://answers.microsoft.com/en-us/windows/forum/windows_vista-performance/cscservice-is-generating-100-cpu-load-every-4/f429568b-c002-48a8-922c-af2d090c992f
에서의 답변 중에서 나왔다.


(2)
작업관리자(task manager)에 표시되는 것은,
SysMain (설명:Superfetch) ==
서비스 관리 제어판에서 나오는 것은, (이름 == Superfetch)

출처는,
http://darg.danawa.com/Darg_view.php?nDarg=2&nBoardSeq=34&nSeq=1925535

출처의 내용 일부는 ...

윈도우7에서 2가지 정도만 중지해 주시면 하드 읽는 현상이 없어집니다.

Windows Search 서비스 중지.

하드에 있는 여러 파일을 인덱싱해서 만약 파일을 찾을 필요가 있을 때 빠르게 검색할 수 있도록 해주는 기능인데, 문제는 이 인덱싱 과정이 시스템 성능을 매우 떨어트린다는 점입니다. 가뜩이나 느린 하드디스크를 읽어서 파일들을 분석하고 색인화 하는 것은 검색을 특별히 많이 하지 않는 유저라면 (특히 하드가 느린 노트북 환경에서는 더욱이) 왠만하면 꺼놓는게 좋습니다.
제어판 - 관리 도구 - 서비스에 가서 Windows Search를 찾아서 더블클릭한 후, 중지 버튼을 누르고 시작 유형을 사용 안함으로 설정합니다.

Superfetch, Offline Files 서비스 중지

윈도우7이 그 다음으로 하드 엑서스를 많이 하는 부분이 Superfetch와 Offline Files서비스입니다. 이 서비스들을 끄지 않은 상태에서 가만히 보면 하드가 거의 쉬지 않고 돌아갑니다.

사실 이 기능은 자주 사용하는 파일을 메모리나 레디부스트USB에 올려서 성능을 향상시키겠다는 의도인데, 사실 실제로 이렇게 캐싱되는 파일을 보면 그다지 빠른 엑서스가 필요하지 않는 동영상 파일들이 대상이더군요. 이럴바엔 오히려 캐싱이 독이 되죠.

역시 2번 항목과 마찬가지로 서비스에서 Superfetch와 Offline Files 서비스를 찾아서 중지시키고 시작 유형을 사용 안함으로 설정합니다.
출처의 내용 일부 끝......
(3)
Windows Search  서비스
작업관리자의 서비스tab에는
이름== WSearch (설명== Windows Search)

서비스 관리 제어판에서는,
이름== Windows Search

출처는 URL이 두개로 나오는데, 어떤 것이 더 원래의 것인지는 모르겠다 2번째것일 듯....
((1))
http://blog.naver.com/PostView.nhn?blogId=anoldkim12&logNo=110107390317&redirect=Dlog
((2))
http://blog.naver.com/samycozy/40093696688

출처 내용 일부는...
슈퍼패치(Superfetch)와 윈도우 검색(Windows Search) 끄기.
슈퍼패치와 윈도우 검색 기능이 필요 없다면 끈다.
슈퍼패치와 윈도우 검색 이 기능이 필요하신 분들은 그냥 쓰면 된다.
SuperFetch 기술은 프로세서 내부의 프리패쳐와 비슷한 기능으로 시스템에서 필요한 데이터를 메모리에 미리 가져다 놓는 기능이다.
문제는 SuperFetch때문에 하드를 지속적으로 드르륵 드르륵 긁는 현상이 발생하고, 파일과 프로그램의 용량이 크지 않을 경우에는 문제가 되지 않지만 용량이 큰 경우 과도하게 디스크를 활성시킨다.
푸닥이 삼촌은 필요 없어서 끈다. 그리고 eBoostr란 프로그램을 이용한다.
eBoostr란 프로그램으로 캐시 제외 목록을 만들고, 응용 프로그램 우선순위 목록을 만들어 캐시에 로드
하는 가속도를 높여서 레디부스트(ReadyBoost)의 효율을 높일 수 있다.
* 참 조 *
슈퍼패치(Superfetch)와 윈도우 검색(Windows Search) 끄기.


출처에 나온 다른 참조의 바로가기는....
http://blog.daum.net/woonsoo100/13388784


(4)
CISVC (Indexing Service)
작업관리자 서비스탭에서의 이름=CISVC     설명=Indexing Service

관리도구 서비스탭에서 이름=Indexing Service


출처
http://dolba.net/tt/k2club/1982

indexing 하는 것들이 너무 많네.. 그런데, 하나같이 별로 효과가 없다고 하는군.....

위에서 말한 4개의 서비스를 모두 중지했다.
그 직후 10분도 안되어서 다시 하드디스크를 긁고 있다...약 20분째....
뭘까?
이렇게 적고 있는 동안에 뭐가 하나 떴다... 그것은,
윈도우즈 업데이트할 것이 있다는 통지이다....
방금 긁은 것은 그럼, 윈도우즈 업데이트 서비스가 활동한 것이라는 것이겠네...
이것은 없애야 하나 아니면 그냥 놔둬야 하나.....
어쨌든 제멋대로 하드 긁는 현상은 이런 것들 때문에라도 완전히 없앨 수 없을 듯하다...

무엇을 업데이트하려고 하는지 확인해보니,
인터넷 익스플로러를 지금의 Version 8에서 Version 9로 올리란다...
그것도, 이것을 중요(!) 업데이트라고 분류해 놓고 있다.
나는 싫다..... 그래서, 체크를 없애고 숨겨버렸다.
Version 9로 업데이트하면, 그 뒤의 I.E. Version 9 관련 (필수 보안)업데이트를 한참 더 해야
할 것이 뻔하다.