이 블로그 검색

2012년 12월 21일 금요일

오디오 사이트

http://blog.naver.com/casteraprn?Redirect=Log&logNo=80134240293

영상 단자

HDMI>컴포넌트>RGB(PC)>컴포지트

컴포넌트 : 빨강, 파랑, 초록, 하양, 빨강 선, 720p지원
HDMI : 1080p지원
컴포지트 : 하양, 빨강, 노랑선

2012년 9월 5일 수요일

PKI 공개키 기반구조

http://blog.naver.com/PostView.nhn?blogId=nttkak&logNo=20130244568&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView

2012년 7월 11일 수요일

베트남, 앙코르와트

여행의 목적이 무엇인지를 우선 생각하셔야 합니다.

단지 여러나라를 둘러보듯 거쳐오시는것인지..

아니면 휴양과 관광을 하고 싶으신건지...

단지 둘러보신다면야 10일정도면 4~5개국정도는 가능합니다..   하지만 수박 겉핥는 여행은 원치 않으시리라 생각이 되구요.

알찬 여행..~!!

사실 태국이던 베트남이던 좀 자세히 들어가면 10일은 턱없이 짧은 기간이죠..

저는 동남아쪽을 돌아다녔는데요.. 태국도 매력적이고 , 베트남은 더 매력적이더군요..

갠적으로 추천해드리고 싶은건.. 베트남 캄보디아입니다.

베트남 대표 코스 (하노이) 하롱베이 1박2일은 봐야합니다..  싸파투어 (소수민족이 사는 산골마을 2박3일코스)
(호치민) 메콩델타투어, 구찌터널, 및 시티투어 

거기에 캄보디아로 가셔서 앙코르와트 3일정도 딱~!! (빡시게 봐야함) 보심ㄴ 좋을듯 합니다.

제게 10일이란 시간이 주어진다면 베트남 + 앙코르와트를 가겠습니다. (자신감 충만. ㅎㅎ)

하지만 지극히 개인적인 생각임을 참고해주세용..^^

앙코르와트는 세계문화유산인거 아시죠? 하지만 너무많은 훼손으로 폐쇄를 명했지만. 캄보디아 정부는

주 수입원이기에 폐쇄는 할수없다고 하네요.. 결국 언제 문 닫을지 모르겠네요..

문제는 한번 문닫으면 최하 50년 보통은 100년정도는 복구에 힘을 쏟느라. 일반인은 관람이 불가하다고 하네요..

전 문닫기전에 꼭 보고 싶은 마음에.. 다음년도휴가는 무조건 앙코르왓~!! 갈예정입니다.

너무 갠적인 예기만 했나모르겠네요.. 도움이 되셨는지도 모르겠구요..

베트남 캄보디아 조합 추천해드립니다...

 일정 추천,

1. 항공권 : 인천 -호치민, 하노이- 인천 (국제선) , (호치민 - 씨엠립, 씨엠립- 하노이 )(국내선) 베트남 항공 이용시 ADD-ON 이용시 편도 3만원으로 가능(단 비수기일시, 성수기일시는 요금 상승 있습니다.)
국제선 예메시 국내선 ADD-ON으로 같이 예메해야함.. 예약시 ADD-ON 사항을 반듯이 말씀드려야함..

2.
1일 호치민도착 (시내투어)지도보고 걸어다니시면됨.
2일 메콩델타투어 (하루투어 도착시 오후5~6시쯤 됩니다.)
3일 구찌터널 (반나절 도착시 오후1시쯤 됩니다.)  국내선으로 출발 씨엠립도착.
4일 앙코르와트
5일 앙코르와트
6일 앙코르와트 씨엠립 -하노이 이동
7일 하롱베이 당일 코스 (도착시 저녁 7시경됩니다. 교통체증시 딜레이 생깁니다.)
8일 싸파투어 2박3일 코스라 스케줄상 맞지 않으시면 생략 가능하고 혹은 하롱베이 투어와교체 가능합니다.
9일
10일 귀국

그냥 간략하게 말씀드린것이구요.. 앙코르와트를 길게 보셔도 되고.. 최소 3일은 봐야한다고 하네요

호치민에서 중부 나짱이나 무이네 정도에서 2박정도 휴양도 좋습니다~~  (씨푸드 천국..~!! 저렴합니다.)

호치민에서의 메콩이나, 구찌등을 빼셔도 상관없구요..

하노이에서 싸파투어만하셔도 좋고 혹은 하롱베이를 1박2일 하셔도 좋고.~ 땀꼭 투어(1일 투어입니다)를 하셔도 좋습니다.  스케줄은 일정에 따라 님께서 보고싶은것위주로 바꾸시면 좋스니다.

투어예약은 베트남 대표 투어 에어젼시인 신까페 (베트남현지에있는 유명한 투어에이젼시 입니다.) 입니다.

그곳에서 투어출발 하루전날만 예약하시면 됩니다. 그리고 자세한 내용은

여러 포털사이트 까페를 이용하시면 됩니다...  저는 호치민, 무이네 여행했구요..  두번째 베트남 여행에서

호치민 호이안 하노이 를 여행했는데요.. 베트남 가면 갈수록 알면 알수록 매력적이네요... 또 가고 싶네요..

저는 순수 뱅기부터 호텔 모두다 알아서 정했구요.. 한국에 있는 여행사 전혀 안끼고 여행했습니다.

혹시나 제가 이용한 까페 궁금하시면 알려드릴께요~ 참고로 까페 운영진 , 여행사 직원이 아닙니다.

까페를 통해 여행한 1인 입니다.. 감사합니다..^^

2012년 5월 16일 수요일

전세계약 해지 방법

http://legal.seoul.go.kr/legal/front/page/cyber.html?pAct=view&pCounsel=024903&pTreeOpenId=cyber

1. 관련 법 조항
민법 제623조에서는 "임대인은 목적물(임대차건물)을 임차인에게 인도하고 계약 존속 중 그 사용, 수익에 필요한 상태를 유지하게 할 의무를 부담한다."라고 규정하고 있습니다.
2. 임차인이 살고 있는 임차주택 내부에 곰팡이가 너무 과다하여 생활에 불편함이 고 더 이상 살 수가 없을 때에는, 임대인에게 집수리를 요청하시고, '임대인이 수리를 하지 않을 때에는 임대차계약을 해지하겠다'는 내용의 내용증명우편을 보내시기 바랍니다.
3. 임대인이 집수리를 계속 거부할 경우에는 최후 수단으로 법원에 계약 해지를 원인으로 한 보증금반환청구 소송을 제기하는 수밖에 없습니다.
4. 부동산 중개업자로서도 곰팡이 여부를 파악할 수는 없었을 것으로 보여 부동산 중개업자에게는 손해를 추궁할 수 없을 것으로 보입니다.

곰팡이 손해배상청구 가능

http://legal.seoul.go.kr/legal/front/page/cyber.html?pAct=view&pCounsel=024893&pTreeOpenId=cyber


임대인인 집주인은 임차목적물인 집에 대하여 임차인이 거주하여 제대로 사용할 수 있도록 수선의무 등이 있습니다. 따라서, 질문자께서는 먼저 임대인에게 집이 갖고 있는 하자(곰팜이, 누수 문제 등)를 설명하면서 그에 대한 수선(대책)을 요구하시기 바랍니다. 만약, 동 요구를 임대인이 받아들이지 않을 경우, 임대인의 귀책사유에 의한 임대차관계의 해지를 주장하시고, 그에 따른 손해배상 명목으로 부동산복비 등을 요구하시기 바랍니다. 그럼에도 불구하고 임대인이 동 요구를 받아들이지 않을 경우 법원에 소송을 제기하는 수밖에 없습니다.
한편, 만약 질문자께서 집주인과 임대차계약을 체결할 때, 누수가 없는지, 곰팡이가 없는지 등에 대해 확인을 요청했고, 그에 따라 집주인 및 부동산에서 아무 문제가 없다고 대답했다면, 기망을 이유로 한 임대차해지 및 그에 따른 손해배상도 청구할 수 있습니다. 참고로 공인중개사의 경우 공인중개사의 업무 및 부동산 거래신고에 관한 법률 제25조에서 중개대상물의 확인 및 설명의무를 규정하고 있는데, 구체적인 사실관계에 따라, 공인중개사의 책임이 인정될 수도 인정되지 않을 수도 있습니다.

출처 : 서울특별시 법무행정 서비스                                                                                                                                                                                                                                                                        

임대차계약 수리 요청

http://legal.seoul.go.kr/legal/front/page/counsel.html?pAct=qa_view&pNo=273&pTreeOpenId=qa

2012년 4월 24일 화요일

RequestFactory delete후 JDOObjectNotFoundException 발생


RequestFactory는 항상 Proxcy의 유효성체크를 하는데 delete후에도 findEntity()함수를 호출하기에
삭제가 되버렸기에 오류가 남.
그래서 아래와 같이  RuntimeException 처리를 해 주면됨.


public static Message findMessage(Long id) {
                PersistenceManager pm = PMF.get().getPersistenceManager();

                try {
                        return pm.getObjectById(Message.class, id);
                } catch(RuntimeException e) {
                        return null;
                } finally {
                        pm.close();
                }
        }


참고 url
http://www.mail-archive.com/google-web-toolkit@googlegroups.com/msg56356.html
http://code.google.com/p/google-web-toolkit/issues/detail?id=6721#c3
http://stackoverflow.com/questions/9476341/requestfactory-theory-why-is-locator-find-being-called-so-often
http://www.mail-archive.com/google-web-toolkit@googlegroups.com/msg53586.html

2012년 1월 28일 토요일

@UiField(provided = true)

@UiField(provided = true)
 : UiBinder.createAndBindUi()호출 전에 해당하는 위젯을 new로 생성해서 설정해 놓을 수 있다.
   false로 해 놓으면 UiBinder.createAndBindUi()호출 전에 new로 생성해 놓더라도 반영되지 않는다.
   true로 해 놓고 위젯을 초기화 해 놓지 않으면  UiBinder.createAndBindUi()호출 시 null에러 남

If true, the field must be filled before UiBinder.createAndBindUi is called. If false, UiBinder.createAndBindUi will fill the field, usually by calling com.google.gwt.core.client.GWT.create.

2012년 1월 27일 금요일

requestFactory + Editor에서 get, set

requestFactory + Editor에서
가져온 필드는 setter도 있어야함.

삭제처리할때도 없으니깐 오류 발생함

uibinder

<g:FlowPanel>안에는 위젯만 가능함. div태그 등 html태그는 사용못함

2012년 1월 24일 화요일

requestFactory에서 relation으로 연결된 bean도 함께 가져오기

When querying the server, RequestFactory does not automatically populate relations in the object graph. To do this, use the with() method on a request and specify the related property name as a String:
Request findReq = requestFactory.personRequest().find(personId).with("address");

defaultFetchGroup = "true"

@Persistent(defaultFetchGroup = "true")

자식값도 기본으로 가져오게 하기 위한 설정

If you want to load the child, you can either "touch" it before closing the PersistenceManager (e.g. by calling getContactInfo() in the above example) or explicitly add the child field to the default fetch group so it's retrieved and loaded with the parent:

2012년 1월 17일 화요일

날짜 포맷팅

import com.google.gwt.i18n.shared.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat;는 
서버단에서 사용할 수 없음

  SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yy");
    String s = formatter.format(date);

2012년 1월 16일 월요일

AppPlaceHistoryMapper.java

AppPlaceHistoryMapper에 Tokennizer을 등록해 놓지 않으면 페이지 이동시 url에 #token이
추가되지 않는다. 페이지 이동은 모두 되지만 단지 history에 등록되지 않아 뒤로 버튼이 되지 않을 것이다.

org.datanucleus.exceptions.NucleusUserException: Object Manager has been closed

  • 리스트를 가져온후 곧바로 guestList.size()를 사용했을 경우 나는 오류
  • List<GuestBookTable> detached = pm.detachCopy(guestBookList); if(detached.size()>0)...이렇게 사용
  • 해결책이 이것이 아닌 것 같음 일단 보류...
While learning to use JDO with datanucleus for a project to be run in app engine I tried to implement a method that gets a collection of persistant objects from the database. Trying to test the results I used the size()method on the collection. The result was following exception:

org.datanucleus.exceptions.NucleusUserException: Object Manager has been closed
at org.datanucleus.ObjectManagerImpl.assertIsOpen(ObjectManagerImpl.java:3816)
at org.datanucleus.ObjectManagerImpl.findObjectUsingAID(ObjectManagerImpl.java:2073)
....

The solution is simple. To iterate throw the objects of the collection, they have to be in a detached state, not in persistant state.

So the code in the dao class would look like:
public Collection getAllValueObjects() {
Collection results = Collections.checkedCollection(getJdoTemplate().find(ValueObject.class), ValueObject.class);
 
// To iterate the collection it has to be detached
getPersistenceManager().detachCopyAll(results);
 
return results;
}

http://127.0.0.1:8888/_ah/admin/

gwt관리자 페이지

http://127.0.0.1:8888/_ah/admin/

request factory + jdo

jdo객체의 키
 - relation을 사용할 경우 : 인코딩된 스트링을 써야 함.
                                      (Key타입은 request factory에서 지원하지 않음,
                                        long타입은 jdo에서 reation을 지원하지 않음)
 - relation이 없을 경우 : long타입 또는 인코딩된 스트링을 사용하면 됨
                                   (인코딩되지 않은 스트링도 사용가능 할 것같음)

request factory 주의 사항
  - proxy 객체이 사용가능한 type이 정해 져 있음
  - 서버측에서 구현해야하는 필수 메소드를 구현해야함(getId,getVersion등)

2012년 1월 15일 일요일

in a portable manner

in a portable manner : 이식가능한 방식(프로그래밍에서 유닉스에서 윈동우 등으로)

appengine

Error in meta-data for com.google.gwt.homepage.lovelicense.server.GuestBookAnswerTable.id: Cannot have a java.lang.Long primary key and be a child object (owning field is com.google.gwt.homepage.lovelicense.server.GuestBookTable.answer).

1:n관계등을 표현할 때는 Key or 인코딩된 Key만 사용가능하다.

appengine datastore

an entity : 한 행
kind : 테이블


1:n등의 관계를 사용할려면 키는  Key, or a Key value encoded as a string

2012년 1월 14일 토요일

RequestFactory 오류

 Deferred binding failed for 'com.google.gwt.homepage.lovelicense.shared.LoveLicenseRequestFactory' (did you forget to inherit a required module?)

등의 뜬금없는 오류가 날경우 사용가능하지 않는 타입의 변수를 RequestFactory로 사용하고 있지 않는지 체크

uibinder오류

uibinder 관련 알수 없는 오류가 발생했을때 해결방법
  - 그 소스뿐만아니라 거기서 호출하는 세부 view페이지의 uibinder에 문제가 있어서 그럴 수
    있으므로 일단 그 페이지는 주석처리하고 실행하면 문제가 발생한 페이지의 세부 오류를 볼
    수 있다.

SimplePanel

 SimplePanel can only contain one child widget

serializable versions of Text

I currently have some time before starting with my Master thesis project which will bring me back to Android programming. So to make use of that, I started to develop a project I already wanted to implement a couple of years ago, but due to my Master studies I didn't have the time to. I'll need some beta testers soon, so keep track of my blog here to catch the moment when everything goes online.
What I can reveal so far is that it will be a web application, using Google's GWT and it will be hosted on Google's cloud computing platform App Engine.

Today I was finishing the implementation of the basic CRUD operations, using JDO and App Engine's DataNucleus DataStore. Now the app possibly needs to store large strings surely more than 255 characters. You'd think that shouldn't be a problem, but App Engine's DataStore has some implications one should be aware of. Beside these, there are some well defined core value types, under which there is the restriction that you have to use thecom.google.appengine.api.datastore.Text instead of the String datatype if you plan to store more than 255 character strings. Ok, that shouldn't be a problem for us, should it? Well...not exactly. If you plan to use App Engine together with plain old JSP or whatever view technology that it won't be a problem, but if you use GWT you have to keep in mind that you're implementing a client-server system. The difference: the GWT client lives within the browser. So the data has to be transferred between the two end-points and has to be serializable accordingly.com.google.appengine.api.datastore.Text isn't serializable though. This means youcannot share your POJOs between your GWT client app and server-side code. Now you have different possibilities. Some that come to my mind right now are..
  • using DTOs (Data Transfer Objects) which isn't that comfortable 'cause it causes a lot of boilerplate code
  • writing a serializable version of com.google.appengine.api.datastore.Text data class.
Fortunately a guy has already implemented such a serializable version of Text and provides it for free. I just tried it out and it works seamlessly, without writing a single additional line of code. Here some steps on how to use it (available descriptions on the web are really bad).
  1. Download the necessary jar files from http://www.resmarksystems.com/code/:
    appengine-utils-client-1.0.jar
    appengine-utils-server-1.0.jar
  2. Include the appengine-utils-client-1.0.jar in your build path. Copy the appengine-utils-server-1.0.jar to your WEB-INF/lib folder.
  3. On your GWT module file add the following:

    <inherits name="com.resmarksystems.AppEngineDataTypes"/>
    
  4. Restart your GWT app or compile it and everything should work as expected.
Resmarksystem's version doesn't just provide serializable versions of Text but also for Key,ShortBlobBlobLinkUser.
If you get exceptions like
java.lang.ClassCastException: java.lang.String cannot be cast to com.google.appengine.api.datastore.Text
or
An IncompatibleRemoteServiceException was thrown while processing this call. 
then it's probably because you didn't correctly include the jar files as mentioned in step 2 above.

place

화면에 어떤 상태값이 필요하면,
Place에 변수로 설정해서, presenter에 전달할 정보들을 담으면 된다.

lovelicense 화면 추가 개발 순서

서버단 프로그램 개발

View개발 : view, mobileView, ShellMobile.java
factory 개발 : view 생성 부분
Presenter개발

Place, placeMapper 개발
Activity
ActivityMapper,
App.java








구글 gwt request factory 페이지 참고

2012년 1월 13일 금요일

Tokenizer

 @Prefix("edit")
  public static class Tokenizer implements PlaceTokenizer<TaskPlace> {

    private static final String NO_ID = "create";

    public TaskPlace getPlace(String token) {
      try {
        // Parse the task ID from the URL.
        Long taskId = Long.parseLong(token);
        return new TaskPlace(taskId, null);
      } catch (NumberFormatException e) {
        // If the ID cannot be parsed, assume we are creating a task.
        return TaskPlace.getTaskCreatePlace();
      }
    }

    public String getToken(TaskPlace place) {
      Long taskId = place.getTaskId();
      return (taskId == null) ? NO_ID : taskId.toString();
    }
  }




http://gwt-cloudtasks.appspot.com/#edit:create

prefix는 #뒤에 나오는 edit
getToken은 :뒤에 나오는 create

2012년 1월 3일 화요일

구글코드 이용하기

1. 오픈소스 프로젝트를 생성
2. 이클립스에서 svn연결 : window-show view-other-svn repositoryes
3. svn repositories에서 로컬에 있는 프로젝트 import
    - 폴더를 하나 생성한 후 거기에 프로젝트를 올리면 여러프로젝트를 이용할 수 있음
4. svn repositories에서 해당 url우클릭후 check out으로 프로젝트 내려받기
    - Check out a aproject in the workspace를 선택후 프로젝트 이름 넣고 확인
      (새로운 프로텍트가 생성됨