Windows2010. 10. 1. 09:30

위의 사이트를 참고하여 인터넷 익스플로러의 임시저장 폴더를 램디스크의 위치로 지정을 해 둔 상태였다.

램디스크를 삭제 후 Outlook 을 실행하자 아래와 같은 문제가 발생하였다.


해결 방법은 아래 경로의 레지스터 값을 수정해 주는 것이다.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Cache

다음과 같이 되어 있는 것을 볼 수 있다.
(H:\ 가 램디스크였음)


Cache 값이 아직 램디스크의 경로로 되어 있는 것을 볼 수 있다.

이를 
C:\Documents and Settings\ekwange\Local Settings\Temp\Temporary Internet Files
와 같이 본인 계정 아래의 기본 경로로 수정을 하도록 한다.

Outlook을 종료 후 다시 실행하면 정상 동작 한다.

Posted by ekwang
사용기2010. 2. 6. 16:13

Chrome사용 중 ActiveX를 사용하는 은행이나 공공기관 사이트 접근에 어려움이 있다는 건 다들 알고 있을 것이다.
그래서 아직도 IE를 버리지 못하는 분들이 계시는데..

이런 문제를 해결하기 위해 Chrome extension 인 IE Tab을 소개한다.

우선 당연히 Chrome을 설치해야 하고
다음으로 아래의 사이트에서 IE Tab을 설치하자.
https://chrome.google.com/extensions/detail/hehijbfgiekmjfkfjpbkbammjbdenadd?hl=ko

설치가 완료되면 오른쪽 빨간 박스와 같이 IE Tab icon이 표시가 될 것이다.

그림 1. 


IE Tab을 클릭하게 되면 아래와 같이 IE의 Address 입력창이 다시 보인다

그림 2. 

그곳에 주소를 입력하게 되면 IE Tab내부에서 원하는 주소로 이동을 할 수 있다.
은행, 관공서등의 사이트도 별다른(?) 불편함 없이 사용을 할 수 있게 된다.

그리고 하나 중요한 것이 IE Tab의 주소들에 대한 bookmark관리는 따로 해야 된다는 것이다.
그림 2. 에서 오른쪽 구석에 잘보면 빨간색 네모안의 아이콘을 선택하면 된다. 

"Bookmark this page in the IE Tab folder"
 페이지를 IE Tab 폴더로 북마크 한다.

Bookmark 아이콘을 선택하게 되면 그림 1.의 왼쪽 구석에 빨간 네모안의 IE Tab의 폴더로 주소가 북마크 된다.

그림 3. 

사실 몇몇 사이트에서는 IE Tab에서도 완벽히 동작을 하지 않는 것을 보긴 하였다.
하지만 이정도만 해도 Microsoft의 IE를 점점 멀리 할 수 있게 될 것이다.

왜 자꾸 Microsoft IE를 멀리 하라 할까..? 단지 MS를 미워해서가 아닌다..(왜 미워할까 --)
Chrome 이나 Firefox, Opera등을 한번 사용해보시면 알게 될것이다!!

마지막으로, 본인은 사용해보지 않았지만
Chrome Plus를 설치하면 IE Tab 의 기능이 기본적으로 설치되어 있다고 한다.

[R]
Posted by ekwang
TwitterAPI2010. 2. 5. 18:19
블로그를 방문해 주신 한 개발자 분으로 부터 아래와 같은 질문을 받았다.

twitter = new TwitterFactory().getInstance("아이디", "비밀번호");
Status status;
try {
status = twitter.updateStatus("Test msg1");
Log.e("Test","Successfully updated the status to [Test msg1].");
status = twitter.updateStatus("Test msg2");
Log.e("Test","Successfully updated the status to [Test msg2].");
} catch (TwitterException e) {
e.printStackTrace();
}

위와 같이 코드를 작성하고 updateStatus를 하고나서 메시지를 바꿔서 바로 다른 updateStatus를 하면 TwitterException : -1 이 발생합니다. (만약 3번째 updateStatus를 실행하면 잘 됩니다. 그러나 4번째는 문제발생...)
같은 소스를 일반 Java App로 만들어서 실행하면 문제가 없이 잘 돌아갑니다.

왜 안드로이드에서만 이런 문제가 발생할까요?

물론 답변을 할 수 없는 상태다. 나도 모르기 때문에;;

하지만 한가하던 터라 위와 관련된 내용을 좀 찾아보았다.
그전에, 내가 쓰고 있는 것은 Twitter4J-2.0.10 의 버젼 이었고 
위의 코드는 문제 없이 잘 동작 하였다.
Twitter4J-2.1.0 부터 문제가 발생한 것이다.

Project site(http://twitter4j.org/jira/browse/TFJ)를 검색해보니
많은 Android 개발자들이 Twitter4J 사용시 위와 같은 문제로 고민하고 있음을 알게 되었다.

다음은 검색 결과 중 주요 내용만 뽑아보았다.
31.  Yusuke Yamamoto   1월29일, 오후3시10분
Hi, 
I haven't managed to look into it yet. 
I have no idea why adding "Connection: close" to the request header doesn't work for the issue. 
http://java.sun.com/j2se/1.5.0/docs/guide/net/http-keepalive.html 
This can be a Dalvik/Harmony side issue as Miyuuu indicated. 
http://stackoverflow.com/questions/1440957/httpurlconnection-getrespo... 
Does any have any idea how to workaround the problem? 
I've just filed an Jira issue to track the problem. 
http://twitter4j.org/jira/browse/TFJ-296 
Thanks, 
-- 
Yusuke Yamamoto 
yus...@mac.com 

그렇다..
결론은 아직 해결이 되지 않았다 --;;

http client를 이용해서 server와 connection을 한 후 두번째 connection을 할 경우 fail이 발생을 한다.
android 의 경우 성능을 높이기 위해서 최초 연결이 된 경우 connection을 계속해서 유지하고 있도록 동작을 하고
이것 또한 Twitter4J가 위와 같은 exception이 발생하게 한다고 한다.
그래서 Twitter4J를 그냥 JVM에서 돌아가도록 하면 이런 문제는 또 발생하지 않는다.
DALVIK 에서 구동 될때만 문제가 생긴다는 것이다. (http://code.google.com/p/android/issues/detail?id=2800)


문제를 해결하기 위해서 여러 곳에서 움직임이 있는데
그중 하나만 관심을 가지고 지켜본다면 해결 된 때를 알 수 있을 것 같다.

Stackoverflow

Twitter4J

Twitter4J Group
http://groups.google.com/group/twitter4j/browse_frm/thread/4319a99a2a656275?tvc=1
Posted by ekwang
Android/Platform2009. 12. 1. 12:07

11/30일자 platform/manifest.xml 을 받고 나서 빌드 완료 후
eclipse에서 project를 생성하려고 Mydroid/Development/ide/eclipse/.classpath를 이용하여 New java Project를 하니
아래와 같은 에러가 발생하였다.

An error occurred while creating project. Check log for details.

Reason:
Build path contains duplicate entry: 'frameworks/base/vpn/java' for project 'master'
An error occurred while creating project. Check log for details.

Reason:
Build path contains duplicate entry: 'out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/vpn/java' for project 'master'


본인만 발생하는 것인지 알 수는 없지만 해결 방법에 대해 알아보자.
Order and Export tab을 보면 아래와 같이 frameworks/base/vpn/java 가 2개가 포함이 되어 있다.
그리고 더 내려보면 out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/wifi/java 또한 2개가 포함되어 있다. 




아래 경로에 있는 .classpath파일을 열어서 중복되는 entry를 삭제한다.
~/android/master/development/ide/eclipse/.classpath

<classpathentry kind="src" path="frameworks/base/test-runner"/>
<classpathentry kind="src" path="frameworks/base/tts/java"/>
<classpathentry kind="src" path="frameworks/base/vpn/java"/>
<classpathentry kind="src" path="frameworks/base/wifi/java"/>
<classpathentry kind="src" path="frameworks/base/vpn/java"/> <-- 삭제
<classpathentry kind="src" path="frameworks/policies/base/phone"/>


<classpathentry kind="src" path="out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/telephony/java"/>
<classpathentry kind="src" path="out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/vpn/java"/>
<classpathentry kind="src" path="out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/wifi/java"/>
<classpathentry kind="src" path="out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/vpn/java"/> <-- 삭제

파일을 저장 후 .classpath 파일을 mydroid 폴더로 복사해서 다시 eclipse를 이용해서 project를 생성하면 에러 없이 잘 된다.

eclipse가 열려 있는 상태에서 이미 mydroid 폴더로 복사되어 있는 .classpath파일을 수정하면 파일이 원복이 되니
eclipse를 다고 .classpath는 수정 후 eclipse 다시 로딩하도록 한다.

위와 같이 duplicated entry 라는 에러가 뜰때는 .classpath파일에서 중복되는 entry를 삭제 하고 다시 project를 만들면된다.
Posted by ekwang
사용기2009. 11. 25. 23:53
어떠한 이유(IE8이 critical error가 발생하며 계속 죽음!!)로 Chrome을 설치 하였다.
stable version의 chrome은 IE8에 비하면 기능면에서 참 simple하였고, 안정적이고 빨랐다.
물론 ActiveX 때문에 몇몇 사이트는 사용에 어려움이 있다.

하지만 Chrome을 메인 browser로 계속 사용하다보니 아~ 너무 simple하다..
그래서 찾은 것이 extension의 설치를 통한 기능 확장이었다.
Chrome extensions : http://www.chromeextensions.org/

그럼 바로 chrome 개발자 버젼의 설치, 그리고 extension 설치에 대해서 살펴보자.

첫번째 방법은 Window 사용자의 경우 공식 사이트에서 다운을 받은 후 channel changer를 이용하여 개발자 버젼으로 update 받는 방법이다.

  1. http://www.google.com/chrome 에서 우선 chrome stable 버젼을 다운 받아 설치합니다.
  2. 설치가 완료되면 윈도우 일 경우 http://chromium.googlecode.com/files/chromechannel-2.0.exe (chrome channel changer)를 다운로드로드 받아서 실행합니다.
  3. google chrome channel switcher가 뜨면 3번째 Dev: The latest features and bugfixes (~weekly updates). 를 선택하고 update 버튼을 누릅니다.
  4. 다시 chrome을 실행하여 옵션메뉴로 들어가 Google 크롬 정보를 선택합니다.
  5. 정보 창에서 지금 업데이트 버튼을 누르면 개발자 버젼으로 update가 진행 됩니다. 완료 후 chorme을 다시 시작합니다.
  6. http://www.chromeextensions.org/ 사이트에서 필요한 extensions를 선택해서 사용하면 됩니다.

두번째 방법, 아래 사이트에서 직접 다운로드 받아서 설치 한다. Mac, Linux 사용자.

Subscribing to a channel

Windows

Download and run the installer for the desired channel:
You'll need to restart Google Chrome to get the update. If this didn't work to get the latest build on a channel, try using the Channel Changer.

Mac

Requirements: Intel CPU; Mac OS X 10.5.6 or later.

Note: The Mac build still lacks certain privacy features, and is not appropriate for general consumer use.

Download and open the disk image for the desired channel: Then drag the app to the usual place.

Linux

Requirements: Intel Pentium 4 / Athlon 64 or later CPU; 32- or 64-bit Ubuntu 8.04 or later, or 32-bit Debian 5. Support for other Linux distributions is planned; unpacking the .deb files by hand may work. 

Note: Installing Google Chrome will add the Google repository so your system will automatically keep Chrome up to date. If you don't want Google's repository, do "sudo touch /etc/default/google-chrome" before installing the package.

Download and install the package appropriate for your system (just clicking on it should do the right thing):

http://www.chromeextensions.org/ 사이트의 검색창에서, gmail, reader, wave, twitter 등으로 검색해서 설치 하면 된다.


Posted by ekwang
Linux/Ubuntu2009. 11. 23. 22:08
출처 : http://ubuntu.or.kr/viewtopic.php?f=9&t=7454
deb 패키지 삭제 방법.  package 수동 삭제.

adobe-flashplugin 설치가 정상적으로 마무리 되지 않아서 
" ~ 아카이브를 찾을 수 없습니다." 라는 오류 문구와 함께
시냅틱 패키지 관리자, dpkg, apt-get 어느것 하나 정상 적으로 동작 하지 않는 문제가 발생하였다.


상기 링크에서 해결 방법을 찾았다.
dpkg 정보에 포함되어 있는 adobe-flashplugin관련 정보를 모두 삭제 후
apt-get install 하여 재 설치 하니 정상 동작 하였다.

$cd /var/lib/dpkg
$sudo gedit status

하여 adobe-flashplugin pakage 정보를 제거.

$sudo gedit available

한 후 마찬가지로 adobe-flashplugin pakage 정보를 제거.

출처 링크에 보면 이후 .list에 설치된 내용들도 삭제를 하라고 하고 있는데,
위에서 한 것 처럼 status, available 에서 package정보만 삭제 후
다시 install 하여도 정상적으로 잘 됨을 확인 하였다. 


Posted by ekwang
TwitterAPI2009. 11. 19. 10:02
Twitter4J를 이용하여 간단한 예제를 작성해보도록 하자.

오늘 살펴볼 예제는 
에 있는 첫번째 예제인
id, password 를 이용해 Twitter 인스턴스를 생성하고
updateStatus 메소드를 이용해서 입력한 스트링을 보내는 코드이다.

1. Updating status

You can update "What are you doing?" via Twitter.updateStatus() method.
See also twitter4j.examples.Update.java for detail. 


Twitter twitter = new Twitter(twitterID,twitterPassword);
Status status = twitter.updateStatus(latestStatus);
System.out.println("Successfully updated the status to [" + status.getText() + "].");


위의 예제를 간단한 Android application으로 만들어 보자.
결과 화면은 아래와 같다.


먼저 사용할 Twitter4J class를 import해준다.
import twitter4j.Twitter;
import twitter4j.Status;
import twitter4j.TwitterException;


3개의 EditText와 하나의 Button을 이용하여 위와 같은 화면을 구성할 수있다.
final EditText input_id = (EditText)findViewById(R.id.user_id);
final EditText input_pw = (EditText)findViewById(R.id.password);
final EditText input_text = (EditText)findViewById(R.id.input_text);
Button signin = (Button)findViewById(R.id.sign_in_button);

이후 Update Button에 OnClickListener를 붙여서 onClick 발생시 
signin.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v){
      //TODO : Below code will be inserted here
    }
});


user_id EditText와 password EditText에 입력된 값으로 Twitter 객체를 생성하도록 해준다.
그 후 updateStatus 메소드를 이용하여 글을 올리고 결과를 Toast를 이용해 출력 한다.
Twitter twitter = new Twitter(username, password);
Status status;
try {
  status = twitter.updateStatus(update_text);
  Toast.makeText(getApplicationContext(), "Successfully updated the status to [" + status.getText() + "].",   Toast.LENGTH_LONG).show();
  } catch (TwitterException e) {
    Toast.makeText(getApplicationContext(), "Fail to update text [" + e + "].", Toast.LENGTH_LONG).show();
  }

위와 같은 간단한 코드 만으로 Twitter에 로그인 하고 글을 올리는 것이 가능한 application을 만들 수 있다.

프로젝트 파일을 압축해서 첨부하였으니 참고.
다음에는 자신의 timeline을 얻어와 list로 출력 하는 예제를 살펴볼 예정이다.

'TwitterAPI' 카테고리의 다른 글

[Twitter4J] OAuth support  (0) 2011.02.10
Twitter4J TwitterException -1 발생  (1) 2010.02.05
Twitter4J를 사용하기 위한 JAVA CLASSPATH 설정  (0) 2009.10.22
Posted by ekwang