레이블이 오픈소스 & API인 게시물을 표시합니다. 모든 게시물 표시
레이블이 오픈소스 & API인 게시물을 표시합니다. 모든 게시물 표시

2008년 2월 14일 목요일

위키노믹스 책의 내용과 일치하는 기존 회사들의 오픈 정책

얼마전부터 위키노믹스 책을 보고있는데,
(내용이 지루하고 동일내용이 반복되는 듯 해서 다 읽지는 못하고)

주로 하는 말이..
회사 내부 인재를 두고 폐쇄적인 기술개발 보다,
전 세계사람들의 능력을 끌어내서 일하는 회사가 성공한다는 말이다.

예를 들어,
위키피디아가 단 몇년 만에 인터넷의 위키 협업에 힘입어
몇백년 전통의 브리테니커 백과서전을 능가한 것,
IBM, SUN 등이 Linux 오픈소스 개발에 참여 하는 것,
최근에 SUN이 mysql 오픈소스 DB 회사를 인수한 것.
그리고 이번에는 노키아가 트롤테크를 인수하였다.

모바일 브라우저는 오픈소스 브라우저 엔진인
웹킷(http://webkit.org/)이 점유율을 올리는 듯 하다.
(아이폰, 구글폰, 노키아..등등..에 이어 http://www.linuxdevices.com/news/NS8582486088.html)

시장 표준에 까워 질것 같고, TV나 기타 가전에도 적용될 것이란 예상..
(http://www.zdnet.co.kr/webtv/internet/0,39034165,39165870,00.htm)

이것이 다 위키노믹스에서 한말과 일치 한다는 느낌을 받는다.

2008년 1월 3일 목요일

WEB2.0에 걸맞는 여러 API를 이용한 사이트를 소개한다

WEB2.0에 걸맞는 여러 API를 이용한 사이트를 소개한다.
http://www.programmableweb.com/


사용자 삽입 이미지


그중에 재미있는것 하나.
플리커에서 사진을 추출해서 1:1로 경쟁을 붙인 다음에 순위를 매긴다.
사용자는 두개중에 마음에 드는 하나를 클릭하면 된다.
근데 탑 랭킹은 다 야한 사진들~ㅎ
http://www.flickrcombat.com



2007년 12월 6일 목요일

Google AJAX Feed API - 구글API를 이용하여 RSS리더기 만들기

http://code.google.com/apis/ajaxfeeds/documentation/

AJAX Feed API를 이용하면 요즘 유행하는 블로그에서 지원하는 Atom, RSS feed를 읽어올 수 있습니다. 이 API를 이용하면 쉽게 당신의 컨텐츠를 만들 수 있습니다.
  • Atom 1.0
  • Atom 0.3
  • RSS 2.0
  • RSS 1.0
  • RSS 0.94
  • RSS 0.93
  • RSS 0.92
  • RSS 0.91
  • RSS 0.9
  • 위와 같이 많은 포멧을 지원하며, 구글 Feed Crawler인 Feedfetcher가 한시간에 한번 이상 자료를 재수집 할 것입니다. 또한, 크로스 브라우징도 지원합니다.


    Apache Nutch - 오픈소스 웹 검색 엔진

    http://lucene.apache.org/nutch/
    Nutch는 오픈소스 웹 검색 소프트웨어입니다. Lucene을 기반으로 crawler, 링크 그래프 데이터페이스, HTML파서 등과 같은 웹에 특화된 기능들이 추가되었습니다.

    http://wiki.apache.org/nutch/
    위키에서 많은 정보를 얻을 수 있습니다.

    http://peterpuwang.googlepages.com/NutchGuideForDummies.htm
    실행방법:
    1. cygwin을 설치 합니다. (http://www.cygwin.com/)
    2. 환경변수 JAVA_HOME을 등록합니다.
     export JAVA_HOME="/cygdrive/d/tools/jdk1.6.0_02/"
    3. 다운받은 nutch-0.9디렉토리에서 크롤링 대상을 준비합니다.
     $ mkdir urls
     $ vi urls/cristian.txt하여 아래와 같은 크롤링 대상 사이트를 저장합니다.
     http://www.churchinthecity.org
     http://www.btgh.org/

     $ vi conf/crawl-urlfilter.txt 를 편집하여 크롤링 대상을 지정합니다.
      +^http://([a-z0-9]*\.)*apache.org/
      +^http://([a-z0-9]*\.)*churchinthecity.org/
      +^http://([a-z0-9]*\.)*btgh.org/

     $ vi conf/nutch-site.xml 를 편집하여 기본 설정을 합니다.

    4. 크롤러를 실행합니다.
     $ bin/nutch crawl urls -dir crawl -depth 3 -topN 50

    5. nutch-0.9.war를 톰켓의 webapps에 복사(deploy) 하여 nutch-0.9 웹 서치엔진을 구동합니다.

    6. WEB-INF/classes/nutch-site.xml 를 편집하여 크롤링 된 소스 디렉토리를 지정합니다.

    7. 톰켓을 재시작하면, 크롤링된 저장소를 기반으로 하여 아래와 같이 Nutch 웹 검색엔진을 사용 할 수 있습니다.


    사용자 삽입 이미지

    2007년 12월 5일 수요일

    Apache Lucene - 자바로 개발된 오픈소스 검색 엔진

    http://lucene.apache.org

    http://lucene.apache.org/java/docs/index.html
    Apache Lucene은 고성능의 풀 기능을 갖춘 자바로 작성된 텍스트 검색엔진 라이브러리입니다. 모든 플렛폼, 모든 어플리케이션에 full-text 검색기능을 제공할 수 있습니다.

    http://lucene.apache.org/java/docs/demo.html
    다운로드를 받아서 압축을 풀고 간단히 데모를 실행해 볼 수 있습니다.
    우선 lucene-core-2.2.0.jar , lucene-demos-2.2.0.jar 를 CLASSPATH에 추가 한 후,  

    아래와 같은 명령어로 인덱스를 생성합니다.

    D:\workspace\lucene-2.2.0>java org.apache.lucene.demo.IndexFiles d:\workspace\lucene-2.2.0\src


    위 명령을 실행하면 index 디렉토리가 생성되고, readable하지 않은 3개의 파일이 생깁니다.
    indexing의 결과겠죠.

    아래와 같이 데모 프로그램인 검색 프로그램을 실행하면,
    커멘드 명령어로 검색을 수행할 수 있습니다.

    D:\workspace\lucene-2.2.0>java org.apache.lucene.demo.SearchFiles
    Enter query:
    vector
    Searching for: vector
    1 total matching documents
    1. d:\workspace\lucene-2.2.0\src\demo\org\apache\lucene\demo\SearchFiles.java
    Enter query:


    다음에는 Lucene 기반으로 작성된 웹 검색 엔진인 Nutch 에 대해서 알아보겠습니다.

    2007년 12월 4일 화요일

    Google Web Toolkit - AJAX 어플리케이션을 만드는 자바 개발 툴킷

    http://code.google.com/webtoolkit/
    Google Web Toolkit(GWT)는 Google Maps와 Gmail과 같은 AJAX 기반 웹 어플리케이션을 쉽게 개발할 수 있도록 도와주는 오픈 소스 자바 개발 프레임워크입니다.
    오늘날 동적인 웹 어플리케이션을 개발하는 것은 싫증나는 작업이고 에러가 나기 쉬운 작업입니다. 이 작업은 당신이 당신의 일할 시간 중의 90%를 웹브라우저와 플렛폼간의 호환성 문제로 소비하게 합니다. 그리고 자바스크립트의 모듈화가 부족한 점은 공유, 테스트, AJAX 컴포넌트의 재사용을 어렵게 합니다.
    GWT는 당신의 골치 아픈 작업들을 도와줄 것이며, 당신의 유저들에게 동적인, 표준-호환적인 경험을 제공할 것입니다. 당신은 자바로 프로그램을 작성하면, GWT 컴파일러가 당신의 자바 클래스를 브라우저에서 구동될 수 있는 자바스크립트와 HTML로 변환해 줄 것입니다.

    http://code.google.com/webtoolkit/overview.html#Why
    왜 자바로 작성해서 자바스크립트로 변환하는 과정을 거쳐야 하는가?
    GWT에서 이용되는 자바 언어는 생산성 높은 개발 환경을 제공합니다. GWT와 자바 기술은 AJAX 개발 플랫폼으로 사용될 수 있습니다.

    아래와 같은 장점이 있습니다.

    1. 당신이 좋아하는 자바 개발 툴(Eclipse, IntelliJ, JProfiler, JUnit)을 AJAX 개발환경으로 그대로 사용할 수 있습니다.
    1. 자바 언어의 정적, 엄격한 타입 검사는 에러를 줄여서 생산성을 높입니다.
    1. 대부분의 자바스크립트의 에러(오타, 타입 불일치)를 런타임이 아닌, 컴파일 타임에 잡을 수 있습니다.
    1. 코드를 넓게 이용 가능 합니다.
    1. 요즘의 자동화된 자바 리팩토링은 매력적이고 세련되게 수행됩니다.
    1. 자바 기반의 객체지향 디자인은 이해와 협업을 쉽게 하고, 당신의 AJAX 코드를 적은 문서로도 보다 쉽게 이해할 수 있도록 해 줍니다.

    GWT로 제작된 드래그앤 드롭 데모
    http://allen-sauer.com/com.allen_sauer.gwt.dragdrop.demo.DragDropDemo/DragDropDemo.html


    2007년 12월 1일 토요일

    Apache Velocity – 템플릿 엔진

    http://velocity.apache.org
    http://velocity.apache.org/engine/devel/user-guide.html

    Velocity는 자바 기반의 템플릿 엔진입니다.
    간단하면서 강력한 템플릿 언어를 제공합니다. Velocity가 웹 개발에 사용될 때, 웹 디자이너는 자바 프로그래머와 함께 MVC모델에 따라 병렬적으로 일 할 수 있습니다. 웹 개발자는 디자인에 집중 할 수 있고, 프로그래머는 최고의 코드를 작성하는데 집중 할 수 있습니다. Velocity는 웹 페이지로부터 자바코드를 분리 하고, 웹 사이트를 보다 유지보수 하기 쉽도록 만들어 줍니다.
    Velocity는 웹뿐만 아니라 템플릿으로부터 SQL, PostScript, XML 생성하는 용도로 사용될 수 있습니다. 독립적으로 소스코드 생성하는 용도로 사용하거나 다른 시스템과 함께 사용될 수 있습니다. 예를 들어 Turbine 웹 어플리케이션 프레임워크에서 MVC 모델에 따라 View를 분리하여 웹 어플리케이션을 개발 할 수 있도록 도와줍니다.

    Apache JMeter – 스트레스 테스트 및 성능 측정 도구

    http://jakarta.apache.org/jmeter/
    http://www.apache-korea.org/jmeter/index.html

    Apache JMeter 는 테스트 기능과 퍼포먼스를 측정하는 기능을 갖는 100% 순수 자바 데스크탑 애플리케이션입니다. 원래는 웹 애플리케이션의 테스트를 위해서 설계가 되었지만 현재는 다른 기능의 테스트를 위해 확장되고 있습니다.

    JMeter로 무엇을 할수 있을까요?
    Apache JMeter는 정적(static)이거나 동적(dynamic)인 자원 모두(가령, 파일, 서블릿, 펄 스크립트, 자바 객체들, 데이타베이스와 쿼리들, FTP 서버 등등 다른 것들)에 대해 퍼포먼스들을 테스트 해 볼 수 있습니다. 서버나 네트워크 혹은 객체들에 대해서 과도한 부하를 주어 시뮬레이션 테스트도 가능하며 다른 부하 에 대해서도 전반적인 퍼포먼스를 분석할 수 있습니다. 또한 JMeter로써 퍼포먼스에 대한 분석을 그래픽하게 나타낼수 있으며 개발자들의 서버나 스크립트 객체들에 대해 과도한 동시 처리 부하를 테스트할 수 있습니다.

    사용자 삽입 이미지