동아리에서 작은 FTP 서버를 운영하는데

아무래도 동아리 서버다 보니까 이하드 저하드 끼워 맞춰놓아서 하드만 무지하게 많고,

또 툭하면 정전되고... 온도도 높아서 뚜껑열어서 하드 만지면 손 데일 정도고...-_-;

이런 상황에서 레이드 해놨다가 하나라도 뻑나면 완전 도루묵이라 그냥 각각 나눠놓고 쓰고있었다.

그런데 하드가 약 5개 정도 되다보니 각 하드별로 디렉토리 관리하기도 벅차지는것이다.

그래서 생각한게 로드밸런싱 FTP 서버!

FTP 서버이긴 한데 파일을 올리면 마운트된 각 하드들의 용량을 체크해서 가장 적게 쓰고있는 하드에다가 알아서 올려주는 기능을 한다.

또한 나눠져있는 각 하드를 하나의 하드 보듯이 검색할수 있게 해 준다.

Apache MINA FTP Server 를 이용해서 구현해 봤다.

'내작품' 카테고리의 다른 글

JAVA 지렁이게임  (753) 2009.01.13
JAVA 비행 애니매이션  (48) 2009.01.13
JAVA 로드밸런싱 FTP Server!  (19) 2009.01.05
PHP 코또복권  (20) 2008.04.21
AJAX 채팅방 업그레이드.  (26) 2008.02.20
제대로 간단하게 HTML 에디터를 설치해보자! - cranixEditor  (26) 2007.08.21
by cranix 2009.01.05 15:13

예전에 만들었던 제로보드용 복권 시스템.

코또는 아래와 같은 기능이 있습니다.
1. 이월기능
당첨자가 없으면 당첨금이 다음추첨으로 이월됩니다.
만약 2등만 있고 1등은 없는경우엔 1등 당첨액만 이월됩니다.
2. 자동추첨기능
3일마다 컴퓨터가 알아서 추첨을함으로 공정한 추첨이 이루어 집니다. (어드민 모드에서 설정가능)
누적당첨금의 90퍼센트는 1등당첨자들이 나눠가지게되며 나머지 10퍼센트는 2등당첨자들이 나눠가지게 됩니다.(어드민모드에서 설정가능)
[복권사기]
1. 로그인 (로그인 하지 않을시에는 전당첨번호와 누적당첨금액만 보임)
2. 커뮤니티-코또복권에 들어가서 원하는 번호를 선택한다음 [복권사기] 클릭합니다.
3. 복권을 산 후에는 아랫쪽에 자신이 산 복권이 나왔는지 확인합니다.
[당첨금수령하기]
1. 로그인
2. 커뮤니티-코또복권에 들어가셔서 원하는 회차를 검색합니다.
3. [당첨상태] 란에 [당첨금수령] 을 클릭합니다.
※ 어드민 기능중에 [포멧] 버튼은 위험함으로 더블클릭해야 실행되도록 만들어 놓았습니다.

by cranix 2008.04.21 01:29

예전에 만들었던 AJAX 채팅방 업그레이드판 입니다.

jsp 기반으로 되어있으며 DB 는 필요없습니다.

테스트 주소 : http://apps.cranix.net/CranixChatForAJAX

아래 소스는 이클립스 프로젝트를 그대로 export 한것입니다.

- 기본채팅
- 공개/비밀 방 생성
- FireFox 지원
- 오목(IE 전용)


by cranix 2008.02.20 21:07

HTML 에디터를 만들었다.

언제나 그랬듯 내 프로그램의 모토는

적용은 간단하게!

사용은 편리하게!

이다.


이번것도 적용하는거 무지하게 쉽게 해놨다.

사용자 삽입 이미지

위 그림은 기본폼에 적용해 본것이고,

소스와 설명은 아래에...

by cranix 2007.08.21 16:31

사용자 삽입 이미지

이 프로그램의 모토는 간편하게 이다.

설치도 간편 쓰기도 간편.

activex 같은거 안썻고 javascript 로 되어있어서 무지하게 가볍다.

document 내에 레이어 이런거 하나도 안만들어줘도 된다.

어떤 스크립트와도 충돌 안나게 혼자서 알아서 잘 돌아갈것이다.

소스는 아래에..

by cranix 2007.08.04 17:14
자바스크립트로 구현한 게임들.

1. 지뢰찾기 게임
사용자 삽입 이미지
http://cranix.net/mine/MineFind.html


2. 미로찾기 게임
사용자 삽입 이미지
http://cranix.net/miro/miro.html

미로를 한번 클릭후 방향키로 미로찾기.
by cranix 2007.05.08 23:52
CSS, HTC, tag

회사에 select 태그를 이용하는 페이지가 있었는데.. 이놈이 어느순간 상당히 긴~ 값을 가지더니 태그 자체도 늘어나버려서 테이블을 다 깨먹는 사고를 쳐버렸다..ㅡ.ㅡ;
이것때문에 페이지를 하나 더 만들어서 페이징처리하고.. 등등 하기엔 너무 귀찮았다..ㅡ.ㅡ;
어디 좋은방법 없을까 하며 뒤지며 다니다가 htc 라는 것을 보게되었다.
백문이 불여일견이다.
만들어 보도록 하자.

사용자 삽입 이미지

이런 셀렉트박스를 아래와같이 바꾸는 HTC 를 만들어 보겠다.

사용자 삽입 이미지

이것은 위에 보이는 텍스트박스에 글자를 입력하면 해당되는글자가 필터링되서 아래 리스트에 나타나는 것이다.

자. 먼저 이걸 javascript 만으로 구현한다고 생각해보자.
일단 구현은 했다고 치자.
그런데 select 태그가 수십개다?
그러면 어떻게 모든 태그에 적용을한다?
이거 만드는거보다 더 노가다일꺼다..ㅡ.ㅡ;
이 모든것을 말끔히 해결해준게 htc 였다.
htc 로 구현하면 아래와같이 behavior 하나만 추가해주면 바로 변경이 된다.

[code html]<select name="selectbox_focus" style="behavior: url('selectBox.htc');">
<OPTION VALUE="1">옵션 1</OPTION>
<OPTION VALUE="2">옵션 2</OPTION>
<OPTION VALUE="3">옵션 3</OPTION>
<OPTION VALUE="4">선택 1</OPTION>
<OPTION VALUE="5">선택 2</OPTION>
<OPTION VALUE="6">선택 3</OPTION>
<OPTION VALUE="7">옵션 4</OPTION>
<OPTION VALUE="8">옵션 5</OPTION>
<OPTION VALUE="9">옵션 6</OPTION>
<OPTION VALUE="10">선택 4</OPTION>
<OPTION VALUE="11">선택 5</OPTION>
<OPTION VALUE="12">선택 6</OPTION>
<OPTION VALUE="13">옵션 7</OPTION>
<OPTION VALUE="14">옵션 8</OPTION>
<OPTION VALUE="15">옵션 9</OPTION>
<OPTION VALUE="16">선택 7</OPTION>
<OPTION VALUE="17">선택 8</OPTION>
<OPTION VALUE="18">선택 9</OPTION>
</select>[/code]

이거.. 상당히 편하다.
그럼 이제 htc 파일 만드는법을 알아보자.

 [code xml]<public:component>
<public:attach event="ondocumentready" handler="initSelectBox" />
<public:property name="setWidth" put="setupWidth" />
<public:property name="setPopupWidth" put="setupPopupWidth" />

<script>

//TODO

</script>

</public:component>[/code]

위와같은 형태로 만든다.
이게 끝이다.
나머지는 <script></script> 부분에서 javascript 로 처리해주면 된다.

 

1.<public:component>

이 구문은 htc 선언부다.
htc 는 html component 라고도 부르기때문에 이런형태의 선언이 생긴거 같다.

2.<public:attach event="ondocumentready" handler="initSelectBox" />

이부분은 htc 가 걸려있는 오브젝트의 이벤트를 잡아내는 것이다.
"ondocumentready" 라는것은 htc 가 포함되어있는 문서의 로드가 끝났을때를 가르킨다.
뒷부분의 handler 부분에 써있는것은 스크립트 부분에 구현해 줘야한다.

3.<public:property name="setWidth" put="setupWidth" />

이 부분은 property 를 설정하는 부분이다.
<select name="selectbox_focus" style="behavior: url('selectBox.htc');" setWidth="100">
select 태그의 htc 선언부를 위와같이 property 를 추가해서 넣을수도 있다.
이 property 는 init 보다 먼저 실행된다.

4. <script></script>

이부분은 처리를 담당할 javascript 를 쓰는 부분이다.
여기서 this 는 해당 오브젝트를 가르킨다.
자세한 소스는 첨부되어있는 파일을 보기바란다.

- 추가 -

htc 파일을 웹서버에서 쓰려면 해당 웹서버에 mime 타입이 선언되어 있어야 한다.
톰켓 5.5 에는 기본으로 선언되어 있었는데 resin3 에는 없었다.
이거때문에 좀 고생했다..ㅡ.ㅡ;
다른 서버는 테스트 안해봤지만 혹 서버에 올렸는데 htc 가 실행이 안된다면 아래와같이 mime 타입을 선언해 주길바란다.

[code xml]<mime-mapping>
       <extension>htc</extension>
       <mime-type>text/x-component</mime-type>
</mime-mapping>[/code]

 

by cranix 2006.12.16 20:16
| 1 2 |