달력

1

« 2025/1 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
최근에 몸이 안좋다는 핑계로 이것 저것 하던 것들 다 손에서 내려 놓고, 아무것도 제대로 해보지 않은지 약 1달이 되었다. 이전에 Twiter4J 분석해서 여러가지를 테스트하고는 이를 GAE에 올리려고 하다가, 말았는데 그 이유는 새로 다운 받은 Eclipse 3.5 버전(Galileo)에서 돌아가는 GAE 플러그인이 제공되지 않았기 때문이 었다. 그 이후로 수 차례 GAE 사이트에 들어가서, 확인을 해 보았지만, 여전히 제공되지 않는 것을 확인하고는 잊고 있었다.

그러다가 최근에야 Eclipse 3.5 플러그인이 제공되는 것을 알게 되었다.
오늘은 GAE에 변경된 것들이 있는지 문서들을 읽어 보다가 web.xml 설정에 대한 제약들을 알게 되었는데, 어쩌면 당연한 것이라고 생각되는 것이었다.

아래의 내용인데,

App Engine supports the <load-on-startup> element for servlet declarations. However, the load actually occurs during the first request handled by the web server instance, not prior to it.

App Engine supports <mime-mapping> elements for specifying the MIME type to use for resources whose filenames end with certain extensions. However, MIME mappings only apply to servlets, not to static files. Static files use a fixed list of mappings of filename extensions to MIME types.

Some deployment descriptor elements can take a human readable display name, description and icon for use in IDEs. App Engine doesn't use these, and ignores them.

App Engine doesn't support JNDI environment variables (<env-entry>).

App Engine doesn't support EJB resources (<resource-ref>).

The <distributable> element is ignored.

Servlet scheduling with <run-at> is not supported.


읽어보면 Web Applicaton 시작시에 순서를 정해주게 되어 있는데, 이는 GAE에서는 별다는 의미를 부여하지 않는다는 것이다. 이를 사전에 처리하는 것이 아니라, 웹서버의 instance에 의해 첫번째 요청을 처리하는동안 load 되기 때문이다.

그리고, MIME mapping은 Servlet에 맵핑할때만 사용될뿐, 정적파일에는 사용되지 않는다. 정적 파일들에 대한 맵핑은 Fixed 된 파일을 통해서 정의해서 사용한다.

그리고,
- JNDI 환경변수를 지원하지 않는다.
- App Engine은 EJB 환경 변수를 지원하지 않는다.
- <distribution>은 무시한다.
- <run-at>태그를 이용한 Servlet의 스케즐링도 지원하지 않는다.
        (==> 기존의 다른 WAS상의 run-at 태그의 이용에 대한 것은 다음의 링크를 참조하면 된다.
        http://www.caucho.com/resin-3.0/servlet/run-at.xtp )



:
Posted by 행복상자
트위터를 시작한지, 약 2달정도 된것 같다. 남들이 좋다니까, 남들이 하라고 해서 시작한 것은 아니지만 이를 통해서 여러가지 변화들이 생긴것 같다.

140글자라는 많지도 적지도 않은 글을 남길수 있기에, 글을 쓰는데 생각을 정리하기 위해 많은 시간을 들이지 않게 되었다. 어떤 특정한 주제에 대해서, 생각을 하거나 이야기 하기 위해서 워밍업을 할 필요가 없다는 말이다. 자유롭게 내가 이야기 하고 싶은 내용을 주제와는 상관없이 풀어나갈 수 있기 때문에 쉽게 글을 쓸 수 있어서 좋다. 나를 꾸밀 필요도 없고, 나를 포장할 필요도 없다. 내가 알고, 나를 아는 사람들이 귀를 기울이고, 듣고 싶은 아니면 하고 싶은 이야기를 하기 때문에 상당히 블로그에 딸리는 댓글 보다는 상당히 예의 바르고, 남에 대한 원색적인 비방이 없어서 좋다. (뭐 필요하면 바로 Following을 취소하면 되니까, 그냥 쉽다.)

다른 사람들이 새벽녁에 일어나서, 이러 저러한 이야기로 떠드는 것을 보면, 참 흥미롭기도 하고, 정겹기도 하다. 아무도 일어나지 않을 것 같은 시간에, 서로 이러 저러한 이야기를 하는 것을 보면 자연스럽게 나도 이야기 하게 되는데, 싫지는 않다. 물론 내 성격상, 아는 사람들에게만 이야기를 한다.

트위터를 하면서, 안좋아진 것은 다른 사람들도 그러는지 모르겠지만, 블로그에 글을 쓰는 횟수가 현저하게 줄어든 것이다. 아니 전혀 들어가 보지도 않는다. 지난 1달동안 절필(?) 된 채로 방치아닌 방치가 되어 버렸다. 뭐 이러저러한 이유들이 있지만, 반드시 좋은 현상이라고는 할 수 없다. 이른 트위터에 중독아닌 중독으로 인해서 벌어진 현상이므로 전적으로 트위터의 책임(?)이다.

세상에는 많은 문명의 이기들이 있지만, 한 시대 또는 짧은 시간동안 사람사는 일에 영향을 주다가 다른 문명의 이기들이 나타나면, 사라지기도 한다. Twitter는 분명 새로운 문명의 이기이다. 이것이 어떤식으로 우리의 삶을 다채롭고 윤택하게 할지, 아니면 단지 사람들을 중독과 유행에 빠지게 만드는 일시적인 흐름의 단편으로 기억될지 모르겠지만, 나는 최소한 이것은 즐길만한 가치가 있다고 생각한다.

 새로운 소식이나 기사들을 쉴틈없이 뿌려지기도 하지만, 능동적으로 이러한 것들을 받아들일 수 있기에, 삶이 조금 더 쉬워졌다고 할수 있겠냐마는, 결국 이것은 선택의 문제이다. 싫으면 과감하게 Blocking 해버리면 그만이기 때문이다.

그래서 나는 오늘도 이찬진님이 올리는 글을 귀를 쫑긋 세우고 기울이고 있다. 내가 원하는 이야기를 해주기를 바라면서... 조금만 더 기다리면 되나요? 쌓아둔 실탄들이 녹이 쓸고 있답니다.

원하던 원하지 않던, 새로운 글들이 올라오면 기분이 좋고 즐겁다. 길지 않은 글들이 지루함보다 많은 정보를 내포하기 때문이다.

:
Posted by 행복상자
2009. 7. 18. 13:10

Twitter API 사용하기 Tip & Tips2009. 7. 18. 13:10

아래 글을 사실 몇 주전에 Twitter API를 분석하기 위해서, 정리하던 자료로 Google Docs로 만들었던 자료의 일부이다. 실제로는 Twitter API 를 이용하여 개발을 할때는 자기가 원하는 언어와 툴을 사용하여 개발을 할 수 있도록, 문서들을 제공하고 있지만 자신이 자신있는 개발언어와 코드를 보면 더 쉽게 이해할 수 있을 것이다. 

개인적으로는 google app engine에 올릴 작은 서비스를 만들기 위해서 Java 라이브러리를 찾았는데, 그때 정리했던 자료인데, 별로 도움이 안 될거 같아서 그냥 지울까하다가 Blog에 올린다.

[간략히 정리한 자료]
Twitter API는 두개의 파트로 구성되어 있다. 이는 역사적이 이유때문인데, 회사의 사명이 바뀌고 Rebranding되었기 때문이다.
    - REST API, Search API => 향후에도 분리된 형태로 남을 것이다.
 
The Twitter REST API:
    - 개발자들이 Twitter core data로 접근이 가능하다.
        . update timelines, status data and user infomation
The Search API:
    - 개발자들이 Twitter Search와 Trands data의 기능의 사용할 수 있도록 해준다.
 
Rate limiting
    - Twitter API는 clients가 주어진 사간에서 제한된 수의 Calls을 만들수 있도록 허락하고
    - 이러한 정책은 두종류의 API들을 통해서 다른 방법으로 적용된다.
 
REST API Rate Limiting
    - REST API 는 시간당 100개의 requests의 기본적인 제한을 가지고 있다.
    - account and IP-based rate limitig을 가지고 있고
    - HTTP Post 를 이용하여 Twitter에게 데이터를 전송하는 경운는 제약이 없다. 
        . statuses/update 와 같을 경우에....
 
Twitter Access in Java
    - Java library
    - 모든 library를 설치해서 사용하기 보다는, 인터넷에 올라온 분석글들의 도움을 받아보니, 이중에서 Twitter4J 가 괜찮은 것 같다.

나중에 실제로 Twitter4J를 사용해보았는데 사용법이 어렵지 않아, Twitter를 사용해 본 경험이 있는 개발자라면, 쉽게 사용할 수 있다. 
사실, Twitter에서 제공하는 인터페이스를 랩핑한 코드들이기 때문에, 쉬워 보일지도 모른다.

테스트를 하면서, 갑자기 동작이 안하는 경우가 발생하는데, 이경우 API를 너무 많이 호출했는지를 먼저 의심해 보아야 한다. Twitter는 Open Platform이기는 하지만, 동일 IP주소를 사용하는 PC와 Device에 제약사항이 있는데, 시간당 100회와 하루 24시간동안 1000회를 이용 가능하도록 되어 있다. 

이러한 제약 사항을 기억하고 있다면, 원하는 서비스 모듈을 만들어 사용하는데 큰 어려움과 부족(?)함이 없을 것이다.


:
Posted by 행복상자
2009. 7. 12. 08:06

VirtualBox 3.0.2 Released Tip & Tips/VirtualBox2009. 7. 12. 08:06

Sun에서 GPL 라이센스로 개발하고 공개하고 있는 이전에 소개한 이후로 계속 버전을 업그레이드 하고 있다.
내가 개발에 필요할 때가 아니면, 자세하게 변경 내용을 들여다 보지 않는터라 얼마나 변경되었는지 알지 못하고 있다가, 이번에 싸이트를 방문하고 나서야 벌써 3.0으로 업그레이드 되었음을 알게 되었다.

이에 대한 설치 방법은 이전에 써 놓았던 아래의 Blog를 참조하면 된다.


사실 VirualBox 2.2가 지난 4월에 나오고 얼마되지 않아 VirtualBox 3가 지난 6월 30일 나온 것은 굉장히 빨리 버전이 올라가는 있다는 것인데, 그리고 나서 7월 10일 경에 3.0.2로 업그레이드한 버전을 Release하였다는 것은 기능적으로 빠르게 추가되고 있다는 의미이기도 하지만, 내부적으로 Defact가 많다는 의미이기도 하다. 

이에 대한 기존 VirtualBox2와 3의 다른 점은 Changelog에서 확인할 수 있다.

아는 사람들은 알겠지만, 몇개월 전에 Sun과 Oracle의 기업 합병이야기가 있었고, 두 회사는 다른듯하지만 내부적으로는 서버에 관련 소프트웨어 기술들은 많은 부분 유사하고 중복되어 있다. 그 중 하나가 가상화 기술은데, 합병의 여파로 VirtualBox가 중단되지 않나하는 우려도 있었는데, 지속적으로 버전업하고 있는 것은 상당한 의미를 내표하고 있다.

VirtualBox 3는 현재 Windows, Linux 그리고 Macintoch 와 OpenSolaris에서 호스트로 도작할 수 있으며, 다음과 같은 guest OS들을 사용할 수 있다. (아래 표 참조)
현재 나와 있는 OS중에서 많이 사용되고 있는 것들은 거의 모두 사용이 가능하다. 


eam. (Page last updated 2009-06-12)


Guest OS Status Remarks
Windows family
Windows 7 RC Works, with Additions
Windows Vista Works, with Additions
Windows 2000 Works, with Additions
Windows XP Works, with Additions
Windows Server 2003 Work, with Additions
Windows NT Works, with Additions Some issues with old service packs. Recommended to install service pack 6a.
* Windows 98 Works, no Additions available
Linux family
Generally, all 2.4 and 2.6 kernels work; however, we recommend 2.6.13 or above for better performance. Kernels 2.6.18 to 2.6.18.2 contain a race condition (which was unfortunately backported to the Ubuntu 6.06 Server and 6.10 kernels) that can cause boot crashes in virtual machines.
Ubuntu 5.10/6.06 Desktop/7.04/7.10/8.04/8.10/9.04 Work, with Additions
Ubuntu 6.06 Server/6.10 Works partially, with Additions The Ubuntu 6.06 Server and 6.10 kernels suffer from the race condition mentioned above.
Debian 3.1/4.0/5.0 Work, with Additions
SUSE 9/10.0 Work, with Additions
openSUSE 10.2 Works partially, with Additions The openSUSE 10.2 kernel suffers from the race condition mentioned above.
openSUSE 10.3 Works, with Additions
openSUSE 11.0/11.1 Work, with Additions
Mandriva 2008 Works, with Additions Mandriva 2008 has the guest additions for VirtualBox 1.5 installed by default. These should be updated after installation.
Mandriva 2009.0/Mandriva 2009.1 Work, with Additions
Mandrake 10.1 Works, with Additions
*Mandrake 9.2 Works, without Additions
Fedora Core 1/4/5/6 Work, with Additions
Fedora 7, 8, 9, 10, 11 Work, with Additions
Red Hat Enterprise Linux 3, 4 and 5 Work, with Additions
* Red Hat Linux 9 Works, with Additions
* Red Hat Linux 7 Works, without Additions
* Linspire 4.5 Works, with Additions
* Slackware 10.1 Works, with Additions
* Conectiva 10 Works, with Additions
* Xandros 3 Works, no Additions available
Xandros 4 Works, with Additions
ArchLinux Works, with Additions Installation has to be booted with the ide-legacy option.
Solaris
Solaris 10 5.08 and later Works, Guest Additions available No shared folder support yet.
OpenSolaris 2008.05 and later Works, Guest Additions available No shared folder support yet.
Unices
FreeBSD Works partially FreeBSD 6.2 is known to cause problems.
* PC-BSD 1.3 Doesn't work
OpenBSD Works, no Additions available
Others
DOS Works, no Additions available Only limited testing as part of system installation processes has been performed.
OS/2 Works, with Additions Requires VT-x hardware virtualization support. Only MCP2 is reported to work reliably so far.
QNX Neutrino 6.32 Doesn't work
* Novell Netware 6.5 Doesn't work
* BeOS 5 Doesn't work
Syllable Works, no Additions available
* Visopsys Doesn't work
ReactOS Works, no Additions available
* SkyOS Works, no Additions available




:
Posted by 행복상자