VirtualBox에 Centos 7을 깔았습니다.

Linux에서 가장 잘 쓰는 기능 중 하나는 작업공간(Workspace)간 이동인데, 기존 Centos 5 또는 6 처럼 'ctrl + alt + 왼쪽/오른쪽 화살표' 눌러도 이동이 되지 않았습니다. 해외 포럼을 찾아보니, Virtualbox의 자동으로 키보드 잡기 체크박스를 비활성화 하면 된다는데 그것도 안되고 Host키를 변경해도 안되더라구요.

확인해보니 Workspace가 기존에는 가로로 4개가 있었다면, 7에서는 세로로 4개가 있습니다. 즉 'ctrl + alt + 위/아래 화살표'로 이동해야 단축키로 workspace 간 이동이 가능합니다.

감사합니다.

I have installed the centos 7 on the virtualbox but shortcut (ctrl+alt+left/right key) for shifting workspace did not work properly even if I changed the configuration of the virtualbox. The workspace was vertical rather than horizontally and you can change your active workspace with ctrl+alt+up/down key.

Posted by kkckc
,

윈도우 10 업그레이드 이후 아래와 같이 Virtualbox 호스트 전용 어댑터 설정시 동작하지 않는 경우가 발생하였습니다.


오류 메시지는 Failed to open/create the internal Network로 다음과 같습니다.

그런 경우 네트워크 연결 속성에서 Virtualbox Host-Only Network속성을 확인합니다.


아래 그림과 같이 Virtualbox NDIS6 Bridged Network Driver가 체크안되어 있는 경우 체크합니다.


감사합니다.



Posted by kkckc
,

Getter/Setter Macro입니다.
코드에 하나씩 (1) 선언 (2) Get (2) Set Method를 작성할 필요가 없게 되며, 필요시 구분하여 사용하여 시간을 절약할 수 있습니다.

감사합니다.

The follow codes are the example macro of getter/setter. This code can auto-generate (1) defintion (2) getter method (2) setter method once at all and you can save you time :)

Thank you very much.

1) Make a Header File as follows


2) Sample Code

2.1) Sample Header

2.2) Sample Code


Posted by kkckc
,

안녕하세요.

서버 프로그래밍 시 레드햇 엔터프라이즈를 많이들 구매하시는데요.
라이센스 관련 정보에 대해 인터넷에 찾아보아도 정확한 정보가 없습니다.

한국레드햇에서 답변 받은 라이센스 정책은 다음과 같습니다.
===============================================================
구매하셔서 사용하시고 계신 레드햇 엔터프라이즈 리눅스 서브스크립션과 관련하여,

레드햇 리눅스 서브스크립션은 기술지원이 필요한 제품에만 서브스크립션 계약을 맺는 것이 아닌, 귀사에서 사용 중이신 모든 레드햇 제품과 관련하여 맺으셔야 하는 계약입니다. (OEM 제품 포함)

이는 레드햇 엔터프라이즈 계약 1.2 조항 소프트웨어 사용과 서브스크립션 서비스 조항에 명시되어있습니다.

===============================================================

문의한 사항을 요약하면, 다음과 같습니다.

1. 레드햇 엔터프라이즈의 경우 구독(서브 스크립션) 년 단위의 계약이다.

 => 윈도우와 같이 구입하면 영구적으로 쓸 수 있는 것이 아님

 

2. 계약 단위는 사용 개수이다.

 => 회사에서 3대를 깔고 쓰면 3대만큼의 계약을 맺어야 함.

 

3. 년 단위 구독 계약을 하지 않는 경우 공개버전(예: Centos)만 사용 가능하며, 기존 Redhat Enterprise는 삭제해야 한다.

 => 서브스크립션만 서비스를 종료하면 되는 것이 아님

 => 년 단위 구독을 하지 않고 레드햇 엔터프라이즈 계속 사용 불가

 => 추가적으로, 인터넷에 접속되지 않아 서브스크립션을 사용하고 있지 않더라도. 미 계약후 Redhat 계속 사용 불가

 

계약 조항 전문은 다음에 있습니다:

http://www.redhat.com/licenses/apac_enterprise_agreement_appendices_one_and_two_webversion_korea_20150513v2.pdf

 

감사합니다.

Posted by kkckc
,

1. 윈도우 계열의 IP 충돌 CASE

(1) 컴퓨터 이름 얻기 (예: 172.23.37.186의 경우)  : nbtstat 사용  (윈도우 계열)
==========================

nbtstat -a 172.23.37.186
  
로컬 영역 연결:
Node IpAddress: [172.23.37.184] Scope Id: []

           NetBIOS 원격 컴퓨터 이름 테이블

       이름               유형         상태
    ---------------------------------------------
    KANGAA <00>  UNIQUE      등록됨
    WORKGROUP      <00>  GROUP       등록됨
    KANGAA <20>  UNIQUE      등록됨

    MAC 주소 = 08-11-96-81-A4-41

 

===>> 컴퓨터에 이름을 지정해 놓았다면, 위의 KANGAA 등을 통해 강씨 누구가 사용중이구나 알 수 있습니다.


(2) 같은 네트워크의 경우 (윈도우 네트워크 로그온)
==> 윈도우 -> 실행 -> \\172.23.37.186  
와 같이 입력할 경우사용자 명이 간단히 뜨고 로그인 화면이 뜹니다.
이때 해당 윈도우의 유저명이 함께 뜨므로 추적이 가능합니다.

2. 기타 계열  충돌 CASE (linux, 전화기, 공유기)
(1) port scan을 합니다. (리눅스 명령)
예)
linux shell) nmap -sT 172.23.37.186
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-05-06 10:06 KST
Interesting ports on 172.23.37.186:
Not shown: 1679 closed ports
PORT     STATE SERVICE
8000/tcp open  http-alt

(2) 위와 같은 경우 8000번이 열려 있습니다. 접속해보면 대강의 정보를 알 수 있습니다.
     공유기 또는 전화기의 경우 web interface를 지원하므로 해당 정보를 유추 가능합니다.

 

======================================

감사합니다.

Posted by kkckc
,

apache-log4cxx-0.10.0-patched.tar.gz


log4cxx  컴파일 안되는 경우 해결법 (A solution for the log4cxx compile error)

- It has been tested on gcc 4.6.1

1. Add "#include <string.h>" on those files
apache-log4cxx-0.10.0/src/main/cpp/inputstreamreader.cpp
apache-log4cxx-0.10.0/src/main/cpp/socketoutputstream.cpp

2. Add "#include <string.h>" and "#include <stdio.h>" on this file
apache-log4cxx-0.10.0/src/examples/cpp/console.cpp

3.Change those Makefile.am, change the first one to the second one.
(1) src/main/include/log4cxx/private/Makefile.am,

    * "privateinc_HEADERS= $(top_builddir)/src/main/include/log4cxx/private/*.h log4cxx_private.h"
    * "privateinc_HEADERS= $(top_builddir)/src/main/include/log4cxx/private/*.h"

(2) src/main/include/log4cxx/Makefile.am

    * "log4cxxinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/*.h log4cxx.h"
    * "log4cxxinc_HEADERS= $(top_srcdir)/src/main/include/log4cxx/*.h"

4. configure & make & make install (root)

Posted by kkckc
,

아이폰을 쓰다가 기변 하신 분들의 경우, 문자가 기존 폰의 i-message로 날아가는 경우가 발생합니다. 다음은 아이폰이 없는 상태에서 이를 해제하는 방법입니다.

1. https://supportprofile.apple.com/MySupportProfile.do  접속후
2. 로그인
3. 내 폰 리스트가 나오면
4. "unregister"를 클릭합니다.


아이폰이 있는 상태에서 아이메시지 끄는 방법은 다음 링크를 참고하세요.

http://clien.career.co.kr/cs2/bbs/board.php?bo_table=lecture&wr_id=124549


Posted by kkckc
,

1. MINGW(Minimum GNU for Windows)를 받고 설치합니다.
  
2. JDK와 Netbeans를 받고 설치합니다.

3. MSYS-1.0.11.exe을 설치합니다.

4. 윈도우의 환경변수에 PATH에 mingw 디렉토리를 추가합니다.
PATH = c:\;C:\MinGW\bin;

5. Tools -> option -> c/c++ 에서 MINGW 이 설치된 디렉토리를 선택합니다. 디렉토리를 설정하면 다른 경로가 자동으로 잡힙니다.


6. Make부분이 잘 잡히지 않는데, 위의 'Make Command' 부분의 경로를 아까 우리가 msys를 깔아준 디렉토리로 설정합니다.
- 여기서는 'c:\msys\1.0\bin\make.exe' 입니다

7. 이제 간단한 프로그램을 작성해 봅니다. :)


Posted by kkckc
,

2009년 12월부터, 구글의 사전 기능은 Answer.com사이트에서 독립하여 콜린스(Collins COBUILD) 사전을 기본으로 하는 서비스를 제공하였습니다.

하지만, 현재시간 확인(11년 8월 6일)결과 서비스가 중지된 상태입니다. 이유를 조사해보니 다음과 같네요.

 

* 구글 제품 매니저는 그 이유를 Google Support Forum에서 다음과 같이 설명하고 있다고 합니다.

"Google Dictionary was recently integrated into Google Web Search. Simply search for "define X" where X is the word you want to look up. Clicking on the "more" link (or on the toolbelt "Dictionary" link on the left) will give you practically the same experience that was available on dictionary.google.com.

We're working hard to make the dictionary experience even better on google.com so it will be easier for our users to get the dictionary experience without the need to go to a separate property."

"구글 사전은 최근 구글 웹 검색에 통합되었습니다. 검색은 "define X(찾고 싶은 말)"을 검색 창에 입력하는 것으로 대체되었습니다. '

우리들은 Google.com에서 사전 기능을 더 잘 사용할 수 있도록 현재 개발 중이며, 모든 사용자들이 '사전'과 '검색'의 영역을 따로따로 분리하지 않고 쉽게 통합하여 사용할 수 있게 될 것입니다.

 

즉, 아래와 같이 서비스 됩니다.

기사 출처: http://thenextweb.com/google/2011/08/05/google-closes-its-dictionary-site-wants-you-to-search-for-definitions-instead/

 

사전서비스는 정말 유용했는데, 아쉽군요. (설마.. 사전도 beta였던것일까요;;)

그나저나, 구글 자체적으로도 사전을 링크하는 링크들이 남아있는 것을 보면 확실히 정리된 상황도 아닌 듯 한데, 왠지 루머였으면 하는 기사입니다.

Posted by kkckc
,

중국과 인접한 나라여서 그런지 몰라도, 제가 지금 거주하고 있는 몽골은 바이러스의 천국입니다.

외부인의 USB의 경우, 70%이상 바이러스에 감염되어 있고, 네트워크 바이러스 등도 상당합니다.

그래서, 윈도우 재설치 요청도 은근히 많이 들어오고, 백신은 무엇을 써야 하는지에 대한 질문도 많이 받습니다.

개인적으로 컴퓨터 바이러스에 대한 면역을 올리는 방법들을 정리해보았습니다.

1. 윈도우 보안 설정

가끔, 윈도우에 업데이트를 쓰지 않는 경우를 많이 보게 됩니다.

윈도우 업데이트는, 기본적으로 '윈도우의 보안 문제를 FIX'하는 경우가 많기 때문에 보안을 위해서는 꼭 해주는 것이 좋습니다.

추가로, 윈도우 계정에는 암호를 설치하는 것이 좋습니다. 왜냐하면, 동일 네트워크상의 다른 컴퓨터가 감염된 경우 영향을 받을 수 있기 때문입니다.

 2. 백신 선택

가끔, 사람들이 윈도우 재설치 요청으로 컴퓨터를 들고 올 때, 많은 경우 '알약'이 백신으로 깔려 있습니다.

알약은 나쁘지 않은 백신이라고 생각하지만, 바이러스의 특징 상 95%의 검진율을 가지고 있는 백신이라도, 남은 5%의 확률로 바이러스에 감염되면 컴퓨터는 바보됩니다.

특히, 인터넷의 발달로 바이러스가 보편화 된 요즘은, 더욱 조심해야 합니다.

개인적으로 추천하는 백신은 유료 백신은 노턴 백신을 무료 백신은 MSE(마이크로 소프트 백신)을 추천합니다.

두 백신 모두 인터페이스가 직관적이고, 검진율이 높습니다.

 

개인적으로 추천하지 않는 백신은 알약, 하우리입니다. 이유는 단순합니다. 검진율이 낮기 때문입니다. 그 외로, V3의 경우 요즘 검진율을 높이고, 외국의 백신 테스트에서도 좋은 성적을 거두는 등 선전하고 있지만, V3를 깐 이후, 바이러스에 걸린 적이 몇 번 있는 저로써는, 한번 잃은 신뢰를 회복하기란 쉽지 않네요.

(아래 AhnLab이 V3입니다. 60%정도의 결과를 보여주네요. 하우리는 인증을 통과하지 못하였습니다. 알약은 목록에서 찾아 볼 수 없군요.)

출처: http://www.virusbtn.com/vb100/rap-index

자세한 것을 보고 싶은 분은 이 링크를 참조하세요: http://www.virusbtn.com/vb100/archive/summary

 

또 한가지 중요한 점은, 백신 업데이트입니다. 의외로 이를 간과하는 분들이 많이 있는데요. 귀찮더라도 이것만 잘 지켜주셔도 검진률이 비약적으로 올라갑니다 ^^

그리고, 백신을 2개 깔면 바이러스를 더 잘 잡지 않을까 해서 2개씩 까시는 분들 있는데요. 결론만 말씀드리면 오히려 백신간 충돌이 발생할 수 있으며, 권장되지 않습니다.

 

정리하면, 다음과 같습니다. 바이러스에 걸리고 싶지 않으시다면..

  • 윈도우 업데이트 꾸준히 하세요
  • 백신은 위 도표를 참고해서 높은 검진율을 가진 백신을 하나 잡으세요.
    • 바이로봇, 알약은 그야말로 무난합니다….
  • 백신 업데이트도 중요합니다 :)
  • 백신은 하나만 까세요.
Posted by kkckc
,
iPhone을 Ipod dock에 설치하여 사용하고 있습니다.

하지만, 언제부터인가 이 액세서리는 iPhone과 연동되지 않습니다.
(This accessory is not made to work with iPhone) 라는 글과 함께
iPhone의 알림창과 진동이 지속적으로 발생하는 문제에 시달리고 있었습니다.

의외로 이 문제로 고민하는 사람이 꽤 있었음에도 불구하고, 쓸만한 정보를 찾기가 어렵더군요. (해외에서 소개하는 방법은 ssh를 설치해서 iapd라는 파일을 교체하는 방법이 있지만, 제 경우 동작하지 않았습니다.)

다음 방법은 아래 사이트에서 소개하는 방법입니다. 제 설명이 어려운 경우 아래 사이트의 동영상을 보시면 더 쉽게 해결하실수 있습니다.

http://mobile-4u.net/this-accessory-is-not-made-to-work-with-iphone-easiest-fix-100-works-for-2g-3g-and-3gs/

* 탈옥폰만 가능합니다.

1. Cydia을 클릭합니다.
2. 아래 텝에서 MANAGE 를 클릭합니다.
3. 두번째 아이콘 SOURCES를 클릭합니다.
4. Edit -> Add New Source를 합니다. (상단 메뉴)
   => cydia.xsellize.com 를 추가합니다.
5. 이제 Cydia에서 Search로 popup을 찾습니다
  => 아이콘이 ? 로 되어 있는 Popup Blocker를 설치합니다
6. 이제 설정(Setting)에 가시면, Popup Blocker 셋팅이 있습니다.
  => Alert -> Accessory Warning 에서 설정을 바꿉니다 ~!  (On, On. Off)
      Alert -> Airplane Mode Warning 에서 설정을 바꿉니다 ~!  (On, On. Off)
       Block Away Items (On)
       Enabled (On)


Posted by kkckc
,
리눅스에 프린터를 연결 후 samba로 공유설정시, 윈도우즈에서 다음 메시지가 나올 수 있습니다.

액세스가 거부되어서 프린터를 연결할 수 없습니다.

이와 같은 경우 삼바의 환경설정 파일에 다음을 추가합니다.
(/etc/samba/smb.conf)

# use client driver
use client driver = yes

출처 : http://www.linuxquestions.org/questions/linux-networking-3/samba-client-access-denied-unable-to-connect-122851/


Posted by kkckc
,
자바에서 mp3를 play해볼 일이 생겨서
인터넷을 이것저것 뒤져보았습니다.

1. JMF (mp3 support)
기능이 많은 만큼 무겁고...
java의 가장 큰 장점인 write once, run anywhere
이런거 힘들어보입니다 -_-

2. JavaSound API 의 JavaSound Service Provider Interfaces (SPIs)
구글링 하면 가장 윗선족에 뜨는 방법중에 하나입니다.
AudioInputStream 이런걸 사용해서 하는 것 같은데
잘 안되서 다른 걸 찾아보았습니다.

3. javazoom
이거 편하네요.

import javazoom.jl.player.*;

URL url = new URL(URLBASE+word+".mp3");
 Player player = null;
try {
               URL url = new URL(URLBASE+word+".mp3");
               URLConnection uc = url.openConnection();
               uc.setDoInput(true);//GET방식
               player = new Player(uc.getInputStream());
               player.play();
} catch (Exception e) {
               e.printStackTrace();
 }

이런식으로만 사용하면, 바로 웹에 있는 내용을 mp3로 play 가능합니다
inputstream 이라면 다른 것도 잘 되는듯 합니다.

Posted by kkckc
,
Valkyrie is a one&only utility to analyze valgrind log file under the GUI.
This is a manual to install Valkyrie program for Ubuntu User.

1) Install QT Library
sudo apt-get install libqt3 libqt3-mt-dev libqt3-headers

2) Set a Symbolic Link

shell) cd /usr/share/qt3/include/
shell) ln -s /usr/share/qt3/mkspecs/linux-g++/qplatformdefs.h
shell) ls -lrt qplatformdefs.h
lrwxrwxrwx 1 root root    48 Sep 24 12:06 qplatformdefs.h -> /usr/share/qt3/mkspecs/linux-g++/qplatformdefs.h

3) Get a valkyrie file from valgrind site
=> http://valgrind.org/downloads/guis.html

4) unzip it and compile it as a ordinary step 
shell) ./configure
shell) sudo make
shell) sudo make install

5) This is an example that shows us how can we make xml file with the valgrind program. (summary.exe)
shell) valgrind -v --leak-check=full --tool=memcheck --xml=yes --log-file=./summary.xml summary.exe

6) type a valkyrie and load xml file.

God Bless you.
Posted by kkckc
,

Even though many of the c programmers are using time_t data type to express a date format in the oracle database. It is nearly hard to convert each other. Thus, I made a function to convert it.
(Actually, time _t data type in an oracle is like as a long type in the c programming)


(1) First, you need to get a beginning of the second with a following program.

(compile and run it)

#include <stdio.h>
#include <time.h>

int main() {
      struct tm tt;
        tt.tm_year = 1970-1900; // The number of years since 1900
        tt.tm_mon = 0;
        tt.tm_mday = 1;
        tt.tm_hour = 0;
        tt.tm_min = 0;
        tt.tm_sec=0;
        tt.tm_isdst = -1;
        int tx = mktime(&tt);
        printf("%d", tx);
}

in Korea: -32400

time_t is the number of seconds since the Epoch, 1970-01-01 00:00. (UTC)

(2) Put the result of (1) to the red marks.
86400
: 60*60*24 (sec*min*hour)

-- This Function Is For DATE -> time_t (second)
CREATE OR REPLACE FUNCTION DATE_TO_SECOND (v_date DATE) RETURN NUMBER AS
BEGIN
  RETURN
     trunc((v_date-to_date('19700101','YYYYMMDD'))*86400-32400) ;
END;
/
-- This Function Is For time_t (second) -> DATE
CREATE OR REPLACE FUNCTION SECOND_TO_DATE (v_sec NUMBER) RETURN DATE AS
BEGIN
  RETURN
    numtodsinterval((v_sec+32400) , 'second')+to_date('19700101','YYYYMMDD') ;
END;
/



Posted by kkckc
,