블로그 이미지
물결(Wave)
하고 싶은 것만 하며 살고 싶다

calendar

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
2013.07.29 11:20 HP N40L 홈 서버 구축기
2013.07.29 11:20 HP N40L 홈 서버 구축기
2013.07.29 11:19 HP N40L 홈 서버 구축기
2013.07.29 11:08 HP N40L 홈 서버 구축기

HP Proliant Microserver Gen7 N40L


Hardware

HP N40L (Ram 2GB x 2)

HDD: WD 320GB(OS), Toshiba 3TB(Data)


OS

uBuntu


File Sharing

ftp

samba

afp


Media Server

serviio



신고
posted by 물결(Wave)
2010.03.03 23:29 분류없음

무려 1테라 바이트의 용량을 제공하는 세컨드라이브가 아이폰 앱 출시 기념 이벤트를 진행한다고 합니다.
경품이 빵빵하네요~~^^

특히 전용 스피커는 전에 회사 동료분이 구입하신걸 본 적이 있는데 포스가 장난이 아닙니다.
저도 응모는 했는데 당첨의 행운이 따를지 모르겠네요 ㅋㅋㅋ

이벤트 참여하기
신고
posted by 물결(Wave)
javascript로 xml 문서를 파싱하려면 꼭 필요한 메서드중 하나가 바로 hasAttributes 입니다.
hasAttributes 는 해당 노드에 정의된 속성(attribute)가 있는지를 확인해 주는 메서드 입니다.

아래와 같은 xml 문서가 있을 경우,
<xml>
    <guest age="20" name="Asrada" />
</xml>

다음과 같이 하면 guest 노드를 획득 할 수 있습니다.
var xmlDoc = document.createXMLDocument("샘플 문서");
xmlDoc


그리고 


IE는 hasAttributes 메서드를 지원하지 않습니다.

하지만 다행스럽게도 attributes 속성(property)은 지원합니다.

결국 크로스 브라우징을 위해서는 hasAttributes 메서드 대신 attributes 속성을 이용해야 합니다.


신고
posted by 물결(Wave)
2009.11.26 13:55 분류없음
짝 프로그래밍(Pair Programming)의 가장 효율적인 방법은 하나의 키보드로 두 명이 번갈아 가며 코딩 하는 것일텐데요.
여건 상 그러한 방법이 허용되지 않는 경우에는 어쩔 수 없이 원격으로 진행이 되어야 합니다.

이러한 원격 짝 프로그래밍을 Eclipse에서 쉽고 편리하게 할 수 있도록 도와주는 플러그인과 사용 방법을 소개합니다.


Saros


Saros는 이클립스에 플러그인으로 등록되어 현재 작업중인 프로젝트를 원격지에 있는 대상과 공동으로 작업할 수 있도록 해줍니다.

Saros를 사용하기 위해서는 이클립스에 Saros 플러그인 - DPP 를 설치해야 합니다.

update url : http://dpp.sf.net/update

플러그인이 설치되면 이클립스 환경설정 패널에 Saros 항목이 추가됩니다.


그리고 View 도 추가 됩니다.



하지만 플러그인을 설치한다고 하여 바로 짝프로그래밍을 할 수 있는 건 아니고 원격지의 상대방과의 통신을 지원해줄  XMPP 서버를 설치해야 합니다. 환경설절패널에서 Jabber setting 부분이 바로 XMPP 서버와 관련된 부분입니다.
XMPP 서버는 어느것을 사용하여도 상관 없지만 Saros 홈페이지에는 OpenFire를 예시로 들고 있어 저는 OpenFire 로 설치를 하였습니다.


OpenFire

OpenFire는 XMPP 서버로 멀티 플랫폼(Windows, Linux, Mac)을 지원하는 오픈소스 프로젝트입니다.(GPL)
설치도 간단하고 관리자 기능을 웹에서 사용할 수 있기 때문에 편리합니다.

저는 맥에서 진행을 하였기에 맥에서의 설치 방법을 설명하도록 하겠습니다.
다른 플랫폼에서의 설치 방법은 홈페이지에 자세히 나와 있으니 참고하시길 바랍니다.

For Mac

최신 버전(2009.11.26 현재 v3.6.4)을 다운로드하고 압축을 풀면 자동적으로 이미지가 로딩됩니다.



설치는 클릭 두 세번으로 간단히 끝납니다.


설치가 완료되면 환경설정 패널에 openfire 항목이 추가됩니다.


설치 직후에는 아래와 같이 서버가 자동으로 실행됩니다.


서버 설치는 완료되었지만 아직 셋팅이 되지 않았습니다.

웹으로 진행되는 셋팅 과정을 마쳐야 비로소 openfire 가 제대로 동작을 하게 됩니다.
"Open Admin Console" 버튼을 클릭해서 셋팅 페이지를 띄웁고 간단한 서버 설정과 DB설정, 관리자 비밀번호를 등록하면 셋팅이 완료됩니다.

자세한 내용은 여기를 참고하세요.

셋팅이 완료되면 바로 로그인 페이지가 보입니다.
관리자의 아이디는 admin 이고 비밀번호는 셋팅시 설정한 비밀번호를 사용하시면 됩니다.
그런데 OpenFire 3.6.4 버전에 버그가 있는지 로그인이 제대로 안되는 경우가 있습니다.
이 때는 OpenFire 서버를 재 시동 하면 되니 당황하지 마세요~~^^


관리자로 로그인을 하면 서버의 정보와 사용자 정보등 서버 전반에 걸친 관리 작업을 할 수 있습니다.
이제 모든 준비가 끝났습니다.

아 그전에, Saros 에서 사용할 사용자를 추가 해야겠죠?
Users/Groups 메뉴에서 사용자를 추가할 수 있습니다.


이제 다시 Saros 입니다.
OpenFire 서버에 사용자를 등록했으니 Saros 에서 등록한 사용자 정보와 OpenFire 서버 정보를 입력해 주어야 합니다.

환경설정 패널에서 Jabber setting 부분에 XMPP 서버 정보와 XMPP 서버에 등록한 사용자 정보를 입력합니다(관리자 정보가 아닙니다),

이제 모든 준비가 끝났습니다.
사용하는 일만 남았죠~
설치 과정이 좀 번거로울 뿐 사용 방법은 간단합니다.
  1. Roster 뷰에서 로그인을 하고(우측 상단에 있는 버튼을 클릭하면 됩니다.)
  2. 동료를 추가합니다(역시 우측 상단에 버튼이 있습니다.)
  3. 프로젝트목록에서 대상 프로젝트를 공유합니다(프로젝트에서 우측 버튼을 클릭하면 "Share Project" 메뉴가 보입니다.)
  4. 초대할 동료를 선택합니다.(로그인 되어 있는 사용자만 보여집니다.)
  5. 짝 프로그래밍을 합니다.



신고
posted by 물결(Wave)
2009.09.16 12:05 Programing/Java
팀내에서 진행하는 프로젝트에 ppt 파일에 포함된 슬라이드를 개별 이미지로 변환해 주는 기능이 필요하여 무료로 제공되는 Apache POI 를 사용해보고 이에 대해 간단히 정리해봅니다.

Apache POI

Apache POI 프로젝트는 Microsoft Format 의 파일들을 엑세스를 지원하는 Java API 라이브러리 입니다. 2009년 9월 16일 현재 3.2 Final 버전과 3.5 beta 6 버전 까지 릴리즈 되었습니다.


POI Components

POI는 MS 오피스의 각 문서 포멧에 대응하는 다양한 컴포넌트를 지원하고 있습니다.


저는 이 중에서 ppt를 위한 컴포넌트인 HSLF를 사용하여 슬라이드를 이미지로 변환하였습니다.
사용법은 무척 간단하고 쉽습니다.

우선 POI 라이브러리를 다운로드 하고 압축을 풀면 3개의 jar 파일을 볼 수 있습니다.(3.2 Final 버전 기준)


HSLF 컴포넌트를 사용하기 위해서는 poi-3.2-FINAL-20081019.jar 와 poi-scratchpad-3.2-FINAL-20081019.jar 파일을 import 해야 합니다.



FileInputStream is = new FileInputStream("slideshow.ppt");
SlideShow ppt = new SlideShow(is);
is.close();
        
Dimension pgsize = ppt.getPageSize();

Slide[] slide = ppt.getSlides();

for (int i = 0; i < slide.length; i++) {
    BufferedImage img
 = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB);
    Graphics2D graphics = img.createGraphics();
    
    //clear the drawing area
    graphics.setPaint(Color.white);
    graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

    //render
    slide[i].draw(graphics);

    //save the output
    FileOutputStream out = new FileOutputStream("slide-"  + (i+1) + ".png");
    javax.imageio.ImageIO.write(img, "png", out);
    out.close();
}

아래 이미지는 실제 제가 저 코드를 사용하여 클래스를 작성하고 테스트 해본 결과입니다.
3장짜리 ppt 를 변환하니 3장의 png 파일이 만들어졌습니다.


변환된 이미지를 확인해 보니 텍스트가 약간 뭉개지긴 하지만 썩 괜찮은 결과물이었습니다.

마치며

3.2 Final 버전에서는 아직까지 MS Office 2007의 pptx 포멧을 지원하지 않고 있습니다. 다행이도 현재 pptx 지원을 위해 개발 중이라고 하니 다음 릴리즈에서는 pptx 도 문제없이 변환될 것 같습니다.

아주 간단한 코드만으로 ppt 파일을 이미지 파일로 손쉽게 변환 가능하 POI-HSLF 컴포넌트.
만약 PPT파일 변환 기능때문에 고민중이시라면 저는 주저없이 Apache POI 를 권하고 싶습니다.

신고
posted by 물결(Wave)
2009.02.10 02:13 분류없음

공통적인 로직은 인터페이스화하고 알고리즘은 하위 클래스에서 구현한다.


우리는 일반적으로 퇴근 후 집에 들어갈 때 다음과 같은 단계를 거친다.

1.사무실을 나선다.
2.집으로 간다.
3.문을 연다.
4.신발을 벗는다.
5.문을 닫는다.

이런 과정은 매번 집에 갈 때 마다 되풀이 되는 과정이다.

하지만 사람마다 사무실을 나서는 방법, 집으로 가는 방법, 문을 여는 방법, 신발을 벗는 방법 등이 모두 다르다.

신고
posted by 물결(Wave)
2008.12.30 12:09 삶은달걀

당신의 과거가 궁금하다면 지금의 처지를 살펴보라.

당신의 미래가 궁금하다면 지금의 행동을 살펴보라.

신고

'삶은달걀' 카테고리의 다른 글

과거와 미래가 궁금하다면...  (0) 2008.12.30
부모가 된다는 것  (0) 2008.01.04
한글날 Daum 이 보여준 센스  (0) 2007.10.09
예비군 훈련  (2) 2007.09.21
새로 산 내 휴대폰이 중고??  (0) 2007.09.10
Smalltalk 객체마을 오프라인 모임  (0) 2007.08.31
posted by 물결(Wave)