Spring JMX

Spring에서 설정만으로 기본 객체를 MBean으로 등록해 JMX클라이언트가 호출할 수 있게 한다. @ManagedAttribute와 @ManagedOperation 차이는 getter/setter로 처리할 수 있는 속성은  @ManagedAttribute로 어노테이션하고, 그외 getter/setter가 아닌 메소드호출을 위해서는 @ManagedOperation으로 어노테이션한다. @ManagedOperation JDK 1.5+ method-level annotation that indicates to expose a given method as JMX operation, corresponding to the ManagedOperation attribute. Only valid when used on a method that is not a JavaBean getter or setter.  @ManagedAttribute JDK 1.5+ method-level annotation that indicates to expose a given bean property as JMX attribute, corresponding to the ManagedAttribute attribute. Only valid when used on a JavaBean getter or setter.

tomcat Content is not allowed in trailing section

tomcat Content is not allowed in trailing section 톰켓로드 될때 설정xml 파일을 읽지 못했을때 발생한다. 어설프게 xml 파일끝에 공백이나 가비지 값이 있는지 확인해 봐야 한다.

pem파일을 가지고 ssh로 Amazon EC2 접속

접속 방법 >> ssh -i pk.pem root@xxx.xxx.xxx.xxx 위와 같은 방법으로 접속을 시도하면 ppk는 ignored되고 비밀번호를 넣으란다. 검색하니 바로 답이 나오네  [1] Permissions 0644 for 'pk.pem' are too open. It is recommended that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: NHNOpenSourceWeb.pem root@xxx.xxx.xxx.xxx's password:  chmod 600으로 바꿔주고 접속하니 잘 된다. >> chmod 600 pk.pem  [1] http://stackoverflow.com/questions/201893/ssh-into-amazon-ec2-instance

MacOS Lion 설치 후, no acceptable C compiler found in $PATH

이미지
새로 받은 맥북프로에 SSD를 달았는데 뭔가 궁합이 안맞는지 전원을 켜면 하드를 못읽는 화면을 내밷곤 했다. 용량이 작아 사진과 음악을 포기하고 살았는데 이참에 다시 HDD로 원복 + ODD(Secondary HDD)  작업까지 해버렸다. 그런데 Lion을 새로 설치하고 Macport를 이용해 필요한 패키지들을 설치하려는데 아래처럼 Macport가 설치되지 않았다. checking for cl.exe... no configure: error: in `/opt/mports/trunk/base': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details 어라? 컴파일러가 없어??? 정말 컴파일러가 패스에 없다. 그전에는 분명 /Developers라는 폴더가 있었고 그안에 관련 bin들이 있었는데 이젠 생기지 않았다. 여기저기 뒤적이니 더이상 Developers폴더를 제공하지 않는단다. App Store를 통해 설치한 XCode에서 우클릭 > "패키지 내용 보기"를 하니 그 안에 Developers폴더가 있다. 이 안에 bin을 path로 걸어줄까? 이렇게 바보같이 했을까? 라고 좀 더 찾아보니... Xcode를 실행시키고 Preferences > Download에서 Command Line Tools를 다운로드/설치하면 되더라.  [1] 아니면 아래 처럼 직접 웹페이지에서 다운로드 받아 설치하면 된단다. Xcode > Open Developer Tool > More Developer Tools... ODD작업하는 사진을 찍지 못한게 아쉽네 ㅋㅋ [1]  http://guide.macports.org/chunked/installing.xcode.html

Android, MediaPlayer IllegalStateException 상황

이미지
참고 :  http://developer.android.com/reference/android/media/MediaPlayer.html TF에서 MediaPlayer를 Override할 일이 생겨 테스트하는데 Play/Stop을 하면 연신 IllegalStateException를 일으킨다. MediaPlayer문서를 보니 답이 있다. 잊기전에 주요한 내용들 정리해보자. 아래 State Diagram는 MediaPlayer가 사용자 액션을 받아 취해지는 상태(State)를 의미 객체가 생성되면 Idle상태에서 사용자 이벤트(메소드호출)에 따라 상태가 변함, (편의를 위해 만든 create는 Initialized상태로 됨.) 촉이 한개인 화살표는 Sync, 쌍촉? 화살표는 Async로 이벤트가 처리되는 것을 의미 [중요]  상태(State)흐름이 Stopped가 되면 그 상태에서 Paused, Started, PlaybackCompleted로 이동하지 못한다. 즉, stop()메소드가 불러지면 start(), seekTo(), pause() 메소드를 다시 부를 수 없다는 의미이다. 내가 혼돈했던것이 이부분이다. 보통 Start/Stop을 할 수 있다고 생각하지 않나? 그건 내생각이고 그 원하는 바로 되려면 Start/Pause이다. Stop된 객체를 다시 Start하고 싶으면 Prepare()해야한다. 이렇게 State이동을 잘못하면 IllegalStateException이 발생한다. MediaPlayer를 이용한 작업을 마치면 반드시 release()를 해서 리소스 반환 MediaPlayer 객체를 생성하는 방법 create()와 new, create()를 사용하면 바로 Initialized상태로 진입, new를 사용하면 Idle상태로 진입. 당연한것이 create()를 할때 datasource를 넣어 객체를 한다. 

CAP theorem

이미지
분산환경에서의 CAP theorem 자료 출처 : http://blog.nahurst.com/visual-guide-to-nosql-systems 번역 : http://blog.outsider.ne.kr/519 C (Consistency) : 모든 노드가 같은 시간에 같은 데이터를 보여줘야 한다. A (Availability) : 몇몇 노드가 다운되어도 다른 노드들에게 영향을 주지 않아야 한다. P (Partition Tolerance) : 몇몇 메시지가 손실되어도 시스템은 정상 동작을 해야 한다. [1]  http://sjlee.egloos.com/5447532 [2]  http://freesearch.pe.kr/archives/1831

근황

#. blogger.com 으로 옮기고 이놈의 블로그는 에디터가 정말 후지다라고 투덜 투덜댔었는데 역시 구글;; 오랜만에 죽어가는 블로그를 들어와 이것저것 누르다 새로운 UI에 빠져 감탄. #. 언제부턴가 오픈되는게 부담이 되더라. 뭔가 나와의 약속을 공표하는것 같고. 요샌 이런 저런 정보들을 왠만해서는 Evernote에 정리를 하는데 여기 남겨보는것도 나쁘지 않을것 같아. #. 새로운 파트를 맡고 뭔가 새로운 재미에 푹 빠져살고 있다. 내것을 만드는것, 그게 꼭 제품이 아니여도 사람과의 관계...? 뭐 그런거? 만든다는것에 푹 빠져든다. #. 지난주에는 JCO에서 nGrinder  발표를 했는데 많은 사람들이 관심있더라. 비싼 사용툴 보다야 약하지만 무료로 사용할 수 있으니 좋은 소식인것 같아. 회사분과 쿡북을 하나 쓰자고 했다. 늦은감이 없지 않아 있지만, 사내 교육용으로도 필요하니 바쁘더라도 신경좀 쓸까한다. #. 주말에는 거의 스키장에 살다가 최근 2주동안 못갔네... 아 좀 쉬고 싶고마이~

JCO - nGrinder 발표 공유

자바개발자컨퍼런스에서 nGrinder에 대해 소개한 자료 공유 합니다. 생각보다 많은 분들이 관심을 주셨고, 질문도 많았습니다. 얼른 쿡북만들어야겠다는 생각이드네요. ^^ http://www.nhnopensource.org/ngrinder_forum/1407 일시 : 2012년 02월 18일 (토) 장소 : 삼성동 코엑스 그랜드볼륨 발표자료 : http://prezi.com/crownidrjkgp/ngrinder-jco-20120218/

ehcache SimplePageCachingFilter 적용 방법

ehcache - SimplePageCachingFilter [1] 1. maven dependency <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-web</artifactId> <version>2.0.4</version> </dependency> 2. web.xml에 filter추가 <filter> <filter-name>SimplePageCachingFilter</filter-name> <filter-class>net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter</filter-class> </filter> <filter-mapping> <filter-name>SimplePageCachingFilter</filter-name> <url-pattern>/client/*</url-pattern> </filter-mapping> 3. ehcache.xml에 cache 등록 <?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...

pylucene - searcher

많은 어려움 끝에 겨우 설치 하고는 테스트 코드 하나 만들어봅니다;; # -*- coding: utf8 -*- ''' Created on 2011. 5. 16. @author: kwangsub ''' import time import os from lucene import * def search():     initVM(CLASSPATH)     analyzer = StandardAnalyzer(Version.LUCENE_CURRENT)     directory = SimpleFSDirectory(File("/home1/irteam/repository/lucene_index_repo/HEALTH_HOSPITAL_CJK/db"))     searcher = IndexSearcher(directory, True)         t = Term("addr", "서울")     query = TermQuery(t)     topDocs = searcher.search(query, 10)     for doc in topDocs.scoreDocs:         print doc     searcher.close()     directory.close()     if __name__ == '__main__':     search()

osx + pylucene 설치

0. JCC 설치 http://lucene.apache.org/pylucene/jcc/documentation/install.html $ svn co http://svn.apache.org/repos/asf/lucene/pylucene/trunk/jcc jcc $ cd jcc $ python setup.py build $ sudo python setup.py install 1. pylucene다운로드 http://mirror.khlug.org/apache//lucene/pylucene/ 원하는 버전 다운로드 $ tar xvfz pylucene-3.1.0-1-src.tar.gz $ cd pylucene-3.1.0-1/jcc $ python setup.py build #jcc를 빌드 $ sudo python setup.py install #jcc설치 2. site-packges확인, 두개 있으면 준비 완료 /opt/local/lib/python2.5/site-packages #다를 수 있음. ㄴ JCC -2.8-py2.5-macosx-10.6-i386.egg ㄴ lucene-3.1.0-py2.5-macosx-10.6-i386.egg 3. Makefile수정 $ cd pylucene-3.1.0-1 $ vi Makefile PREFIX _PYTHON=/opt/local # /python설치 위치 변경 해야함. ANT =ant PYTHON =$(PREFIX_PYTHON)/bin/python JCC =$(PYTHON) -m jcc.__main__ --shared --arch x86_64 NUM _FILES=3 4. Make & Install $ make $ sudo make install 5. 설치 확인 site-package위치에 JCC 와 lucene이 설치되어 있어야 하고 lucene 폴더내 jar, pyc등이 있는지 확인 /opt/local/lib/python2.5/site-packages/lu...

nginx install - osx leopard

이미지
좋다는 메일이 떠돌아서 한번 설치해봤다. 간단하게;;; #. nginx install - osx macport sudo port install nginx ... which nginx /opt/local/sbin/nginx daemon 등록 > 필요한 경우 sudo launchctl load -w /Library/LaunchDaemons/org.macports.nginx.plist   nginx -s [ stop | quit | reopen | reload ] nginx (x) -> sudo nginx (o) [emerg]: open() "/opt/local/etc/nginx/nginx.conf" failed (2: No such file or directory) nginx.conf, mime.types 를 만들어준다. 뜨는거 보기 위해 일단 카피! sudo cp /opt/local/etc/nginx/nginx.conf.sample /opt/local/etc/nginx/nginx.conf sudo cp /opt/local/etc/nginx/mime.types.sample /opt/local/etc/nginx/mime.types sudo nginx 홈페이지[ 1 ]도 그렇지만 welcome 페이지 또한 참 허접하다...그렇지만... #. tomcat proxy 헐, 이것도 정말 간단하다. /opt/local/etc/nginx/nginx.conf         #location / {         #    root   share/nginx/html;         #    index  index.html index.htm;         #}         location / {     ...

map.root - rourts.rb (root 변경)

config/routes.rb map.root :controller => "customers" 라고 변경을 해도 root변경이 안되길래 ...찾았더니 -.- public/index.html지워야지! 암뇨~   # You can have the root of your site routed with map.root -- just remember to delete public/index.html.   # map.root :controller => "welcome"   1년이 지나서 고칠 생각을 하는 나도 참...

시맨틱 웹 튜토리얼: RDF 집중 분석 (후기)

지난 10월 31일 (토)에 시맨틱웹 튜토리얼 이 있었습니다. 비도 오고 해서 많이 안 오실줄 알았는데 많이 와주셨고, 정말 열심을 다해 들어주셨습니다. 발표하신 분들도 정말 수고 많이 하셨어요 * 12:00 ~ 13:00 등록 * 12:50 - 13:00 행사 소개 (김학래, SCOT 프로젝트) * 13:00 ~ 14:00 RDF 개념 및 구문 소개  (김동범, 아이네크) * 14:00 - 15:00 마이크로포맷과 RDFa (김보람, 연세대) * 15:00 - 15:30 커피 타임 * 15:30 - 16:30 RDF 어휘 (FOAF, SIOC, SKOS....) (양상원, 누리엔 소프트웨어) * 16:30 - 17:30 SPARQL 질의 언어 (김광섭, NHN) * 17:30 - 18:30 시맨틱 웹 기술을 이용한 추론 (이명진, 연세대학교) 제가 RDF SPQRQL테스트 하실 수 있는 페이지를 알려드린다고 말씀드렸는데요. 아래 링크들에서 확인해보세요. 튜토리얼 시간중에 설명드렸던 이런저런 syntax들도 테스트해보시구요. * http://www.sparql.org/query.html * http://lod.openlinksw.com/sparql * http://demo.openlinksw.com/sparql_demo /  >> Query Processor * http://www.rdfabout.com/demo/census/sparql.xpd * http://about.geospecies.org/sparql.xhtml 아래 발표자료도 참고하세요. RDF Tutorial - SPARQL 20091031   다른 분들 발표자료 * RDF 개념 및 구문 소개  (김동범, 아이네크) * RDF 어휘 (FOAF, SIOC, SKOS….)  (양상원, 누리엔 소프트웨어) * 마이크로포맷과 RDFa  (김보람, 연세대) * SPARQL 질의 언어  (김광섭, NHN) * 시맨틱...

undefined method `^' for "a":String - Ruby 1.9 ,Rails 2.3.4

동생 부탁 하나 들어주려다가 정말 삽질한다. Ruby 1.9로 바뀌니 여기저기 완전;;; ㅜ.ㅜ   undefined method `^' for "a":String 가 발생되는데 1.9버그 [1] 라네. 패치가 나왔는데, 좀더 찾아보니 아래처럼 해결 [2] 해서 사용해도 되는군.   rake db:sessions:create rake db:migrate   * 주석 해제 config/initalizers/session_store.rb ActionController::Base.session_store = :active_record_store   [1] https://rails.lighthouseapp.com/projects/8994/tickets/3144-undefined-method-for-string-ror-234 [2] http://keriel.tistory.com/10    

`rescue in const_missing', jRails Bug with Ruby 1.9

Ruby 1.9 / Rails 2.3.4 설치한 후, 아래 처럼 jrails plugin을 설치하면 ruby script/plugin install http://ennerchi.googlecode.com/svn/trunk/plugins/jrails   에러! dependencies.rb:105:in `rescue in const_missing': uninitialized constant ActionView::Helpers::JavaScriptElementProxy::ActionView (NameError)   해당 버그가 github에 fix [2] 되어 있긴 한데 아직 gogolecode에는 반영이 안된 듯 jrails.rb를 직접 수정하면 된다. /plugins/jrails/lib/jrails.rb  - JQUERY_VAR = ActionView::Helpers::PrototypeHelper::JQUERY_VAR  + JQUERY_VAR = PrototypeHelper::JQUERY_VAR   [1] http://stackoverflow.com/questions/1028766/rescue-in-constmissing-error-with-ruby-1-9-1-rails-2-3-2-and-jrails-0-4 [2] http://github.com/cheald/jrails/commit/8cafe41c82617539bc03bf8a4aa1ed31e2bdcaec

Mysql::Error: query: not connected

MySql 5.1 Client가 Rails 2.3에서 작동하지 않고 아래 에러 만들 때   libmySQL.dll 받아 rubyhome/bin폴더에 추가   rake aborted! Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB (See full trace by running task with --trace)   [1] http://forums.aptana.com/viewtopic.php?f=20&t=7563&p=27407&hilit=libmysql.dll#p27407 [2] http://stackoverflow.com/questions/1343500/ruby-on-rails-connection-problem [3] libmySQL.dll : http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

VoCamp Seoul 2009

VoCamp Seoul 2009 가 있었습니다. Vocabulary에 대한 생각들을 나눌수 있는 귀중한 시간이었던것 같습니다. 그룹을 만들어 주제를 잡고 Vocabulary를 만들어 열열한 토론도 했습니다. :-) 첫 세션 - 온톨로지의 개념 및 온톨로지 표현 언어: 김동범 온톨로지 개념 및 표현언어 View more presentations from Dongbum Kim 둘째 세션 - RDF 어휘 (SKOS, SIOC, FOAF, 기타): 양상원 Semantic Web Vo Camp Seoul Summer Rdf Vocabularies View more presentations from sangwon Yang 셋째 세션 - 온톨로지 기반 질의 언어 (SPARQL) : 김광섭 VoCamp Seoul2009 Sparql View more presentations from kwangsub kim 네번째 세션 - TopBraid를 이용한 온톨로지 모델링: 양성권 발표시간이 짧아 튜토리얼을 끝내지 못했네요. 튜토리얼에 사용했던 자료와 온톨로지 파일은 이곳 에서 받으실수있습니다. 그리고, 발표를 준비하면서 모아둔 페이지는 이곳 에서 보실수 있습니다.

블로그 이사왔습니다.

백만년만에 쓴 포스팅이 이사왔다는 글이네요. 이전 블로그인 http://bklab.snu.ac.kr/blog/kwangsub  은 당분간 좀더 열어두겠습니다.   같은 줄기에서 나온 툴이라 그런지 TextCube가 깔끔하게 이사해주네요.^^ 앞으론 자주 포스팅할지도 몰라요. ㅎㅎㅎ   음악선물 - 요새 자주 듣는 Jason Mraz의 Geek in the pink입니다.  

시맨틱웹 세미나-Semantic Web & Data Link 후기

이미지
지난 수요일 시맨틱웹세미나가 있었지요. 최근 시맨틱웹관련 이슈도, 행사도 거의 없던터라 부담 백배에 세미나를 준비했습니다. 모자란 지식에 어떻게 이야기를 만들어 낼지 고민에 고민을 했었지요. 무사히 행사를 마쳤고 모두들 수고하셨습니다. 발표를 마련해주신 분들께 감사하고, 오셔서 들어주신 분들께도 감사의 말씀드립니다. 벌써 후기가 많이 올라왔는데 전 늦은 후기가 되겠네요. 시맨틱웹이라는 큰 주제로 시작된 이번 세미나는 "Semantic Web & Data Link" 라는 소주제로 이야기를 펼쳐냈습니다. 김홍기 교수님께서는 "시맨틱웹과 링크의 진화"라는 주제로 시맨틱웹, 링크가 무엇인지 언급하시고, 그 중 링크의 중요성을 강조하셨습니다. 발표자료가 약하다고 걱정하시더니 정말 멋지게 발표를 해주시더군요. :-) 두번째는 제가 "데이터를 웹으로"라는 주제로 웹에서의 데이터가 무엇이고 기존의 링크와 앞으로의 링크에 대해 이야기 했습니다. 어찌보면 소소한 문제인것 같으면서도 기초가 주제가 아니였나 생각됩니다. 발표를 들으셨던 분들은 제가 백만번 강조한 "라인"을 기억하셨을텐데요. 제 발표를 한마디로 요약한다면 시맨틱웹의 비전인 "Person or Machine can explore the web of data" 이 가능하기 위해선 "RDF, URI, HTTP" 이 필요하다. (아니 이걸가지고 1시간을 발표하다니...^^;;) 제 발표자료를 첨부합니다. 오셨던 분들은 다이나믹한 발표의 기억을;;...퍽@=   다음으로는 오픈마루의 정지웅님께서 "우리곁의 데이터웹" 이란 주제로 이야기해주셨습니다. 데이터웹에서 오픈 소셜, 리믹스웹까지 시맨틱웹으로 가는 길목요소들의 과거-현재-미래에 대해 이야기하셨습니다. 발표 시작 슬라이드 장수를 맞추는 사람에게 상품을 준다고 했었는데 정말 맞추신 분이 계시더군요...