'Tip & Tech'에 해당되는 글 23건

  1. 2007.07.15 ubuntu 에서 c 컴파일 하기. by 하루하루
  2. 2007.07.05 간단한 javascript alert 라이브러리 embox.js 1 by 하루하루
  3. 2007.07.05 cocoa 블러그 1 by 알 수 없는 사용자
  4. 2007.06.26 터미널 이상 - stty sane 2 by 하루하루
  5. 2007.06.20 어떤 디렉토리 안의 전체 파일 내용 바꾸기 by 하루하루
  6. 2007.06.18 모니터링 스크립트 만들기. with perl by 하루하루
  7. 2007.05.25 우분투 freemind 설치 후 한글이 안되었을 때(자바 설정 문제임 ^^) by 알 수 없는 사용자
  8. 2007.05.18 ubuntu 시간맞추기(timezone 변경해서 맞추는 방법) 2 by 알 수 없는 사용자
  9. 2007.04.26 mysql 사용자 설정. -_-; by 하루하루
  10. 2007.04.12 즐겨 쓰는 FreeWare ... by 하루하루
기본적으로 ubuntu 를 설치하면, 개발자에게 정말 필요한 패키지가 설치 되지 않습니다.
저도. 오늘에야 컴파일을 해보고 알았다는... -_-;;;

sudo apt-get install build-essential
sudo apt-get install manpages-dev

위 명령어를 통해서 개발툴을 설치하도록 합시다~ ^^
Posted by 하루하루
prototype.js 기반의 간단한 javascript alert box 라이브러리 - embox.js


 prototype.js  와 javascript 를 공부하면서 배웠던것을 써먹어 보기도 할겸, 겸사겸사 한번 만들어 봤습니다. 보기싫은 alert 창 대신에 lightbox 느낌으로 경고를 해줄수 있게 됩니다.

사용 방법은 간단합니다.
압축 해제 하고 나서 나오는 js 파일과, css 파일을 각각 필요한 장소에 복사 하시고, 필요한 곳에서 링크를 걸어주세요 그리고서, 다음과 같이 코드를 작성해 주시면 되겠습니다.

function onBoxShow(msg){
    var objBox = new embox(msg,{width:'400', height:'200' });
    objBox.showBox();
}

전체 코드는 압축 해제하면 나오는 embox.html 을 참조 하세요. ^^;

embox 클래스의 문법은 다음과 같습니다.

- syntax -
 new embox(msg, {options});

- example -
 var objBox = new embox('hi there~!!', {url:"http://efolder.tistory.com", btnValue:"Go Go", width:'400', height:'200'});
 objBox.showBox();


options 에 옵션을 넣느냐 마느냐에 따라서 동작 방식이 달라지게 됩니다.
현재는 4개의 options 를 정의 할 수 있습니다. width와 height 를 정의 하지 않으면 default 값이 들어가게 되고요, btnValue 를 지정하게 되면 경고창에 나오게 되는 버튼에 표시되는 문자를 정의 할 수 있습니다.  마지막으로, url 옵션은 btnValue 와 함께 쓰여야 하는데요, url 을 써주게 되면 창이 닫히면서 지정한 url 로 페이지가 이동하게 됩니다.

정리를 해보자면

  • lightbox 처럼 사용하려면 : btnValue 옵션을 주지 않습니다.
  • 창의 크기를 조절하려면 : width, height 값을 조절 합니다. 주의 할점은 숫자만 쓰면 됩니다. px 와 같은 단위를 붙일 필요 없습니다.
  • 버튼을 클릭하게 하여 닫히게 하고 싶을때는 : btnValue 옵션을 줍니다.
  • 경고창이 닫힐때 원하는 url로 이동하려면 : url 옵션과, btnValue 옵션을 줍니다.

간단하죠? ^^;

사용자 삽입 이미지






Posted by 하루하루

cocoa 블러그

Tip & Tech : 2007. 7. 5. 13:59
올만이네용.. 으흐

ㅋㅋ Mac 프로그래밍을 하게 되어서 자료조사하다보니...
tistory에 블로그가 있어서 올려놔요...

근데 난 이 블러그 아무리 봐도 좀 어려워 ㅋ

http://cocoadev.tistory.com/
Posted by 알 수 없는 사용자
가끔 터미널에서 작업을 하다가 보면 터미널이 맛이 갈때가 있습니다.
음.. 엔터를 치면 일반적으로 라인이 아래로 내려가면서 프롬프트가 이동이 되어야 하는데, 어떤 작업후에 이렇게 되지 않고, 옆으로 계속해서 이어져서 반응이 나올때가 있습니다.
이럴때, 여지껏 저는 그냥 다시 터미널을 실행시켰습니다만...
해결 방법이 있더군요.. ^^

[]# stty sane

이라고 하시면 제대로 돌아옵니다.
어떤 경우에는 타이핑 하는것이 화면에 안찍힐 때도 있지만, 그냥 치시고 엔터 치시면 명령이 먹을 것입니다.

그럼 즐작, 즐프 하세여.. ^^
Posted by 하루하루
쉘 스크립트입니다.
보통 작업을 하다가 보면, 어떤 특정한 디렉토리안의 모든 파일에서 특정한 문자열을 전부 바꿔주어야 하는 경우가 종종 있습니다.
이럴때는 다음과 같이 One line Script 를 기억해 주시길 바랍니다. ^^


[]# for filename in $(ls -l targetdir | grep -v '^d' | awk '{print $8}'); do  sed -e 's/OLD STRING/NEW STRING/g' targetdir/$filename > NEWDIR/$filename; done;


Posted by 하루하루

오늘은 코드 이야기좀 하겠습니다.  일종의 삽질기 입니다...;;
고수분들이 보시면 황당한 해법일 수도 있겠으나, 나름 고민한 최선의 방법 이네요. 크흑.
더 좋은 방법을 알고 계시면 트랙백 달아주세요....


어떤 데몬의 모니터링 스크립트를 만들다 보면 다음과 같은 문제점에 봉착할때가 있습니다.

해당 데몬이 제 역할을 수행하고 있는지를 확인하는데 사용하는 tool 로써 'monitorTool' 이라는게 있다면 보통 다음과 같이 실행을 시켜 보겠지요

[]# monitorTool example.co.kr


그럼 결과는 보통 3가지로 나타나게 됩니다.

1. OK
2. FAIL
3. WAIT

해당 툴을 가지고 모니터(상태 체크) 스크립트를 짤때 문제가 되는것은 3번 입니다. 시간이 중요한 상태체크에서 WAIT 가 걸려 버리면, 보통 일정 TIMEOUT을 주고 해당 시간이 지나서 리턴이 되게 되면 FAIL 로 처리하게 됩니다.

이게 보통의 로직이죠. 그런데, perl 과 같은 스크립트에서 다른 바이너리 명령어를 써서 모니터링을 할때는 이런 처리를 하기가 쉽지 않네요.

왜냐하면 보통 외부 프로그램을 실행 시킬때는 exec()  , system() , open() 함수로 실행을 하기 때문이지요.  이때  메인 스크립트에서 TIMEOUT 을 줄수 있는 방법은 없습니다. ( 혹시 아시는분 트랙백....혹은. 댓글.... 부탁 드려요..) 그래서 저는 c로  monitorTool를 실행할 컨테이너를 하나 만들었습니다. c 에서는 쓰레드로 빼서, TIMEOUT을 줄 수 있으니 가능 하더군요.

perl 스크립트 에서..

...
open(FH, "./runMonitorTool $REMOTE_HOSTNAME |");
my $ret = <FH>;
...

이런식으로 하면,  runMonitorTool 이라는 c 프로그램이 찍는 output 메세지 들을 FH 에서 받을 수가 있습니다. 따라서, C 프로그램에서 상태에따라 다른 값을 넘겨주면 좀더 세세한 제어가 가능해 지겠죠.

TIMEOUT 문제는 해결된거 같은데 아직 문제는 남아 있습니다.
monitorTool 이 사용자에게 알려주는 정보는 해당 시스템이 괜찮다 아니다를 메세지를 찍어서 보여주게 된다고 가정을 하면, 지금까지 한 프로그램은 큰 오류가 있습니다. WAIT에 걸리지 않고, 장애시 바로 리턴하게 되면 이때도 장애로 인식하지 않는것이죠. TIMEOUT에 걸리지 않았으니까요.

이 문제를 해결하기 위해서는 monitorTool 이 뿌려대는 메세지를 파싱해서 장애 판단을 해야 합니다. 하지만, C 에서 외부 프로그램을 실행하고, 그 외부 프로그램이 실행하면서 뿌려대는 메세지를 받을수가 없더군요. ( 이것또한 방법을 아시는 분은 저에게 트랙백이나.. 댓글을...쿨럭..;;;; ) 하지만, 프로그램이 실행후 끝나는 종료 코드는 얻어 올수 있지요.

그래서, 마지막으로 monitorTool 을 실행시킬 perl 코드를 짭니다. -_-;;; perlRunMonitor.pl 을 만듭니다. 이넘은 무슨 짓을 하냐면 단순히 monitorTool 을 실행시키고 메세지를 받아서 파싱하여 장애 판단후 종료 코드를 주어서 종료합니다.

이를테면 다음과 같죠

#!/usr/bin/perl

.....
open (FH , "monitorTool server |");
my $statusOK = 0;

while(my $ret = <FH>) {
        if( $ret =~ /I am OK/g ){
                $statusOK =1;
                break;
        }
}

close FH;

if( $statusOK == 0 ){
        exit 1;
}

이렇게 되면, 지정된 OK  문자열이 파싱될경우를 제외하고는 종료코드 1을 리턴하게 됩니다. 지정된 OK 문자열이 파싱될경우에는 정상 종료를 하게 되지요.
그럼 C 에서는 종료 코드를 얻어와서 그에 맞게 처리해 주고, TIMEOUT 이 나면 이것또한 에러처리를 해주게 됩니다.

그럼 정리를 해보면 다음과 같습니다.

PERL Main Script  -> C Run Container -> Perl Run Script


아 삽질이군여. 좀더 좋은 방법을 아시면 알려주세요오오오....

Posted by 하루하루
우분투 설치하고... ( 처음부터 한글로 하든... 영어로 하든... 현재 상태가 한글입력기는 있는 상태라고 가정한다.) freemind 를 설치한 다음에 한글을 적어넣지 못할 때.

나의 경우
OS : Ubuntu 7.04 Feisty Fawn
환경 : 초기 한글 설치로 한글 입력기 있음.
문제 : freemind 설치 후 메뉴에서 한글이 다 깨져나오며, 또한 한글 입력시 ㅁ 만 나오면서 제대로 입력이 안됨.

해결(=> 설치 history)
4. Freemind
   []# http://freemind.sourceforge.net/wiki/index.php/Main_Page
   []# sudo apt-get install java-package sun-java6-jre rhino libjcalendar-java librelaxng-datatype-java libjaxp1.2-java libcommons-lang-java libbsf-java
   []# Debian Linux - link click
   []# freemind_0.8.0-1_all.deb, freemind-plugins-help_0.8.0-1_all.deb, freemind-plugins-svg_0.8.0-1_all.deb
       freemind-plugins-time_0.8.0-1_all.deb, libforms-java_1.0.5-2_all.deb - Download
   []# Ref. : http://siliconchaos.blogspot.com/2006/05/setting-up-freemind-in-ubuntu-dapper.html
   []# libbatik-java_1.5.1-1_all.deb - Download
   []# sudo dpkg -i AllDownloadedFile
4.1 여기서 프로그램 자체에서 한글 세팅을 못가져옵니다.(이미 한글 세팅 다 되어 있음.)
    이유는 자바설치 시 기본적으로 잡는 한글 폰트의 path 가 틀리게 잡혀있기 때문입니다.
    이걸 바로 잡으면 한글이 제대로 나옵니다.
   []# cd /usr/lib/jvm/java-6-sun/jre/lib/
   []# sudo vi fontconfig.properties    : 실제 이 파일은  /etc/java-6-sun/ 에 링크된 파일입니다.
    filename.-misc-baekmuk_batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/batang.ttf
    filename.-misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/gulim.ttf
     위 두줄이 잘못되어 있습니다. 각 ttf 파일 앞에 baekmuk 라는 디렉토리가 들어가면 됩니다. 다음과 같이 ^^
    filename.-misc-baekmuk_batang-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/baekmuk/batang.ttf
    filename.-misc-baekmuk_gulim-medium-r-normal--*-%d-*-*-c-*-iso10646-1=/usr/share/fonts/truetype/baekmuk/gulim.ttf
   []# Ref. : http://www.ubuntu.or.kr/wiki.php/
          http://www.ubuntu.or.kr/wiki.php/MainPage
          http://www.ubuntu.or.kr/wiki.php/%ED%95%9C%EA%B8%80%EC%84%A4%EC%A0%95
          http://www.ubuntu.or.kr/wiki.php/JDK1.5%ED%95%9C%EA%B8%80%ED%99%94
          http://www.ubuntu.or.kr/wiki.php/JavaInstall
          http://www.ubuntu.or.kr/wiki.php/JDK1.5%ED%95%9C%EA%B8%80%ED%99%94#s-3

이상입니다.
그럼 수고하세요.
Posted by 알 수 없는 사용자
설치할 때 실수로 타임존을 엉뚱한 걸로 맞추어놓고 세팅했었네요.
그래서 기존에 사용했던 rdate, ntpdate 등을 사용해서 맞추어봤는데 잘 안되어서,
아예 타임존을 바꾸는 방법을 찾아서 세팅했습니다.

환경
OS : Ubuntu Feisty fawn 7.10
기존 타임존 : US/Eastern

바꾼 히스토리
[]# mv /etc/localtime /etc/localtime-ORIG
[]# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime


헐.... 이렇게 하는 방법을 취하기까지 시간 소비 좀 했습니다. ^^;

Posted by 알 수 없는 사용자
< mysql 사용자 권한 설정. >

mysql> grant all privileges on *.* to 'user'@'host' identified by 'new_password';

mysql> flush privileges;

참고 페이지

< root 암호 설정 >

mysqladmin -u root -p password new-password



맨날 잊어 먹고, 맨날 구글링 해서 쓴다.
잊어먹지 말자. -_-;;;
Posted by 하루하루

즐겨 쓰는 FreeWare ...

Tip & Tech : 2007. 4. 12. 10:45
요즘 회사내에서 소프트웨어 라이센스 문제가 논의 되는 것으로 알고 있습니다.
살것은 사고, 그 외에 것은 프리웨어로 쓰자는 쪽으로 기운거 같구요..
오피스도 꼭 필요한 사람 몇몇을 제외한 회사내 직원들은 Open Office 를 사용하게 될꺼 같네요.

그 외에 윈도우를 쓰다보면 자질구래한 유틸리티들(알게모르게 컴퓨팅환경에서 스며들어있는..)이 라이센스를 얻어야 하는것들이 꽤 있습니다.
그런데 찾아 보면 그런 상용제품들을 대체할 만한 프리웨어 들이 꽤 있더군요. 제가 골라본 프리웨어 몇가지를 정리해 보도록 하겠습니다. ^^;
  • 압축 유틸리티 - 7-zip, 빵집
    • 국산 압축 유틸리티의 대명사 '알집' 많이 쓰시죠? 물론 회사에서 쓸때는 유료 입니다.
  • telnet/ ssh / scp client - 한글Putty , putty , WinSCP
  • FTP - FileZilla
  • Text Edit - DesyEdit, Notepad2
  • Music Player - foobar2000
  • Movie Player - GOM Player  , KMP Player
  • 그외 유틸리티
    • FolderGuide
      • 잦은 폴더 이동과 자료 정리를 수십개의 폴더로 나누어 탐색기에서 여러번 클릭질을 하여 이동해야 하는것이 너무너무 싫으신분을 위한 프로그램.
      • 자세한 소개는 여기 를 참조 하세요. ^^
    • CCleaner
      • 레지스트리 청소해주는 것과 비슷한 툴 입니다.  쓸데없는 파일과, 레지스트리, 시작프로그램 등등, 윈도우 관리에 필요한 프로그램.
    • Free Mind 
      • Mind Mapping tool 중 프리웨어 버전 입니다.
    • StarUML
      • Open Source UML 툴 입니다.
    • Strokeit
      • 예전에 전체 메일에서도 한번 소개한 적이 있는 프로그램 입니다.
      • FireFox 와 같은 브라우저에서 마우스 제스처에 익숙한 사용자라면, 브라우저에서 뿐만 아니라, 다른 툴에서도 마우스 제스쳐 기능을 써보고 싶은 욕심이 생길 텐데.. 그런 고민을 해결해 주는 툴입니다. ^^;

이정도 되네요. 앞으로 유용한 유틸리티 보게 되면 종종 소개 하도록 하겠습니다.



Posted by 하루하루