What will happen to me (WWHtoMe)



소개



“What will happen to me?"는 웹에 등록된 각종 공연/행사 정보,

학교 시험 시간표,커뮤니티 스케쥴 등을 RSS로 받아와서,

앞으로 무얼 할까 고민하는 사람들에게 도움을 주는 소프트웨어입니다.

정보를 제공하는 사이트에서 포스팅할때 publish date를 수정할 수 있는것을 이용하여,

일정이 있는 날에 포스팅 한 것을, RSS Feed로 받아오게 됩니다.

사용자는 각종 행사 정보가 가득한 달력을 보며 휴일이나, 일과후의

계획을 좀 더 편하게 잡을 수 있습니다.



사용방법

어플리케이션을 실행하면 다음과 같은 화면이 나옵니다.





일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



메뉴 버튼을 눌러서 RSS Feed를 받아올 채널을 추가해주세요.(RSS1.0,RSS2.0,ATOM)

받아올 feed items의 publish date는 일정이 잡힌날로 posting 되어 있어야 합니다.



- 채널 예제 - (6월)

Exam : http://dorajistyle.pe.kr/scheduleExam.php?tempskin=_rss2

Exhibition : http://dorajistyle.pe.kr/SDexhibition.php?tempskin=_rss2

Movie : http://dorajistyle.pe.kr/SDmovie.php?tempskin=_rss2




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



채널명 주소를 적고 채널을 잘 나타내 줄 수 있는 아이콘을 선택하고 Enter키나 Dpad의 Center 버튼을 누르면 채널이 추가됩니다.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

예제 채널들을 추가 하였습니다.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

메뉴의 Retrive all을 이용하여 추가한 채널들에서 일정을 받아옵니다.

하나의 채널에서만 받아오려면 채널을 선택후, Retrieve this를 선택하시면 됩니다.

받아오기를 하는동안 상태바에 아이콘이 표시됩니다.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

받아오기가 완료되었으면 일정을 확인하기 위해 Schedule Viewer로 이동합니다.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

뷰어에서는 다양한 키가 사용됩니다.



스케쥴 리스트 보기 모드 변경키

Q: show all schedule items 토글 (과거의 일정은 포함하지 않는다)

E: favorites schedule items 토글

F: 전체화면 모드 토글



달력 컨트롤을 위한 키

A: 3달 전으로 커서를 이동

D: 3달 후로 커서를 이동

W: 한달 전으로 커서를 이동

S: 한달 후로 커서를 이동

DPAD_UP: 일주일 전으로 커서를 이동

DPAD_DOWN: 일주일 후로 커서 이동

DPAD_LEFT: 하루 전으로 커서 이동

DPAD_RIGHT: 하루 후로 커서 이동



리스트 컨트롤을 위한 키

NEW_LINE , DPAD_CENTER: 선택된 아이템 자세히 보기

PERIOD : 리스트 커서를 한칸 위로 이동

COMMA : 리스트 커서를 한칸 밑으로 이동

M : favorites에 추가/해제



약속을 만들고 싶은날로 커서를 이동해서 어떤 일들이 벌어지고 있는지 볼 수 있습니다.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



favorites 보기에서는 favorites로 추가한 아이템들을 볼 수 있습니다.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



스케쥴이 있는 날로 커서를 이동하면, 그날의 스케쥴이 보이게 됩니다.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



메뉴키를 눌러서 채널 리스트 화면으로 갈 수 있습니다.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



리스트의 아이템을 선택하면 일정에 대한 좀 더 자세한 정보를 볼 수 있습니다.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



메뉴키를 눌러서 채널 리스트 화면으로 갈 수 있습니다.




What Will Happen to Me?



Introduction



“What Will Happen to Me?” is an Android application, which allows users retrieve performance/event information,class schedules and community schedules that are registered on Internet sites through RSS and helps people decide what they should do instantly.

When website administrators post such information, users can retrieve posted information that are scheduled on the date of the event.

The users can easily plan and make schedules according to the calendar with information of the events.



How to use?

Once you execute this application, you will see the screen like below:





일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



Press [menu] to add RSS Feed channels.(RSS1.0,RSS2.0,ATOM)

The publish date should be posted on the date of event.



- Channel sample - (June)

Exam : http://dorajistyle.pe.kr/scheduleExam.php?tempskin=_rss2

Exhibition : http://dorajistyle.pe.kr/SDexhibition.php?tempskin=_rss2

Movie : http://dorajistyle.pe.kr/SDmovie.php?tempskin=_rss2




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



Put channel address and select the icon that can show the channel type well. Then press [Enter] or [DPAD_CENTER] buttun, and the channel will be added.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

Sample channels are added.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

Download schedules from added channels through “Retrieve all” in the menu.

If you want to retrieve from one channel, select channel and press “Retrieve this".

While retrieving channel, icon on status bar will appear.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

When retrieving gets completed, move to “Schedule Viewer” to check schedules.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

In the viewer various types of buttons are used.



Buttons to change to schedule list view mode.

Q: toggle show all schedule items. (except the schedules in the past)

E: toggle show favorate schedule items.

F: toggle full screen list.



Buttons to control calendar.

A: move the cursor to three months before.

D: move the cursor to three months after.

W: move the cursor to a month before.

S: move the cursor to a month after.

DPAD_UP: move the cursor to a week before.

DPAD_DOWN: move the cursor to a week after.

DPAD_LEFT: move the cursor to a day before.

DPAD_RIGHT: move the cursor to a day after.



Buttons to control list.

NEW_LINE , DPAD_CENTER: view details of selected list item.

PERIOD : move the list cursor to the previous list item.

COMMA : move the list cursor to the next list item.

M : add or remove to/from favorites



You can view the schedules of the date you want to make appointments by moving cursor to that day.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

You can see added favorites items in the favorites view mode.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

Once you move the cursor to the date of event, you will see the schedules of the date.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

You can move to the channel list screen by pressing [menu].




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]

Once you select the item of the list, you can see more detail information about the schedule.




일정관리 어플리케이션 What will happen to me? - 안드로이드 어플리케이션[안드로이드,android,application]



You can move to the channel list screen or schedule viewer screen by pressing [menu].





by


Tags : , , , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

우리가 불속에서 잃어버린 것들(Things We Lost In The Fire) [우리가 불속에서 잃어버린 것들,델토로,할리베리,드라마,Things We Lost In The Fire,조용한 영화]

이미지출처 : akdong2k.tistory.com

할리베리와 베네치오 델 토로 주연의 잔잔한 드라마이다.

이 영화에 임팩트는 없다.



한 가정의 가장의 죽음으로 일어나는 상황들에 대해서 잘 묘사해주고 있다.



별 특별한 소재나 반전이 있는 영화는 아니지만..



보는 내내 몰입해서 볼 수 있는 영화였다.



아이부터 어른까지 등장인물들은 어떠한 상황에 처한 인간의 심리를 잘 투영해서 보여주었다.



특히 베네치오 델토로(이 영화에서 처음 봤는데, 정말 매력적이라 정보를 좀 찾아봤더니.. 영화 감독 겸 배우였다.)는 약물 중독으로 나오는데, 정말 약물중독자처럼 생겼다.ㅎㅎ



밤에 조용한 영화를 한 편정도 보고 자고싶은 심정의 사람들에게 이 영화를 추천해 주고싶다.



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

에버랜드 우든코스터(Everland T Express)[에버랜드,용인,경기도,여행,우든코스터,T Express,everland]

이미지출처 : musket.tistory.com

지난 3월 14일 화이트데이날, 에버랜드에 우든코스터를 오픈했다.

마침 SKT 이벤트에 당첨이 되서 자유이용권을 받아 에버랜드를 다녀왔다.



우든코스터! 뭔가 흥미진진할꺼라 기대하고 에버랜드를 갔는데!



재미있긴 재미있었지만, 초반에 한번만 강렬하고 그 이후로는 그 재미를 느낄 수 없어서 아쉬웠다.



에버랜드 우든코스터(Everland T Express)[에버랜드,용인,경기도,여행,우든코스터,T Express,everland]




하지만 지금껏 우리나라 놀이동산에서 타본 놀이기구중에 최고였다~!



우든코스터 > 아틀란티스 > 후름라이드 … 이런순?



튜울립 축제가 이제 막 시작해서 그런지 꽃은 별로 없었지만 그래도 놀토가 아니라 사람이 그리 많지는 않아서 약간이나마 여유롭게 다녀왔다.



한국에도 좀더 규모가 크고 엄청 재미있는 놀이기구들이 많이 있는 테마파크가 생기면 좋겠다!



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

단백질 구조, 몰(.MOL) 파일 구조 (.MOL File format)[.Mol,protein,단백질,구조,파일구조]

이미지출처 : czechabsinthe.wordpress.com

몰(.MOL) 파일의 대략적인 구조 (BT .MOL FILEFORMAT)는 다음과 같다.

[Header] {3Line}

1: Name - 구조이름

2: IIPPPPPPPPMMDDYYHHmmddSSssssssssssEEEEEEEEEEEERRRRRR

(FORTRAN: A2[–A8–][—A10–]A2I2[–F10.5-][—F12.5–][-I6-] )

User’s first and last initials (I) 유저의 첫이니셜과 마지막이니셜

program name (P) - 프로그램 이름 8자리

date/time (M/D/Y,H:m) - 일시

dimensional codes (d) - 차원

scaling factors (S, s) - ?

energy (E) if modeling program input - ?

internal registry number ® if input through MDL form -?

3: COMMENTS - 주석 (주석이 없으면 빈줄처리)



[Connection Table] {4Block}

Counts Line [1]

Atom Block [1..*]

Bond Block [1..*]

Properties Block



by


Tags : , , , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

안드로이드에서 데이터베이스를 열지 못할때. [안드로이드,데이타베이스,DB,database,android]

이미지출처 : news.cnet.com

안드로이드에서 데이터베이스를 열지 못할때.








안드로이드를 사용해서 뭔가 만들어보려고 뚝딱거리다가,



어느순간 m5버젼이 나왔다.



m3버젼을 쓰고 있었는데, m5버젼이 나왔다.



돌아가는 모습을 좀 보려고 튜토리얼을 실행시켰는데.. 이런!



데이터베이스를 열지 못한다. nullPointerException이 나온다.



프로그램을 처음 접했을 때부터 무던히도 날 괴롭히던 녀석이..



여기서도 어김없이 등장했다.



디버깅 모드를 써서 추적을 해봐도..



추적이 쉽지않다.



결국 추적을 위해 비슷한 어플리케이션을 만들어서..



아직 api 소스가 나오지도 않았기에 역컴파일까지 해서 추적을 했더니…



db를 쓰지도 못하고 읽지도 못하는것 아닌가!



그래서 db에 null값이 들어있기 때문에 이런 현상이 발생하는 것이었다.



이런! 이 문제를 어떻게 해결할 것인가..



이건 코드 레벨에서 어찌 할 수 있는 문제가 아니었다.



방법은..



기존에 있던 유저파일을 리셋하는것이다.



에뮬레이터 실행할때.



-wipe-data 옵션을 줘서 유저데이터를 지울 수 있고,



혹은 아래의 경로에서 직접 삭제 할 수 있다.


Code:





Linux: ~/.android/userdata.img

Windows: C:\Documents and Settings\<loginname>\Application

Data\Local\Android\userdata.img


Upgrading the SDK 문서가 좀 더 일찍 나왔더라면 이런 수고는 하지 않았을텐데 아쉽다.



Reference




by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

스텝업2 더 스트리트 (Step up 2 - The street) [스텝업2,멜로,애정,로맨스,액션,step up,더 스트리트,the street]

이미지출처 : wolfpack.tistory.com

오랜만에 영화를 한편 보려고 현재 개봉영화를 찾아보니 평점이 괜찮아서 봤다.

스텝업1을 재미있게 봐서 기대를 하고 봤는데,



대부분의 영화가 전편을 따라가지 못하는데, 스텝업2는 충분히 기대만큼의 것을 보여줬다.



전편의 주인공인 타일러도 잠깐 출연해서 멋진 춤솜씨를 보여주고,



많은 댄서들이 나와서 멋진 춤을 보여주는데,



뭔가 스토리가 쨍쨍하고 가슴에 남는 영화를 찾는것이라면 다른영화를 보라고 권해주고 싶다.



이 영화는 가슴보다는 머리에,눈에,귀에 남는 영화였다.



특히 힙합을 좋아하는 나로써는 보는내내 들썩거리고 싶었는데 극장이라 그럴수가 없었다.



극장에 이런 영화를 위해서 스탠딩 좌석이 있는건 어떨까?ㅎㅎ



고심하고 생각할 필요없이 즐거운 영화를 찾는 사람들에게 강추하는 영화다.



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!



  • 責人之心으로 責己하고 恕己之心으로 恕人하라. - 范純仁(범순인)

    (남을 꾸짖는 마음으로 나를 꾸짖고, 나를 용서하는 마음으로 남을 용서하라.)


  • 人生事 塞翁之馬(인생사 새옹지마)


  • 야망만큼 덕망도 키워라. - 나




by


Tags : , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

10대때의 나는 살면서 죽을 때 까지 할 수 있는 3가지를 하며 살겠다고 마음을 먹었다. 그당시엔 겨우 한가지 정도를 어렴풋이 정했지만 이제는 그 3가지를 확고히 정하게 되었다.


어렴풋이 직업으로는 컴퓨터를 이용하는 일을 하고 싶다고 생각했었다.


예전부터 게임도 좋아하고, 무언가 뚝딱거리는 것을 좋아했던 나는 지금 개발자라는 직업을 가지고 있다. 무언가를 만들어 낸다는것은 참으로 즐거운 일이다. 나는 손재주가 없어서, 그림도 잘 못그리고, 글씨도 악필이며, 다룰줄 아는 악기도 하나 없지만 컴퓨터를 가지고 무언가 뚝딱뚝딱 만들어 낼 수 있어서, 뿌듯함을 느낀다. 지금은 물론 돈을 벌기위해 일로 하고 있지만, 나중에 주식투자로 충분히 먹고 살만한 능력을 가지게 되면, 오픈소스에도 적극적임 참여를 하고, 후배 개발자들에게 조언하는 조언자가 되고 싶다.



나는 본디 산만하고, 동분서주해서 가만히 있지 못하는 편이었다. 그러나 운동을 하고 난 뒤에는 심신이 안정되고 보다 오랜시간동안 한가지 일에 집중 할 수 있게 되었다.

운동후에는 스트레스도 풀리고, 사람답게 살고 있다는 기분이 들게 된다.

학교를 다니며 친구들에게 “사람이 숨을 쉬어야 살듯이, 운동도 숨쉬듯 해야 한다.” 라고 말하며 다녔는데, 요즘은 통 제대로 된 운동을 하지 못해서 아쉽다.

날씨도 따뜻해지고 하니, 가벼운 스트레칭이라도 시작해야겠다.



그리고 최근에 한가지 관심분야가 더 늘었다. 바로 주식이다. 세상 사람들이 살아가기 위해서는 일을 할테고, 새롭게 열정을 가지고 새로운 회사를 설립하는가 하면, 경쟁에 뒤쳐져서 사라지는 기업들도 있다. 하지만 주식시장은 여전히 활발하다. 경제가 나빠지거나 좋아지거나 가격 변동은 항상있다. 아직 안목이 없지만 20대에 안목을 기르는 훈련을 좀 하면, 30대 이후에는 월평균 1%이상의 수익을 낼 자신이 있다. 물론 잘못된 결정으로 인해 손해를 보는일도 가끔 있겠지만, 내 결정에 따라 결과가 나오니 얼마나 정직한가? 나는 로또와 같은 복권을 종종 사는 편이다. 당첨이 되면 물론 좋겠지만 확률적으로 매우 힘든일이기 때문에, 그야말로 운에 모든걸 걸어야 하는것에는 큰 기대를 하지 않는 편이다. 하지만 주식은 나의 노력 여하에 따라 실패의 폭이 그만큼 줄어들고 성공의 확률은 그만큼 높아진다. 그래서 주식은 참 매력적이고 평생 하고싶은 일이다.


나는 무언가 만들어내는것에 기쁨을 느낀다.
개발자로 일하면서 소프트웨어도 만들어내고, 운동을해서 체력도 길러내고, 주식으로 돈도(?) 만들어 내면서 즐거움을 만들어 내며 살아야지.^^


나는 무엇을 하며 살고싶은가?


  • Creator - 뭔가 만들어 내는사람

  • Computer Application Creator - 소프트웨어를 만들어내는 사람

  • Exerciser - 운동하는 사람

  • Stock Trader - 주식거래하는 사람



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

미디어 위키 설치 (Mediawiki installation)[미디어위키,위키,설치법,mediawiki,wiki,installation]

이미지출처 : blog.bn2vs.com

미디어 위키 설치 (Mediawiki installation)









웹서버는 아파치나 IIS가 깔려있어야 하고,


PHP는 5.0버젼 이상이 깔려 있으면 된다.( 64-bit system)

데이터베이스는 MySQL과 PostgresSQL을 지원한다.



우선 http://www.mediawiki.org/wiki/Download 에서 다운로드를 받는다.



아래와 같이 압축을 풀고,



Code:


tar xvzf mediawiki-*.tar.gz


압축을 푼디렉토리로 들어가서 config디랙토리의 권한을 755로 설정해준다.



DB를 생성해준다.



Code:





create database wikidb;
grant create, select, insert, update, delete, alter, lock tables on wikidb.* to 'wikiuser'@'localhost' identified by 'password';
flush privileges;
\q

etc/httpd/conf/httpd.conf에 alias /mediawiki “실제경로” 를 설정해준다.



미디어위키 스크립트를 실행한다.



Code:


http:// my.url/mediawiki/config


LocalSettings.php 파일을 위키의 홈 디렉토리로 옮겨준다.


Code:


mv ./config/LocalSettings.php ./


All page로 가서 Mediawiki에 보면 Sidebar등을 설정 할 수 있다.



Reference : http://www.mediawiki.org/wiki/Manual:Installation_guide



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

EclipseRCP 사용자 정의 다이얼로그 사용하기.( EclipseRCP SWT Custom dialog)[Custom Dialog,이클립스 RCP,eclipse RCP]

이미지출처 : www.mobilefish.com

EclipseRCP 사용자 정의 다이얼로그 사용하기.( EclipseRCP SWT Custom dialog)







SWT에서는 다음의 5가지 Dialog를 제공하고 있다.


  • ColorDialog
  • DirectoryDialog
  • FileDialog
  • FontDialog
  • MessageBox


하지만 필요에따라 자신만의 Dialog를 만들어 쓸 일이 생기는데..



간단한 SlideDialog의 예제로 알아보자.



Code:


private IWorkbenchWindow window;

  private Shell customDialog;

  private Button buttonOK;

  private Button buttonCancel;

  private boolean isSetting;

  private float density;

 

    private Listener listener = new Listener() {

        public void handleEvent(Event event) {

          if (event.widget == buttonOK) {

            isSetting = true;

          } else {

            isSetting = false;

          }

          customDialog.close();

          customDialog.dispose();

        }

 

      };

     

    private void initialize() {

      customDialog = new Shell(window.getShell(), SWT.APPLICATION_MODAL| SWT.DIALOG_TRIM);

    customDialog.setText("Setting Density");

    customDialog.setSize(210, 100);

   

    buttonOK = new Button(customDialog, SWT.PUSH);

      buttonOK.setText("OK");

      buttonOK.setBounds(10, 40, 80, 25);

 

      buttonCancel = new Button(customDialog, SWT.PUSH);

      buttonCancel.setText("Cancel");

      buttonCancel.setBounds(110, 40, 80, 25);

     

      final Slider slider = new Slider (customDialog, SWT.HORIZONTAL);

      slider.setBounds (10, 10, 180, 24);

      slider.setIncrement(10);

      slider.setMaximum(109);

      slider.setToolTipText("MIN <--!--> MAX");

      buttonOK.addListener(SWT.Selection, listener);

      buttonCancel.addListener(SWT.Selection, listener);

    slider.addListener (SWT.Selection, new Listener () {

      public void handleEvent (Event event) {

        density = slider.getSelection()*0.01f;

      }

    });

    }

  public void run(IAction action) {

    initialize();

    customDialog.open();

 

    // sleep during dialog work. dialog 가 닫힐때까지 기다리게 해준다.

     while (!customDialog.isDisposed()) {

          if (!window.getShell().getDisplay().readAndDispatch())

            window.getShell().getDisplay().sleep();

        }

 

     if(isSetting) {

        System.out.println("Density : "+density);

      }

  }


코드 후반의 while문 부분이 없다면, Dialog에서 어떤 조작을 하기도 전에 if문이 실행되버리니 유의해야 한다.



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

어톤먼트,속죄(Atonement) [어톤먼트,멜로영화,속죄,atonement]

이미지출처 : www.kfcenter.or.kr

무언가 엄청난 멜로 영화일꺼라는 기대를 품고 영화를 감상했지만..

예상과는 좀 다르게, 다큐멘터리를 보는거 같은 기분이 들었다.



영화의 전개는 작은 사건 하나 하나를 보여주고,

다른시점에서 다시 그 시점을 따라가는 방식으로 전개되는데, 좀 혼란스러웠다.



장면장면들에는 ‘신경을 많이 쓴 영화다!’ 라는것이 느껴지지만,



무언가 공허하고, 빠진듯 싶은 영화다.



한국식의 멜로 영화를 생각하고 본다면, 영화를 보는 도중에 잠이들어버릴지도 모르겠다.



이 영화를 보면서 든 생각들..


  • 옛날엔 참 DNA수사같은걸 못하니까 저런 누명을 썼구나.. CSI가 범인을 밝혀줘야 되는데..
  • 애들을 조심해야 한다.
  • 재미삼아 던진돌에 개구리가 맞아 죽는다.



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

EclipseRCP 마법사 사용하기(EclipseRCP Wizard)[마법사,wizard,이클립스 RCP,eclipse RCP]

이미지출처 : www.mobilefish.com

EclipseRCP 마법사 사용하기(EclipseRCP Wizard)







When you use wizard, you and users probably will be happy.

마법사를 이용하면 개발자 사용자 모두 편해 질 수 있습니다.

Wizard can have one ore more pages.

마법사는 하나 또는 여러개의 페이지를 가질 수 있습니다.

I wrote simple single page wizard code in this post.

이 포스트에는 간단하게 만들수 있는 단일 페이지 마법사 코드를 작성 해 봤습니다.



MyWizard.java


Code:



public class MyWizard extends Wizard {

 

  MyWizardPage mainPage;

 

  public MyWizard() {    

  }

 

    public void addPages() {

          super.addPages();

          mainPage = new MyWizardPage();

      addPage(mainPage);

      }

   

    public boolean performFinish() {

      if(mainpage.isActionValid()) return true;

      return false;

    }

 

  public boolean performCancel() {

    return true;

  }

}


MyWizardPage.java


Code:



public class MyWizardPage  extends WizardPage {

 

   public MyWizardPage() {

      super("pageName");

      setTitle("Title");

      setDescription("Description");

//    super(pageName,title,titleImage);

   }

 

   public void createControl(Composite parent) {

      // $begin code generated by SWT-Designer$

      Composite container = new Composite(parent, SWT.NULL);

      final GridLayout gridLayout = new GridLayout();

      gridLayout.numColumns = 3;

      container.setLayout(gridLayout);

      setControl(container);

      //add Components

    //....    

   }

 

   public void init(ISelection selection) {

   if (!(selection instanceof IStructuredSelection)) return;

   //init..

   }

 

}



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

EclipseRCP 환경설정 페이지 사용하기(EclipseRCP Preference Page)[Preference Page,이클립스 RCP,eclipse RCP]

이미지출처 : www.mobilefish.com

EclipseRCP 환경설정 페이지 사용하기(EclipseRCP Preference Page)







1. add (org.eclipse.ui.preferencePages)extension to plugin.xml

- plugin.xml파일에 환경설정 확장점을 추가해준다.

2. create new class that implements IWorkbenchPreferencePage

- IWorkbenchPreferencePage를 구현한 클래스를 생성한다.

3. If you need to adjust, you can make Preference constants and Preference initializer classes.

- 필요하다면, 환경설정 상수나, 초기화 클래스관련 클래스를 생성할 수 있습니다.

범위 : 기본, 환경, 인스턴스

scopes : default , configuration , instance



Preference.java


Code:

public class PreferencePage
  extends FieldEditorPreferencePage
  implements IWorkbenchPreferencePage {
 
  public PreferencePage() {
    super(GRID);
    setPreferenceStore(Plugin.getDefault().getPreferenceStore());
    setDescription("Preferences");
  }

 

  public void createFieldEditors() {

    String[] filterExtension = { "*.file extension" };

    addField(new DirectoryFieldEditor(PreferenceConstants.DIR_PATH,         "&Directory preference:", getFieldEditorParent()));

                      FileFieldEditor filePathPrefEditor = new FileFieldEditor(PreferenceConstants.FILE_PATH,

        "&File Path preference:", getFieldEditorParent());

    filePathPrefEditor.setFileExtensions(filterExtension);

    addField(filePathPrefEditor);

    addField(

      new BooleanFieldEditor(

        PreferenceConstants.P_BOOLEAN,

        "&An example of a boolean preference",

        getFieldEditorParent()));

 

    addField(new RadioGroupFieldEditor(

        PreferenceConstants.P_CHOICE,

      "An example of a multiple-choice preference",

      1,

      new String[][] { { "&Choice 1", "choice1" }, {

        "C&hoice 2", "choice2" }

    }, getFieldEditorParent()));

    addField(

      new StringFieldEditor(PreferenceConstants.P_STRING, "A &text preference:", getFieldEditorParent()));

  }

 

  /* (non-Javadoc)

   * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)

   */

  public void init(IWorkbench workbench) {

  }

 

}

PreferenceConstants.java


Code:










public class PreferenceConstants {
  public static final String DIR_PATH = "dirPath";
  public static final String FILE_PATH = "filePath";
 
  public static final String P_PATH = "pathPreference";
  public static final String P_BOOLEAN = "booleanPreference";
  public static final String P_CHOICE = "choicePreference";
  public static final String P_STRING = "stringPreference";
}

PreferenceInitializer.java


Code:







public class PreferenceInitializer extends AbstractPreferenceInitializer {
  public void initializeDefaultPreferences() {
    IPreferenceStore store = Plugin.getDefault().getPreferenceStore();
    store.setDefault(PreferenceConstants.DIR_PATH,"C:\\Program Files");
  }
}


RadioGroupFieldEditor 사용팁

만약 아직 지원하지 않는 값을 사용자가 클릭했을 경우,

다음과 같이 propertyChange를 overriding하여 필드값을 Initializer에서 설정해준 값으로 불러와 변경시키는 방법을 사용 하면된다.



Code:

public void propertyChange(PropertyChangeEvent event) {
    super.propertyChange(event);
    if(event.getProperty().equals(FieldEditor.VALUE)) {
      if(event.getSource() instanceof RadioGroupFieldEditor) {
        if(!event.getNewValue().equals("available value")){
          Dialog.showWarningMessageDialog(getFieldEditorParent(), "Not available", "Sorry, Now available only for available value.");
          RadioGroupFieldEditor radioGroupEditor = (RadioGroupFieldEditor) event.getSource();
          radioGroupEditor .loadDefault();
        }   

      }

    }

  }



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

EclipseRCP 백그라운드잡 템플릿 (EclipseRCP Background Job Template)[Background Job,이클립스 RCP,eclipse RCP]

이미지출처 : www.mobilefish.com

EclipseRCP 백그라운드잡 템플릿 (EclipseRCP Background Job Template)







Code:

Job job = new Job("Title") {
          protected IStatus run(IProgressMonitor monitor) {
           monitor.beginTask(TaskName, totalWork);
              monitor.subTask(SubTaskName);
                  monitor.worked(work);
                  if (monitor.isCanceled()){
                    return Status.CANCEL_STATUS;
                  }
//                  try { Thread.sleep(1000); } catch (Exception e) { }
                        Display.getDefault().asyncExec(new Runnable() {
                           public void run() {
                                           //  UI Update Jobs
                           }
                        });
                 
               return endJob(monitor);
            }
         };
 
//         job.setUser(true);
         job.schedule();
 
   public boolean isModal(Job job) {
          Boolean isModal = (Boolean)job.getProperty(
                                 IProgressConstants.PROPERTY_IN_DIALOG);
          if(isModal == null) return false;
          return isModal.booleanValue();
       }
   protected  Action getCompletedAction() {
      return new Action("View status") {
        public void run() {
         
          MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                  dialogTitle,
                  dialogContent);
        }
      };
    }
   
    protected  void showResults() {
          Display.getDefault().asyncExec(new Runnable() {
             public void run() {
                getCompletedAction().run();
             }
          });
       }
   
    protected IStatus endJob(IProgressMonitor monitor) {
    if (isModal(this)) {
          // The progress dialog is still open so
          // just open the message
          showResults();
       } else {
       setProperty(IProgressConstants.KEEP_PROPERTY, Boolean.TRUE);
       setProperty(IProgressConstants.ACTION_PROPERTY,
              getCompletedAction());
       }
      monitor.done();
       return Status.OK_STATUS;
      
  }



by


Tags : , , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

대용량 텍스트 편집기. 대용량 문서 에디터 이엠에디터(EmEditor Text Editor)[Emeditor,large file,대용량 텍스트 편집,이엠에디터,대용량 문서 에디터]

이미지출처 : www.emeditor.com

Emurasoft EmEditor(http://www.emeditor.com/)

EmEditor Text Editor is a lightweight yet extendable, easy-to-use text editor for Windows. EmEditor is very customizable, and it supports Unicode and powerful macros. EmEditor is certified for Windows Vista! The x64 Edition is also available! The portable version is also available for USB drive setup!



거의 600메가에 다다르는 대용량 텍스트를 약간 손봐야 할 일이 생겨서,

(Editplus,MSWord,한글에서 시도를 해봤으나, 파일을 열다가 피토하고 쓰러졌다.)



대용량 텍스트를 안정적으로 편집할 수 있는 편집기를 찾다가 찾아낸 텍스트 에디터 EmEditor.



대용량 파일 편집에 특화되어 있다고 한다.



Emurasoft 사이트에서 30일 트라이얼 버젼을 다운로드 받을 수 있다.



Find and Replace(마음에 드는 기능) ★★★★★

EmEditor



반복되는 특정부분을 찾아서 몽땅 원하는 텍스트로 바꾸려고 할때, 보통 텍스트 에디터들에서는 한줄을 기준으로 이 일을 한다. 하지만, EmEditor에서는 Regular Expression(정규표현식)을 지원한다!


이엠에디터(EMeditor)는 정말 마음에 드는 텍스트 에디터다.:D



by


Tags : , , , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

유니버설 스튜디오 (Universal studio) [헐리우드,LA,유니버설 스튜디오,여행,로스엔젤레스,미국,Los angeles,universal studio]

이미지출처 : alonsorincon.wordpress.com

많은 영화의 셋트장이 있는 유니버설 스튜디오!

인증샷 - 유니버설 스튜디오 (Universal studio) [헐리우드,LA,유니버설 스튜디오,여행,로스엔젤레스,미국,Los angeles,universal studio]

[입구]



뭐 특별한게 있겠나 싶었지만, 들어가보니 재미있는것들이 많았다.



영화들을 테마로 시나리오를 탄탄하게 짜서, 체험하는곳도 있고, 공연도 있고, 즐거웠다.



다양한 특수효과, 특수분장의 비밀(?)도 알게되고, 3D로 보는 터미네이터도 색다른 재미가 있었다.



파이어웍스(Fireworks) - 유니버설 스튜디오 (Universal studio) [파이어웍스,fireworks,헐리우드,LA,유니버설 스튜디오,여행,로스엔젤레스,미국,Los angeles,universal studio]

[불을 이용한 특수효과 체험 - fireworks]



이곳에는 탈만한 놀이기구는 몇개 없었는데 그중에 하나인 쥬라기공원은 후름라이드같은 물에서 가는 놀이기구다. 배타고 가고있으면 목도리도마뱀같은놈들이 입에서 물을 쏴대서 옷이 다 젖게 되므로, 잘 마르는 옷을 입고가는게 좋다. 놀이기구 앞에서 우비를 팔지만, 그거까지 사서 입고 싶진 않았다.



쥬라기 공원 (Jurassic park) - 유니버설 스튜디오 (Universal studio) [헐리우드,LA,유니버설 스튜디오,여행,로스엔젤레스,미국,Los angeles,universal studio]

[쥬라기공원 - jurassic park]



신기했던것중에 하나는, 에스컬레이터가 꽤 길었는데, 똥싸지 말라는 표지판이 있었다.

아무리 급하더라도 화장실에 가서 일을 보도록 하자.



에스컬레이터 표지판 - 유니버설 스튜디오 (Universal studio) [헐리우드,LA,유니버설 스튜디오,여행,로스엔젤레스,미국,Los angeles,universal studio]

[에스컬레이터 표지판 대변금지 - No put shit here?]



가장 재미있던것은 버스로 하는 세트 투어! 정말 다양한 영화 셋트를 볼 수 있었고, 버스가 가는길에도 여러가지 이벤트가 벌어졌다.



분수셋트 - 유니버설 스튜디오 (Universal studio) [헐리우드,LA,유니버설 스튜디오,여행,로스엔젤레스,미국,Los angeles,universal studio]

[공포영화 수십편에 등장했다는 분수셋트]



추락한 비행기 - 유니버설 스튜디오 (Universal studio) [헐리우드,LA,유니버설 스튜디오,여행,로스엔젤레스,미국,Los angeles,universal studio]

[비행기 추락?!]



각 체험별로 시간대를 잘 맞추면, 다양하게 잘 구경하고 올 수 있다.:D



by


Tags : , , , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

샌디에고 씨월드(Seaworld - San diego) [샌디에고,씨월드,수족관,수중생물,테마파크,san diego,seaworld,theme park]

이미지출처 : tulipfleurs.wordpress.com

켈리포니아 여행에서 처음으로 방문했던곳은 샌디에고에 있는 Seaworld였다.

수중생물들만으로 이렇게 큰 공원을 만들어 놓은것에 놀랐다.



나중에 먼훗날에 결혼하고 아이가 생기면, 애 데리고 오면 참 좋겠다는 생각이 들었다.



아무래도 이곳에서 가장 볼만한건 역시 고래?고래?고래!




상어(shark) - 샌디에고 씨월드(Seaworld - San diego) [상어,shark,샌디에고,씨월드,수족관,수중생물,테마파크,san diego,seaworld,theme park]

[얘는 고래가 아니라 상어 - It’s not a whale.]



하얀 돌고래(Whitre whale) - 샌디에고 씨월드(Seaworld - San diego) [하얀 돌고래,white whale,샌디에고,씨월드,수족관,수중생물,테마파크,san diego,seaworld,theme park]

[얘는 귀여운 하얀 돌고래 - White whale.]



범고래(Killer whale) - 샌디에고 씨월드(Seaworld - San diego) [범고래,killer whale,샌디에고,씨월드,수족관,수중생물,테마파크,san diego,seaworld,theme park]

[얘는 대빵 범고래 - killer whale.]



돌고래 쇼도 보고, 샤무(Shamu)라고 유명한 엄청 큰 범고래 쇼도 보았는데, 애가 컨디션이 안좋은지, 별로 많은걸 보여주지 않고 들어갔다. 하긴 하루에 몇탕씩 쇼할라면 힘들기도 할꺼 같아서 아쉬운 마음을 뒤로하고 나왔다.



샤무 쇼 (Shamu show) - 샌디에고 씨월드(Seaworld - San diego) [범고래,killer whale,샤무,shamu,샌디에고,씨월드,수족관,수중생물,테마파크,san diego,seaworld,theme park]

[샤무 쇼! - Shamu show]



내가 좋아하는 물개들은 아쉽게도 사진을 찍어오지 못했는데, 그 소리만큼은 아직도 귓속에 생생하게 남아있다. ‘옹옹옹옹~~ 옹옹~ 옹옹~’ 귀여운것들..



물개만큼 귀엽진 않지만 나름 도도하게 서있는 황제팽귄들도 보았다.



황제팽귄(Emperor penguin) - 샌디에고 씨월드(Seaworld - San diego) [황제팽귄,Emperor penguin,샌디에고,씨월드,수족관,수중생물,테마파크,san diego,seaworld,theme park]

[황제팽귄 - Emperor penguin]



그리고 좋았던건 돌고래나 가오리등을 만져볼 수 있는 장소가 있다는건데, 돌고래는 워낙 팬클럽이 진을치고 있어서 조금 한가한 가오리를 만져보았는데, 엄청 부드러웠다. 꼭 순두부 만지는 느낌?! 어쨌거나 다양한 바다생물들을 볼 수 있었던 괜찮은 곳이었다.



새 - 샌디에고 씨월드(Seaworld - San diego) [샌디에고,씨월드,수족관,수중생물,테마파크,san diego,seaworld,theme park]

[물속의 가오리를 바라보고있는 새]



뭐 사실 이곳에 감동할만한 볼거리는 없지만, 귀여운 녀석들이 가득하다.



충분히 가볼만한 가치가 있는곳.



샌디에고에 가게되면 한번쯤 들러보시라~!



—-


Open english content






by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

역행렬은 언제 쓰나? (When I use matrix invertion?) [행렬,역행렬,3D,메트릭스,matrix,matrix invertion]

이미지출처 : en.wikipedia.org

역행렬(Matrix invertion)







내가 3D를 건드리게 될 줄 알았다면,



선형대수학을 공부했을 텐데….



마우스 이벤트는 2D 좌표계에서 움직인다.



2D상에서 일어난 이벤트로 3D 객체를 변형할 때, 역행렬이 아주 유용하게 사용된다.



만약 (ㅜ) - 이렇게 생긴 3D 물체를 돌리고, (ㅏ) 상태에서 이동을 시킨다면. z축으로 90도 회전되었기 때문에,



마우스를 움직이는 방향과는 다르게 지멋대로 물체가 움직이게 된다.



이럴때 4*4 행렬의 역행렬을 가져와서 이동을 시키면,



물체를 돌리기 전 상태에서 이동을 시킬 수 있다.



자바에서는 Matrix4f의 invert메소드를 사용하면, 역행렬을 구할 수 있다.




4*4 Matrix

r = Rotation

t = translation

[

{rx0,rx1,rx2,tx},

{ry0,ry1,ry2,ty},

{rz0,rz1,rz2,tz},

{0,0,0,1}

]



----

Open english content



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

LWJGL 이동과 회전(LWJGL - Rotation and Picking)[LWJGL,이동,회전,Rotation and Picking,lwjgl.org,Lightweight Java Game Library]

이미지출처 : www.lwjgl.org

LWJGL 이동과 회전 그리고 픽킹(LWJGL - Rotation and Picking)

물체의 이동과 회전


Code:

GL11.glTranslatef(this.xoff, this.yoff, this.zoff-this.centerAvgXYZ);
        GL11.glRotatef(this.xrot, 1.0f, 0.0f, 0.0f);
        GL11.glRotatef(this.yrot, 0.0f, 1.0f, 0.0f);


Picking


Code:

public void SelectObjects(int x, int y) {
      int hits;
      int[] viewport = new int[4];
      int buffer[] = new int[256];
      IntBuffer selectBuff = ByteBuffer.allocateDirect(1024).order(ByteOrder.nativeOrder()).asIntBuffer();
        IntBuffer vpBuffer = ByteBuffer.allocateDirect(64).order(ByteOrder.nativeOrder()).asIntBuffer();
      GL11.glGetInteger(GL11.GL_VIEWPORT, vpBuffer);
      vpBuffer.get(viewport);
      GL11.glSelectBuffer(selectBuff);
      GL11.glMatrixMode(GL11.GL_PROJECTION);
      GL11.glPushMatrix();
      GL11.glRenderMode(GL11.GL_SELECT);
      GL11.glLoadIdentity();
      GLU.gluPickMatrix((float)x,(float)(viewport[3]-y), 5.0f, 5.0f, viewport);    
        GLU.gluPerspective(45.0f, ratio, 0.001f, 100.0f);
           //Rectangle rect = this.canvas.getClientArea();              
          // ratio = (float) rect.width / (float) rect.height;
     
      GL11.glMatrixMode(GL11.GL_MODELVIEW); // 물체를 그려줄때는 다시 모델뷰로..
      drawScatterPlot();                                  // 물체를 그려주고,
      GL11.glRotatef(this.xrot, 1.0f, 0.0f, 0.0f);  // 그 후에 회전을 해준다.
        GL11.glRotatef(this.yrot, 0.0f, 1.0f, 0.0f);
       
      hits = GL11.glRenderMode(GL11.GL_RENDER);
      System.out.println("Hits : "+hits);
      selectBuff.get(buffer);
      if(hits>0) {
        int selectedObjID = buffer[3];
      int depth = buffer[1];
                      for (int i = 1; i < hits; i++) {
                if (buffer[i * 4 + 1] < (int) depth) {
                  selectedObjID = buffer[i * 4 + 3];
                      depth = buffer[i * 4 + 1];
                }
          }
          ProcessSelect(selectedObjID);
      }
      GL11.glMatrixMode(GL11.GL_PROJECTION);            
      GL11.glPopMatrix();            
      GL11.glFlush();
      GL11.glMatrixMode(GL11.GL_MODELVIEW);              
  }



by


Tags : , , , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

이클립스 RCP TableViewer. Table에 Edit 기능을 붙일때[TableViewer,이클립스 RCP,eclipse RCP]

이미지출처 : www.mobilefish.com

이클립스 RCP TableViewer. Table에 Edit 기능을 붙일때..









TableViewer에

setCellEditors(CellEditor[])와

setCellModifier(ICellModifier)를 해 주어도.

셀 에디트가 되지 않을때에는,

setColumnProperties(String[] colimnNames)

를 이용하여 컬럼 프로퍼티를 정해주면 에디트가 가능하다.



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!