나의 오만함.

나는 매주 일요일 1시부터 대략 2시간 내지 3시간 정도의 강의가 있다.
자원봉사의 개념으로 하는 것으로, 강의라고 말할 것 까지는 아니고 대충 주말 수업이라고 생각하면 되겠다.

강의 내용은 컴퓨터 기초.
윈도우 익스플로러 및 오피스등과 같은 기초 프로그램을 사용하는 법, 컴퓨터 재설치, 하드웨어 구성 등에 관한 컴퓨터 전반에 관한 기초를 가르킨다.

학생들은 외국인 근로자 2 ~ 3명.
처음에는 5~6 명 정도로 많이 있었던 것으로 생각되었으나 지금은 2~3명 밖에 남지 않았다.
수업 진행은 대부분 영어와 한국어를 섞어가며 진행한다.

그들이 집에서 출발해서 수업장까지 오기까지는 평균 4시간 정도.

그동안 한번도 빠짐없이 수업을 진행했었는데, 오늘은 왜 일까. 나가기 싫었다.
아침에 일어나서 눈을 떴을때, 시계는 11시.
1시까지 수업장에 도착하기 위해서는 바로 일어나서 씻고 준비를 해야한다.

하지만 난 그러지 않았다.
결국 꾀병을 부려 오늘 수업을 취소했다.

그 덕분에 오늘 하루 나는 한명의 잉여가 될 수 있었다.
부끄럽다.

누가 시키는 것도 아니고 자발적으로 하는 일에 어느 순간인지 굉장히 귀찮게 느껴졌다.
너무도 편해진 지금의 생활에 길들여진 것일까..

미안한 마음 뿐이다.
그 먼길을 그들은 무엇인가를 배우겠다는 마음으로 왔을 것인데, 나는 내 자신의 편안함만을 위해 그들을 져버렸다.

사실, 이 활동을 하면서 가장 많은 덕을 본 것은 나였을 것이다.
알게 모르게 점점 느껴지는 무엇인가에 대한 뿌듯함과 사람들 앞에서 당당하게 이야기를 하는 자신감…
이런 것들은 결코 쉽게 얻어지는 것이 아닌데, 나는 그것들은 단지 내가 잘나서 얻게 된 것이라고 착각하고 있었던 것 같다.
그래서 이런 행동도 할 수 있었던 것 같다.

너무 오만했다.

조금있다가 그들의 연락처를 통해 하나하나 사과의 말을 남겨야겠다.
너무 미안한 마음뿐이다.

“/opt/aCC/include_std/utility”, line 99: error #2070: incomplete type is not allowed

HP 장비에서 aCC 로 컴파일을 하던도중 아래의 에러가 발생했다.

“/opt/aCC/include_std/utility”, line 99: error #2070: incomplete type is not
allowed
first_type  first;
^
detected during:
instantiation of class “std::pair<_TypeT, _TypeU> [with
_TypeT=const std::string, _TypeU=char *]” at line 97 of
“/opt/aCC/include_std/rw/tree”
instantiation of class “__rw::__rw_rb_tree_node<_Alloc, _Val,
_Key, _KeyOf> [with
_Alloc=std::allocator<std::pair<const std::string, char
*>>, _Val=std::pair<const std::string, char *>,
_Key=std::string,
_KeyOf=__rw::__select1st<std::pair<const std::string,
char *>, std::string>]” at line 282 of
“/opt/aCC/include_std/rw/tree”
instantiation of class “__rw::__rb_tree<_Key, _Val, _KeyOf, _Comp,
_Alloc> [with _Key=std::string, _Val=std::pair<const
std::string, char *>,
_KeyOf=__rw::__select1st<std::pair<const std::string,
char *>, std::string>, _Comp=std::less<std::string>,
_Alloc=std::allocator<std::pair<const std::string, char
*>>]” at line 102 of “/opt/aCC/include_std/map”
instantiation of class “std::map<_Key, _TypeT, _Compare,
_Allocator> [with _Key=std::string, _TypeT=char *,
_Compare=std::less<std::string>,
_Allocator=std::allocator<std::pair<const std::string,
char *>>]” at line 54 of “LocalRepository.h”

이유인즉, HP 컴파일러 aCC 가 버전 6로 넘어오면서 기존(aCC version 5)에서 허용했던 C++ 타입에 대한 처리를 더이상 허용하지 않으면서 발생한 문제였다.

관련링크 : http://h21007.www2.hp.com/portal/site/dspp/menuitem.863c3e4cbcdc3f3515b49c108973a801/?ciid=2708d7c682f02110d7c682f02110275d6e10RCRD#_iso-39._acc6_detects_instantiation_

공식 문서내용은 다음과 같다.

ISO-39. aCC6 detects instantiation conflicts earlier (2403)

Points of instantiation differ for member functions, so reporting of instantiation conflicts can differ. This is simply a behavior difference, and not a compatibility issue. However, the following code snippet illustrates an incompatibility in the use of repeated const keywords, which aCC5 allows and aCC6 does not. To fix this code, don’t instantiate the template with a const int; simply use int:

template <class T>
struct S {
void foo(T *i) {}
void foo(const T *i) {}
};
int main() {
int i = 5;
#ifdef WORKS_IN_BOTH
S<int> s;
#else
S<const int> s;
#endif
return 0;
}

내용인즉, C++ 에서 template 사용시 const 를 사용하지 말라는 뜻이다.

위의 에러에서 문제가 해당 라인(line 54 of “LocalRepository.h”)을 찾아가보니 아래와 같이 선언되있었다.

map<string, char*> m_mapStringMainData;

뭔가 이상했다. map 선언 중, 어디에도 const 는 있지 않았다. 어찌된 일일까.

한참을 헤매고 주위에 도움을 구해서 찾아낸 정답은 정말 엉뚱한 곳에 있었다.
바로 iostream 였다.

다음의 라인을 추가하여 깔끔히 문제를 해결할 수 있었다.

#include <iostream>

왜 이런 문제가 생긴 것일까? 조금 더 질문을 해본 결과 한가지 재미있는 사실을 알 수 있었다.
이전 버전의 aCC 에서는 iostream 을 include 하면 또 안된다는 것..

아직 배워야할 것이 많다..

HP-UX Hardwar/OS support & CPU/OS support

Unix 는 장비도 다양하고,  버전도 다양하다.

HP UX에 관련한 Hardware/OS support 에 관한 리스트는 아래의 링크에서 찾을 수 있다.

http://www.hp.com/go/hpuxservermatrix

그리고 다른 HP UX 에 관한 CPU/OS support에 관한 내용은 아래의 링크에서 찾을 수 있다.

http://search.cpan.org/~rjbs/perl-5.12.3/README.hpux

트레버 – 열두살 소년의 아름다운 제안

도서 : 트레버(356p)

저자 : 캐서린 라이언 하이디 지음, 공경희 옮김

등록일 : 2011/02/23

서평 : 열두 살 소년의 세상 바꾸기.

열 두살 소년이 무엇을 할 수 있을까?

소년의 담임 루벤은 어느 날 다음의 과제를 낸다.

“세상을 바꿀 수 있는 아이디어를 생각하고, 실천에 옮기시오.”

소년의 생각은 “다른 사람에게 베풀기”.

단순하지만 실천하기에는 약간은 어려운 이 생각은 사람들은 처음에는 무척이나 어려워한다.

심지어는 그의 어머니 조차도 이해하지를 못한다.

누구도 알아주지 않고, 누구도 도와주는 사람없이 한 사람, 한 사람.. 어린아이의 시각으로 자신이 할 수 있는.

자신의 도움을 필요로하는 사람들을 찾아서 자신의 생각을 이야기하고 그들을 돕기 시작한다.

그리고 얼마 후, 대부분의 사람들은 이 생각에 동참하게 된다.

정말 동화같은 이야기이다. 책이니까 가능한 이야기다.

그런데.. 정말로 이 생각이 실현된다면 얼마나 좋을까..

평점 : ★★★★

Changing gnome ternimal title on ubuntu linux

그놈 터미널을 사용하던 중, 터미널의 제목이 변경되지 않는 문제점을 발견했다.

평소에는 신경쓰지 않다가 꼭 한번씩 여러개의 창을 동시에 띄워 놓았을때, 헷갈려서 제대로 된 작업 공간을 찾기까지 꽤나 여러번 창을 이동해야 했던 불편함이 있었다.

며칠을 미루다 이번에 변경을 하여 그 내용을 포스팅한다.

간단하다. 위의 그림 처럼 자신의 홈디렉토리 내에 .bashrc 파일의 제일 아래쪽에 아래의 라인을 추가해주면 된다.

PROMPT_COMMAND=’echo -ne “33]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}07″‘