1/20/2014

IT관련 무료 eBook을 다운받을 수 있는 사이트





우연히 발견한 사이트인데,

IT관련된 eBook들을 PDF 형식으로 다운로드를 제공한다.

주로 프로그래밍에 관한 원서가 굉장히 많다.

그리고 모두 무료!

내가 좋아하는 Head First 시리즈들이 거의 다 있길래 전부 다운받았다.

아 그리고 물론 영어.

1/17/2014

OpenNLP 1.5.3 API를 C# 라이브러리로 변경하는 방법


1. ikvm 최신버전을 다운 받는다 (http://www.ikvm.net/download.html).

2. OpenNLP 바이너리 파일도 다운 받는다 (http://opennlp.apache.org/cgi-bin/download.cgi). apache-opennlp-1.5.3-bin.zip 을 다운받으면 됨.

3. UIMA 바이너리 파일을 다운 받는다 (http://uima.apache.org/downloads.cgi).

4. 오라클에서 javamail api을 다운 받는다 (http://www.oracle.com/technetwork/java/index-138643.html).

5. 다운 받은 파일들의 압축을 전부 푼다.

6. ikvm 압축푼 폴더로 가서 bin 폴더에다가 2,3,4 에서 다운받은 jar 파일들, jwnl-1.3.3.jar, mail.jar, opennlp-maxent-3.0.3.jar, opennlp-tools-1.5.3.jar, opennlp-uima-1.5.3.jar, uima-core.jar, 이 6개 파일을 집어넣는다.

7. 윈도우에서 command 명령어를 이용해 ikvm의 bin 폴더로 이동한다.

8. 그리고 아래의 명령어를 입력해준다.

ikvmc -target:library -assembly:opennlp opennlp-maxent-3.0.3.jar jwnl-1.3.3.jar opennlp-uima-1.5.3.jar opennlp-tools-1.5.3.jar uima-core.jar mail.jar

9. 그럼 오류가 뜨긴 뜨는데 무시해도 된다.

10. 이제 아래의 파일들을 C#에서 add reference를 통해 추가만 해주면 쓸 수 있다.


  • opennlp.dll
  • IKVM.Runtime.dll
  • IKVM.OpenJDK.Core.dll
  • IKVM.OpenJDK.Jdbc.dll
  • IKVM.OpenJDK.Text.dll
  • IKVM.OpenJDK.Util.dll
  • IKVM.OpenJDK.XML.API.dll
  • IKVM.OpenJDK.Charsets.dll



참고로 모델 파일들은 [여기]에서 다운이 가능하며, 예제들은 [여기]에서 확인이 가능하다.

시간나면 예제들 올리겠음.


추가:

모델 파일 중에서  en-pos-maxent.bin 이 파일이 있는데, 이 파일을 winrar이나 압축 프로그램으로 열면 (압축을 풀라는 말이 아님) tags.dagdict 이라는 파일이 있는데 그걸 지워줘야지 제대로 쓸 수 있다.


예제:

만약 문장을 분리해내고 싶다면,

string ModelPath = @".\Model\";
java.io.FileInputStream modelInpStream = new java.io.FileInputStream(ModelPath + "en-sent.bin");
opennlp.tools.sentdetect.SentenceModel sentenceModel = new opennlp.tools.sentdetect.SentenceModel(modelInpStream);
private opennlp.tools.sentdetect.SentenceDetectorME sentenceDetector = new opennlp.tools.sentdetect.SentenceDetectorME(sentenceModel);
string[] input = sentenceDetector.sentDetect(txtboxInput.Text);
txtboxOutput.Text = string.Join("\n", input);

이런식으로 사용하면 된다.

1/05/2014

우분투 서버 아파치2에서 계정마다 주소 주는 방법


일단 vsftpd같은 ftp 프로그램으로 접속이 되는지 확인한다.

그리고 유저 계정에 public_html 이라는 폴더를 생성한다.

cd /etc/apache2/mods-enabled/
sudo ln -s ../mods-available/userdir.conf
sudo ln -s ../mods-avaiable/userdir.load

위의 명령어를 실행시킨 후

sudo service apache2 restart 

를 해주면

http://서버ip/~계정

이런식으로 접속이 가능해진다.


출처: http://www.androidstar.net/?p=22

우분투 서버 (13.10) 20분마다 ping 보내기


터미널에서

sudo crontab -e

를 치면 원하는 에디터를 고르라는 메뉴가 뜬다. 원하는 에디터를 고르고

*/20 * * * * ping -c1 보내고_싶은_주소

입력후 저장.

그리고 sudo service cron restart 를 해주면 된다.


만약 로그를 남기고 싶다면

*/20 * * * * ping -c1 google.com; echo "DONE AT $(data)" >> /var/www/pinglog.log

*/20 * * * * ping -c1 google.com >> /var/www/pinglog.log && echo "DONE AT $(data)" >> /var/www/pinglog.log   결과물도 저장하고 싶다면



이런식으로 입력해주면 된다.


우분투 서버 백업 / 복원 하기


우선 루트 디렉토리로 간다.

cd /

그리고 tar 을 이용해서 전체 백업을 한다.

sudo tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system / 

혹시 빼주고 싶은 폴더가 있다면

--exclude=/필요없는_폴더

이런 식으로 옵션을 추가 해주면 된다.

백업이 다 되었으면 usb 에 따로 저장을 해주자.

sudo fdisk -l

명령어로 usb의 파티션과 파일시스템을 확인한다. 보통 /dev/sdb1 일 것이다. 파일 시스템은 FAT 아니면 NFTS 일 것이다.

이제 media 폴더에 usb 마운트를 위한 폴더를 만들어주자.

sudo mkdir /media/usb

그리고 여기에다가 USB를 마운트해주자.

sudo mount -t vfat /dev/sdb1 /media/usb 파일 시스템이 FAT일 경우
sudo mount -t nfts-3g /dev/sdb1 /media/usb 파일 시스템이 NFTS일 경우
마운트가 되면 백업 파일을 복사 (또는 이동)을 해주자.

sudo cp backup.tar.gz /media/usb/backup.tar.gz

복사가 다 되면 마운트를 해지하고

sudo umount /dev/sdb1

USB를 뽑으면 된다.




복원하는 방법은 일단 Live CD가 필요하다 (만드는 방법). 그리고 부팅을 Live CD로 한 다음, gparted 명령어를 이용해 하드를 포맷을 해주자.

그리고 하드를 USB처럼 마운트를 해준다.

그리고 난 후, 백업 파일이 있는 곳으로 가서

sudo tar -xvpzf backup.tar.gz -C /마운트한_경로 --numeric-owner

입력해주고 압축이 다 풀리면 sudo reboot 을 통해 재부팅을 하면 된다.

1/04/2014

넷빈즈 프로젝트 별로 메모리 할당 늘리는 방법


넷빈즈 프로젝트에서 오른쪽 버튼을 누르고

Properties -> Run 을 보면 VM Options 라고 보이는데

거기에

-Xms64m -Xmx256m

위의 값을 넣어주면 된다. 숫자는 바꿔줄 수 있음.

넷빈즈 기본 인코딩 UTF-8 로 변경하기


넷빈즈가 설치된 폴더로 가서 etc 폴더를 찾는다.

그리고 netbeans.conf 파일을 열어서

netbeans_default_options 로 시작하는 줄을 찾아서

-J-Dfile.encoding=UTF-8

이걸 추가 하고 넷빈즈를 재시작하면 된다.

맥에서 넷빈즈 완전 삭제하기


넷빈즈(Netbeans)를 완전 삭제 하는 방법은 다음과 같다.

우선 기본 Application 폴더에서 Netbeans를 찾아서 폴더를 삭제한다.

맥에서 Library 폴더는 2개가 존재하는데, 최상위에 있는 라이브러리 폴더와 그리고 유저 하위에 있는 라이브러리 폴더가 있다. 이 두개 라이브러리 폴더에서 다음과 같은 폴더를 찾아서 싹 다 삭제하면 된다 (없는 폴더도 있음).


  • /Library/NetBeans
  • /Library/Application Support/NetBeans
  • /Library/Preferences/NetBeans
  • /Library/PreferencePanes/NetBeans
  • /Library/StartupItems/NetBeans
  • /Library/Caches/NetBeans


1/03/2014

크롬 깨알 같은 팁


새로고침을 할 때 캐시된 걸 불러오지 않고 다시 서버에서 받아오는 방법

CTRL(CMD) + SHIFT + R 을 누르면 됨.




크롬 주소창에 자동완성된 사이트를 지우기

마음에 들지않는 주소가 나올 때 SHIFT + DEL 키를 눌러서 삭제하면 됨.

JQuery(제이쿼리)로 화면 중앙에 나타내기


HTML

<div class="className">THISHALL.COM</div>



JQUERY

<script type="text/javascript">
$( document ).ready(function() {
 $(window).resize();
}); 
$(window).resize(function(){
    $('.className').css({position:'absolute'}).css({
        left: ($(window).width() - $('.className').outerWidth())/2,
        top: ($(window).height() - $('.className').outerHeight())/2
    });
});
</script>

className은 마음대로 해줘도 됨.

이렇게 해주면 브라우저 크기를 바꿔도 계속 화면 가운데에 정렬이 된다.

우분투 서버(Ubuntu Server)에서 Device failed to enter state 1 오류 해결 방법


노트북이 RT2500 (Ralink) 랜카드를 쓰는데

자꾸

[숫자.숫자] ieee80211 phy0: rt2500pci_set_device_state: Error - Device failed to enter state 1 (-16)

이런 오류가 자꾸 떴다.

구글링 결과 커널 문제라고 하길래 커널을 최신버전으로 깔기 위해서

우분투 서버 12.04 에서 우분투 서버 13.10으로 새로 설치하고

업데이트까지 싹 하니까 오류 메시지가 안나오는가 싶더니..

또 뜨기 시작. 노트북에 깔아서 자동으로 랜카드에 전원이 차단되는거 같아서

/etc/systemd/logind.conf

여기서

HandlePowerKey=ignore
HandleSuspendKey=ignore
HandleHibernateKey=ignore
HandleLidSwitch=ignore

위의 설정들을 추가하고 reboot. 참고로 저 설정들은 노트북 닫았을 때 절전모드 (sleep 모드)로 안빠져가게 해주는 옵션들. 그래도 또 오류가 뜨기 시작함.

그래서 다시 구글링을 열심히 한 결과

sudo iwconfig wlan0 power off

이 명령어를 실행시켜주면 안뜬다.



추가:

우분투 서버를 껐다켜면 다시 또 뜰텐데

sudo vi /etc/rc.local

를 통해서 exit 0 전에 위의 명령어를 추가해주면 됨.

1/02/2014

우분투 서버 (Ubuntu Server) 13.10 AMP + Tomcat 서버 세팅

까먹을까봐 미리 포스팅해놓는다.

일단 우분투 홈페이지에서 Ubuntu Server를 다운받고 USB로 설치를 한다 (이것도 못하면 우분투 쓰지마라. 진심).

마지막 설치 과정에서 미리 설치할 것을 고를 수 있는데

OpenSSH server
LAMP server
Tomcat Java server
를 고를 것.

그리고 설치 후에


sudo apt-get update && sudo apt-get dist-upgrade -y
sudo do-release-upgrade // 이건 우분투 자체 업데이트. 하고 싶으면 해도 됨

를 해서 업데이트를 해준 후

sudo reboot

으로 서버를 껐다켜준다.


그리고 라우터에 접속해서 포트 포워딩을 해줌.

참고로 서버에서

ifconfig

라고 치면 ip가 나오니까 그리로 포트 포워딩을 해주면 된다.

포트 번호는 참고로

FTP: 21
SSH: 22
MySQL: 3306
Tomcat: 8080
Apache: 80


그 후에 

sudo apt-get install vsftpd

로 vsftpd 를 다운로드 받는다.

sudo vim /etc/vsftpd.conf

해서 

anonymous_enable = NO
local_enable = YES
write_enable = YES

이정도로만 바꿔주면 된다. 상세 설정은 구글링하면 되고.

sudo /etc/init.d/vsftpd restart

저장 후 재시작하기

vsftpd에서 이용할 계정 추가는

sudo adduser 사용자아이디
로 추가 하면 됨.

/var/www/ 의 권한이 필요한데,

sudo chown -R 계정이름 /var/www
sudo chmod -R 755 /var/www

이렇게 해주고

ln -s /var/www /home/계정이름/html

뭐 이런식으로 심볼릭 링크를 만들어주거나


sudo vi /etc/passwd

를 통해서 계정의 홈 디렉토리를 변경해주자.


그 다음 MySQL에서 외부 접속을 허용하도록 하자.

sudo vi /etc/mysql/my.cnf

저 파일을 열어서

bind-address = 127.0.0.1

이 부분에 #을 붙여서 주석처리 한다.

sudo service mysql restart

그리고 재시작


여기까지 하면 AMP (Apache, MySQL, PHP) 까지는 작동이 잘 된다. 물론 Tomcat서버도 잘 작동한다.

확인을 위해서

http://ip주소

를 치면 It works! 라고 뜨면 아파치 서버는 잘 작동하는 것임.


/var/www/

이 경로에 test.php 파일을 만들고

<?php
    print_r(phpinfo());
?>

저렇게 입력후 저장한 다음

http://ip주소/test.php

로 접속해서 잘 나오는지 확인한다.

php도 잘 나온다면

Tomcat 서버를 확인하기 위해

/var/lib/tomcat7/webapps/ROOT/

경로로 간 후 

로 폴더를 하나 만들어주고 그 안에다가

jspTest.jsp 파일을 이렇게 하나 만들어주자

<HTML>
 <HEAD>
  <TITLE>Hello World</TITLE>
 </HEAD>
 <BODY>
  <H1>Hello World</H1>
  Today is: <%= new java.util.Date().toString() %>
 </BODY>
</HTML>

그리고 저장 후

http://ip주소:8080/jspTest.jsp

로 확인해주자.


만약 Tomcat 웹 어플리케이션을 이용하고 싶다면

sudo vi /etc/tomcat7/tomcat-users.xml

에서 쭉 내리다가 </tomcat-user>바로 이 전에

<user name=“아이디” password=“비번” Roles="admin-gui, manager-gui, manager-script, manager-jmx, manager-status" />

추가 하고 저장, 재시작한다.

그러면 

http://ip주소:8080/manager/html
http://ip주소:8080/host-manager/html

로 접속이 가능하다.




이제 AMP랑 Tomcat 서버랑 같이 나오게 하기위해 libapache2-mod-jk 를 설치해주자.

sudo apt-get install libapache2-mod-jk


그리고

sudo vi /etc/tomcat7/server.xml

를 열어서

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

이 부분을 주석해제하고 저장


sudo vi /etc/apache2/workers.properties

파일을 하나 만들어주자. 내용물은

worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=1 // 이 부분의 숫자를 늘리면 jsp 처리속도가 빨리진다.



그 후에 

sudo vi /etc/apache2/mods-available/jk.conf

를 열어서 보면 JkWorkersFile 항목의 경로가 다르게 되어있는데 밑에처럼

JkWorkersFile /etc/apache2/workers.properties

이렇게 경로를 방금만든 파일로 바꿔준다.


마지막으로

sudo vi /etc/apache2/sites-enabled/000-default (숫자 0임)

파일을 열어서

<VirtualHost *:80>
# DocumentRoot /var/lib/tomcat6/webapps/ROOT/
DocumentRoot /var/www/
....중략....
JkMount /*.jsp worker1
</VirtualHost>

DocumentRoot 경로와 마지막줄에 처리할 파일 확장자를 추가해주자.


sudo /etc/init.d/tomcat7 restart
sudo /etc/init.d/apache2 restart

서버 둘다를 재시작해주고 테스트 jsp 파일을 /var/ www/ 에 만들어준다음

http://ip주소/testJsp.jsp

이렇게 입력해서 아까의 화면이 나오는지 확인한다.