2008년 12월 23일 화요일

PUMz.News 0.2.8.2 릴리즈

오랜만에 릴리즈합니다.

이번에 바뀐 사항은...
  • XMLContentHandler에 GetContentFromItemLink, SkipOnError, MaxChildCount 속성이 추가되었습니다. (피드를 클리핑할 때 유용합니다.)
  • SyncImageContentFilter 가 추가되었습니다.

메리 크리스마스 & 해피 뉴이어~

2008년 12월 21일 일요일

피드(RSS, ATOM)를 클리핑할 때 이미지도 함께 긁어오게 하려면...

피드를 클리핑할 때 기본적으로 포스팅에 첨부된 이미지는 가져오지 않습니다. 이를 함께 긁어오도록 하려면 다음의 내용을 ...

        <ContentHandler Id="Article" Type="Normal">
            <ContentFilters>
                <Trim/>
            </ContentFilters>
        </ContentHandler>

아래의 내용으로 수정해야 한다.
 
       <ContentHandler Id="Article" Type="Normal">
            <ContentFilters>
                <GrabImage UrlPattern="&lt;img[ a-z0-9&quot;\(\):=._]*src=&quot;([^&quot;]*)&quot;" UrlFormat="${UrlFactor}" ReplaceFormat="&lt;img pumz src=&quot;${FileName}&quot;"/>
                <Trim/>
            </ContentFilters>
        </ContentHandler>

<img src="이미지 full URL"> 의 형식으로 되어 있다면 긁어올 것이고, 그렇지 않으면 못 가져올 수도 있습니다.


2008년 11월 25일 화요일

PUMz 엔진에서 사용하는 기술 및 오픈 소스들

한번 정리해봅니다.

사용하는 오픈 소스 제품들
  • Open C#: C#용 공용 라이브러리. 자동업데이트, 로깅, 플러그인 구조 제공
  • RichBrowserPlatform: Tab기반 웹 브라우저 플랫폼. Open C# 사용
  • DockPanelSuite: Docking Panel 콤포넌트. RichBrowserPlatform에서 사용
  • StringTemplate .NET 버전: Template Engine
  • ANTLR: Parser Generator. StringTemplate에서 사용


사용하는 기술들

  • .NET Framework 2.0: Virtual Machine
  • C#: 구현하는데 사용한 언어
  • HTTP: 클리핑을 위한 연결방식
  • XML: Configuration 및 룰 파일에서 사용
  • XPATH: XML데이터를 읽거나 룰 파일에서 사용.
  • RSS, ATOM: XML형태의 피드 데이터. 클리핑시 사용
  • Regular Expression: 클리핑시에 사용
  • Template: 클리핑한 결과를 HTML로 저장할 때 사용

C#으로 어플리케이션 하시는 분들에게 도움이 될려나 모르겠네요. 참고하세요.

2008년 11월 3일 월요일

PUMz.News 0.2.8.1 릴리즈

스크린샷


릴리즈 노트

  • "Regex" 컨텐트 핸들러에 "UrlHttpDecodingRequired" 옵션을 추가했습니다.
    • 찾은 URL을 UrlDecode 해야하는 경우에 "True"로 설정합니다.


다운로드
(이미 0.2.7.0 버전이상을 설치하신 분은 재시작시 자동업데이트됩니다.)


처음 사용하시는 분들은 사용법을 먼저 읽어보세요.


2008년 10월 28일 화요일

PUMz.News 0.2.8.0 릴리즈합니다.


이번에 바뀐 사항은...
  • "RegEx" 컨텐트 핸들러에 최대 자식 컨텐트 갯수를 설정할 수 있습니다. 쉽게 말하자면, 목록이 많은 경우, 최대 갯수를 지정하면 최대 갯수만큼만 가져오기 때문에 클리핑을 시간을 좀 줄일 수 있습니다.
  • 룰에 EraseContentFilter 가 추가되었습니다. 이건 CropContentFilter와 반대로 가져온 컨텐트의 일부 내용을 지우는 것입니다. 부분적으로 지워야할 필요가 있는 경우에 필요하겠지요.


다운로드는...
  • 0.2.7.0 이상 버전을 설치하신 분들은 실행시 자동으로 업데이트됩니다.
  • 처음 받으시는 분들은 옆의 프로그램 다운로드 링크를 참고하세요.


그럼, 잘 쓰시길...

2008년 10월 22일 수요일

PUMz.News 0.2.7.1 릴리즈합니다.

이번 릴리즈는 마이너 업데이트입니다.
룰 파일을 읽을 때 디렉토리를 모두 비우도록 했었던 것을 클리핑 시작시에 비우도록 변경했습니다.

 

잘 쓰십시오.

p.s. 0.2.7.0 설치하신 분은 실행시 자동업데이트 될 겁니다. 그 이전 버전을 설치하신 분들은 다운로드를 별도로 받으셔서 설치하셔야 합니다.

 

2008년 10월 20일 월요일

PUMz.News 0.2.7.0 릴리즈합니다.


바뀐 점은 아래와 같습니다.
  • 프로그램의 자동업데이트를 지원합니다. (새 버전이 나오면 설치본을 바로 다운받아 실행가능합니다.)
  • 태그를 없앨 때 특정 태그를 예외로 둘 수 있습니다. 즉, 줄바꿈(br, p)용 태그를 살릴수도 있습니다.

2008년 10월 14일 화요일

펌즈 룰 파일의 구조

XML의 이해
룰 파일은 XML 형태로 되어 있습니다. 이유는 좀 더 자유로운 형식의 룰을 지원하고, 프로그램도 이해하기 쉽기 때문이죠. 룰 파일을 이해하시려면 XML 파일에 대해서 약간의 지식이 필요합니다. 먼저 아래의아래의 포스트를 보시고 다음으로 진행하십시오. XML에 대해서 알고 계시면 다음으로 넘어가시면 됩니다.


룰 엘리먼트(Rule element)
취상위 엘리먼트입니다. 형식은 아래와 같습니다.
<PUMzRule Version="2.0" Type="News" Base="">

룰 엘리먼트의 속성들(attributes)
  • 버전(Version): 룰의 버전을 의미하며, "2.0"이"2.0"이"2.0"이"2.0"이 최신입니다.
  • 형태(Type): 현재 "News" 밖엔 없습니다.
  • 기본 룰(Base): 부모가 되는 룰인데, 현재는 처리되지 않습니다. ""로 비워둡니다.


프라퍼티 엘리먼트(Properties element)
프라퍼티 엘리먼트는 Java의 Hashtable<key, value>이나 C#의 Dictionary<key, value>같은 것으로 룰, 컨텐트 핸들러 엘리먼트의 자식 엘리먼트가 될 있습니다. 프라퍼티 엘리먼트는 속성을 갖지 않으며, 자식 엘리먼트들의 이름(name)이 키(key)가 되고, 자식 엘리먼트의 텍스트(text)가 값(value)가 됩니다. 자식 엘리먼트의 갯수는 무제한입니다.
            <Properties>
                <Url>http://feeds.engadget.com/weblogsinc/engadget</Url>
                <SelectTitle>/rss/channel/title</SelectTitle>
            </Properties>
위의 경우는, "Url"이라는 키에 "http://feeds.engadget.com/weblogsinc/engadget" 값을 저장합니다. "SelectTitle"이라는 키에 "/rss/channel/title" 값을 가집니다. 프라퍼티 엘리먼트의 상위 엘리먼트가 컨텐트 핸들러라면 컨텐트 핸들러가 이 값들을 사용하게 됩니다.


사이트 엘리먼트(Site element)
사이트 엘리먼트는 엘리먼트의 자식 엘리먼트로 하나만 존재합니다. 사이트 목록에 표시하는 용도와 클리핑 엔진의 인코딩 방식을 알려줍니다.
    <Site Title="Engadget" Url="http://engadget.com/" Encoding="utf-8"/>
사이트 엘리먼트의 속성들
  • 제목(Title): 목록에 표시할 사이트의 제목
  • 웹 주소(Url): 사이트 URL. 참고용으로 엔진이 접속하지는 않습니다.
  • 인코딩(Encoding): 해당 사이트의 컨텐트의 인코딩 문자열입니다. 한국 사이트는 보통 "euc-kr" 이나, 간혹 "utf-8" 인 경우도 있습니다. 정확히 알려면 해당 사이트의 소스 보기를 해서 charset값을 확인해 보십시오.


태스크 엘리먼트(Task element)
룰 엘리먼트의 자식 엘리먼트이며, 갯수는 무제한입니다. 보통 2개를 사용합니다. 하나는 컨텐트를 긁어와서 처리하는 용도로, 다른 하나는 처리한 컨텐트를 파일로 저장하는 용도로 사용합니다. 정의한 순서대로 실행됩니다.
    <Task Id="Grab" RootContentHandlerId="Listed">
...
    </Task>
    <Task Id="Output" RootContentHandlerId="Listed">
...
    </Task>
태스크 엘리먼트의 속성들
  • 아이디(Id): 태스크간 구분을 위해 고유한 아이디를 부여합니다.
  • 최상위 컨텐트 핸들러 아이디(RootContentHandlerId): 태스크내에서 가장 먼저 실행할 컨텐트 핸들러의 아이디를 지정합니다.


컨텐트 핸들러 엘리먼트(ContentHandler element)
태스크 엘리먼트의 자식 엘리먼트이며, 갯수는 무제한 입니다. 태스크에서 최상위 컨텐트 핸들러로 정의한 컨텐트 핸들러가 가장 먼저 실행되고, 이 컨텐트 핸들러가 실행을 마치면 자식 컨텐트 핸들러가 실행됩니다. 형태에 따라 실행되는 방법이 달라집니다. 주로 자식 컨텐트를 만들어 내는 역할을 합니다. 자식 컨텐트를 만들어낸 후에는 본 컨텐트에 대해 컨텐트 필터를 실행합니다.
        <ContentHandler Id="Listed" ChildContentHandlerId="Article" Type="XML">
컨텐트 핸들러의 속성
  • 아이디(Id): 컨텐트 핸들러의 구분을 위해 고유한 아이디를 부여합니다. 하나의 태스크 내에서만 고유하게 하면 됩니다.
  • 자식 컨텐트 핸들러 아이디(ChildContentHandlerId): 다음에 실행할 컨텐트 핸들러 아이디를 지정합니다. 속성을 입력하지 않거나 값을 비워놓으면 이 컨텐트 핸들러가 해당 태스크내에서 가장 마지막으로 실행되는 것을 의미합니다.
  • 형태(Type): 형태에 따라 다른 처리를 합니다. 입력가능한 값으로는 아래와 같습니다.
    • "ItemList": 자식 컨텐트의 URL을 열거된 아이템을 이용해서 만들고, 그 URL에 있는 컨텐트를 가져오게 합니다.
    • "NumberRange": 자식 컨텐트의 URL을 일련의 숫자를 이용해서 만들고, 그 URL에 있는 컨텐트를 가져오게 합니다.
    • "XML": 컨텐트가 "XML"형태인 경우, 엘리먼트를 선택해서 자식 컨텐트를 만든다.
    • "Regex": 정규식(Regular Expression)을 이용해서 컨텐트에서 자식 컨텐트의 URL을 뽑아내고, URL에 있는 컨텐트를 가져오게 합니다.
    • "Normal": 자식 컨텐트가 없는 경우


컨텐트 핸들러들

"XML" 컨텐트 핸들러

본 포스트를 읽기 전에 펌즈 룰 파일의 구조에 대한 글을 먼저 읽으시기 바랍니다.

"XML" 컨텐트 핸들러는 컨텐트의 내용이 RSS, Atom과 같은 XML로 된 형태일 때 사용한다. 이 컨텐트의 자식 컨텐트는 XPATH 문법을 사용해서 찾아낸다.

만약, http://www.mysite.com/xml의 컨텐트 내용이 다음과 같다면,
<?xml version="1.0" encoding="utf-8"?>
<MyXML>
    <Title>제목</Title>
    <Items>
        <Item>
           <Title>아이템1</Title>
           <Link>http://www.mysite.com/1</Link>
           <Description>내용1</Description>
       </Item>
       <Item>
           <Title>아이템2</Title>
           <Link>http://www.mysite.com/2</Link>
           <Description>내용2</Description>
       </Item>
   </Items>
 </MyXML>

컨텐트 핸들러는 다음과 같이 정의한다.
        <ContentHandler Id="Listed" ChildContentHandlerId="Article" Type="XML">
            <Properties>
                <Url>http://www.mysite.com/xml</Url>
                <SelectTitle>/MyXML/Title</SelectTitle>
                <SelectItems>/MyXML/Items/Item</SelectItems>
                <SelectItemTitle>Title</SelectItemTitle>
                <SelectItemLink>Link</SelectItemLink>
                <SelectItemDescription>Description</SelectItemDescription>
            </Properties>
        </ContentHandler>

"XML" 컨텐트 핸들러의 프라퍼티
  • Url: XML 컨텐트의 URL
  • SelectTitle: XPATH 형식의 질의이며, 컨텐트의 제목을 선택하는 질의다.
  • SelectItems: XPATH 형식의 질의이며, 자식 컨텐트에 해당하는 엘리먼트를 선택하는 질의다.
  • SelectItemTitle: XPATH 형식의 질의이며,자식 컨텐트의 제목을 선택하는 질의다.
  • SelectItemLink: XPATH 형식의 질의이며,자식 컨텐트의 URL을 선택하는 질의다.
  • SelectItemDescription: XPATH 형식의 질의이며,자식 컨텐트의 내용을 선택하는 질의다.


XPATH 질의 문법은 아래의 주소를 참고하기 바랍니다.



"Crop" 컨텐트 필터

본 포스트를 읽기 전에 펌즈 룰 파일의 구조에 대한 글을 먼저 읽으시기 바랍니다.

컨텐트 중에서 시작 태그부터 종료 태그안의 내용만을 남기고 싶을 때 사용합니다.

만약, 긁어온 웹 컨텐트가 아래와 같고,
<body>
<div>
뉴스는 어쩌구 저쩌구...
</div>
</body>

아래와 같이 "Crop" 컨텐트 필터를 정의한다면,
                <Crop StartTag="&lt;div&gt;" EndTag="&lt;/div&gt;" IncludeTags="False" />

다음과 같은 결과를 갖게 된다.
뉴스는 어쩌구 저쩌구...

"Crop" 컨텐트 필터의 속성들
  • 시작 태그(StartTag): 시작이 될 문자열. 문자열은 반드시 XML용으로 인코딩되어야 합니다. String conversion을 사용하시면 간단히 됩니다.
  • 종료 태그(EndTag): 종료가 될 문자열. 문자열은 반드시 XML용으로 인코딩되어야 합니다.
  • 시작 종료 태그 포함 여부(IncludeTags): "True"이면 포함하고, "False"이면 포함하지 않는다.
  • 에러 발생시 지나칠 지 여부(SkipOnError): "True"이면, 시작/종료 태그가 없어서 에러나는 경우에도 클리핑을 중단하지 않고, 진행합니다. 만약 "False"이면서 시작/종료 태그가 없어서 에러가 나면 해당 사이트의 클리핑은 중단되고, 다음 사이트로 넘어갑니다.

속성의 값을 입력시 주의할 점은 <, >등의 문자열은 XML에서 쓸 수 있또록 &lt;, &gt; 형태로 변경해야 한다. 변경하는 방법은 Coder’s Toolbox를 이용하면 편리하게 할 수 있다.

"NumberRange" 컨텐트 핸들러

본 포스트를 읽기 전에 펌즈 룰 파일의 구조에 대한 글을 먼저 읽으시기 바랍니다.

편의상 존대맛을 생략합니다.

"NumberRange" 컨텐트 핸들러는 일련의 숫자의 범위를 이용해서 자식 컨텐트의 URL을 만든다. 보통 여러 페이지로 구성된 사이트의 페이지 번호에 사용된다.
예를 들어, 아래와 같이 클리핑할 자식 사이트가 있다고 할 때, 주소의 문자열을 비교해 보면 "1", "2", "3"만 다르고 앞부분은 동일하다. 여기서 1부터 3까지의 범위를 가진 숫자를 사용하면 된다.

http://www.mysite.com/page/1
http://www.mysite.com/page/2
http://www.mysite.com/page/3

위의 내용에 대한 룰 문법은 다음과 같다.

        <ContentHandler Id="Paged" ChildContentHandlerId="Listed" Type="NumberRange">       
            <Properties>
                <UrlFormat>http://www.mysite.com/page/${PageNumber}</UrlFormat>
                <StartNumber>1</StartNumber>
                <EndNumber>3</EndNumber>
                <NumberTo>PageNumber</NumberTo>
            </Properties>
        </ContentHandler>
"NumberRange" 컨텐트 핸들러의 프라퍼티(Properties)
  • NumberTo: 숫자를 어떤 변수로 할지. 위에서는 "PageNumber"가 된다.
  • UrlFormat: Url 형식. 여기에 숫자변수를 적용한다. 위에서는 ${PageNumber}부분이 숫자로 교체된다. 범위는 시작번호부터 끝번호까지 된다.
  • StartNumber: 시작 번호
  • EndNumber: 끝 번호

2008년 10월 12일 일요일

"ItemList" 컨텐트 핸들러

본 포스트를 읽기 전에 펌즈 룰 파일의 구조에 대한 글을 먼저 읽으시기 바랍니다.

"ItemList" 컨텐트 핸들러는 아이템을 이용해서 자식 컨텐트의 URL을 만든다. 주로 분류가 여럿인 경우에 사용된다.
예를 들어, 아래와 같이 클리핑할 자식 사이트가 있다고 할 때, 주소의 문자열을 비교해 보면 "A", "B"만 다르고 앞부분은 동일하다. 여기서 "A", "B"를 아이템이라고 본다.

http://www.mysite.com/category/A
http://www.mysite.com/category/B

따라서, 룰 파일에는 다음과 같이 작성한다.

        <ContentHandler Id="Categorized" ChildContentHandlerId="Paged" Type="ItemList">       
            <Properties>
                <UrlFormat>http://www.mysite.com/category/${CategoryId}</UrlFormat>
                <ItemCount>2</ItemCount>
                <Item.1>A</Item.1>
                <Item.1.Title>First Item</Item.1.Title>
                <Item.2>B</Item.2>
                <Item.2.Title>Second Item</Item.2.Title>
                <ItemTo>CategoryId</ItemTo>
            </Properties>
        </ContentHandler>

"ItemList" 컨텐트 핸들러의 프라퍼티(Properties)
  • ItemTo: Item을 어떤 변수로 할지. 위에서는 "CategoryId"가 된다.
  • UrlFormat: Url 형식. 여기에 Item 변수를 적용한다. 위에서는 ${CategoryId}부분이 아이템의 값으로 교체된다.
  • Item.n: Item의 값
  • Item.n.Title: Item의 제목. 자식 컨텐트의 제목이 된다.

2008년 10월 9일 목요일

새 피드(RSS, ATOM) 추가하기

  1. 툴바에서 추가 > 피드 추가 를 선택
  2. 피드 추가 창에서 URL 부분을 입력합니다.
  3. 추가 버튼 클릭
  4. 저장 버튼 클릭 (주의할 점은 룰 파일이 설치된 곳에 저장해야 합니다.)
  5. 목록의 툴바에 있는 "다시 읽어 오기" 버튼 클릭 (룰 파일 편집기의 툴바 버튼이 아닙니다.)

펌즈(PUMz)의 동작 원리

펌즈에서 클리핑(Clipping)을 시작하면, 엔진(Engine)은 룰(Rule)에 정의된 태스크(Task)를 차례대로 실행합니다. 태스크에는 여러개의 컨텐트 핸들러(Content Handler)가 있고, 그 중 최상위 컨텐트 핸들러가 먼저 실행됩니다. 컨텐트 핸들러가 실행되면 웹 사이트를 읽어 오기도 하고, 읽어온 웹 사이트에서 연결된 자식 웹 사이트를 찾아내기도 합니다. 이를 선처리라고 하면, 후처리는 컨텐트 필터(Content Filter)를 통해서 읽어온 컨텐트에서 필요한 부분을 추리거나 이미지 파일 등을 다시 읽어오는 역할을 하기도 합니다. 컨텐트 필터 중엔 컨텐트를 파일로 저장하는 역할을 하기도 합니다.

용어가 난해하시면 용어에 대한 포스트를 읽어 보시기 바랍니다.

펌즈(PUMz)에서 사용하는 용어

  • 펌즈(PUMz): 웹 클리핑 엔진(Engine). 실행 객체
  • 펌즈.뉴스(PUMz.News): 주로 뉴스 컨텐트를 클리핑하기 위한 엔진
  • 컨텐트(Content): 웹 사이트를 구성하는 HTML, 이미지 파일 등
  • 클리핑(Clipping): 컨텐트 중 일부만을 솎아내는 작업
  • 룰(Rule): 클리핑을 하는 규칙
  • 태스크(Task): 룰에 정의된 작업 단위. 정의된 순서대로 실행됨.
  • 컨텐트 핸들러(Content Handler): 태스크내에 있으며, 컨텐트를 생성하거나 처리하는 객체
  • 최상위 컨텐트 핸들러(Root Content Handler): 태스크내에서 가장 먼저 실행이 되는 컨텐트 핸들러
  • 자식 컨텐트 핸들러(Child Content Handler): 해당 컨텐트 핸들러가 실행된 후에 실행이 될 컨텐트 핸들러
  • 컨텐트 필터(Content Filter): 컨텐트 핸들러내에 있으며, 컨텐트 핸들러가 실행된 후, 컨텐트에 대한 처리를 하는 객체. 정의된 순서대로 처리함.

2008년 10월 8일 수요일

Online String Conversion (URL, XML, etc.)

Coder’s Toolbox

유용하네요.

PUMz.News 사용법

0.2.6.0을 기준으로 설명드립니다.

PUMz.News를 사용하시려면 반드시 프로그램과 룰 파일이 필요합니다.
다운로드는 블로그의 링크를 참고하세요.

클리핑하기
  1. 시작 > PUMz.New > PUMz.News 클릭으로 프로그램을 실행
  2. 왼쪽의 사이트리스트에서 원하는 사이트 선택
  3. "클리핑 시작" 버튼 클릭
  4. 클리핑이 완료되면, "뉴스 읽기" 버튼을 클릭해서 확인

결과물 저장 경로 변경하기
  1. 툴바에서 "설정"버튼 클릭
  2. 설정 창에서 "결과 저장 경로" 옆의 "선택..." 버튼을 클릭
  3. 원하는 경로 선택 후 "확인" 클릭
  4. 설정 창의 "확인" 클릭

다른 부분에 대한 사용법도 참고하세요.

PUMz.News 0.2.6.0 릴리즈합니다.

이번 릴리즈에 크게 바뀐 부분은...
  • RSS 2.0, ATOM 0.1 피드를 지원합니다. (RSS, ATOM의 버전이 다르면 안 될 수도 있습니다.
  • 룰 파일을 추가/삭제/편집할 수 있습니다.
  • 룰 파일(구 스크립트파일)을 편집할 수 있는 편집기를 제공합니다. (아직은 UI없이 단순 텍스트 편집기입니다.)
  • 한글화를 하였습니다. (다른 언어를 지원할 필요가 있다고 생각되시면 의견주세요.)
설치시 주의하실 점은 기존 버전의 프로그램과 룰 파일(구 스크립트파일)을 모두 지우시고, 새로 설치하시기 바랍니다.

다운로드: 프로그램 다운로드, 룰 파일 다운로드

아래는 스크린샷입니다.

메인 화면입니다.

RSS 피드 추가하는 창입니다.

설정 창입니다.


2008년 10월 7일 화요일

스크립트(Script)라는 용어대신 룰(Rule)이라는 용어를 사용하겠습니다.

pumz 파일내에도 룰(Rule)이라고 했는데, 버릇처럼 스크립트(Script)라는 말을 썼네요.
스크립트라하면 왠지 혼자서 뭔가 실행을 해야 될 거 같은데, pumz 파일은 어떻게 실행할지 룰(Rule)을 정의해놓은 것이라 룰로 바꿨습니다.

*.pumz 파일은 앞으로 룰 파일이라 부르겠습니다.

참고하세요.

2008년 10월 5일 일요일

0.2.5.5에서 버그가 2개 발견되었네요.

다음 릴리즈엔 수정이 될텐데요.
지금 불편하신 분들은 다음과 같이 수정해보세요.

현재 매일경제, 네이버뉴스가 간혹 안 될 수도 있습니다. (이유는 아직 모르겠구요.)

해결 방법은 mk-3d.pumz, navernews-4d.pumz 파일을 열어서, "<Crop" 문자를 찾으신 다음, <Crop ... SkipOnError="True"/> 와 같이 끝에 SkipOnError="True"를 추가해주세요.

그리고, 클리핑 완료 후, "Key not found: RepeatEnabled" 에러메시지 나오는 경우, 설정(Settings) 버튼 클릭 하신 후, 저장하시면 됩니다.

2008년 9월 29일 월요일

PUMz.News 0.2.5.5 릴리즈


바뀐 점은...
  • 반복 설정이 아닌 경우, 클리핑이 종료되었는데도 시작 버튼이 비활성화되는 문제를 해결했습니다.

다운로드는 이곳에서 하시면 됩니다.

2008년 9월 22일 월요일

PUMz.News 0.2.5.4 릴리즈


첫 릴리즈입니다.

다운로드는 이곳에서 하시면 됩니다.

릴리즈 노트
  • 웹 클리핑 엔진
  • 반복 실행이 됩니다. (분단위로 설정가능)
  • 클리핑 상황을 풍선 도움말로 표시해줍니다.
  • 결과가 저장될 폴더를 설정할 수 있습니다.

알려진 문제
  • 클리핑하는 동안 UI가 멈춥니다. (개선을 할 예정입니다.)

주의사항!


  • MobSync와 같이 사용하시면 더욱 좋습니다.

2008년 8월 25일 월요일

웹 클리핑 툴 및 모바일용 웹 서비스

웹 클리핑 툴


웹 스크랩핑 툴 및 서비스


기타 웹 클리핑 관련 툴
  • iSilo: 모바일 기기에서 문서를 보기 위한 툴
  • iSiloX: 각종 문서를 iSilo용 파일로 변환해주는 툴
  • MobSync: PC와 WindowsCE 기기간의 데이터 싱크


웹 클리핑 서비스

모바일용 웹 서비스


OZ용 웹 페이지


이 포스트는 계속 업데이트할 예정입니다.

펌즈와 저작권

저작권 관련해서는 아래와 같이 나누어서 정리합니다. 사용하시기 전에 꼭 읽어보시고 동의하시면 사용하십시오.

  1. PUMz 프로그램 바이너리(*.exe, *.dll) 및 소스(*.cs, *.sln, *.csproj)에 대한 저작권
    => 오픈소스(Open source)이며, CCL(저작자표시-비영리-동일조건변경허락 2.0 대한민국)을 따릅니다.

  2. PUMz 프로그램용 스크립트(*.pumz, *.bpumz, *.st)에 대한 저작권
    => 스크립트를 만든 사람에게 있습니다. 만든 사람이 저작권을 정의하시면 됩니다. 기본적으로 제가 배포하는 스크립트는 CCL(저작자표시-비영리-동일조건변경허락 2.0 대한민국)을 따릅니다.

  3. PUMz 프로그램을 통해서 만들어진 웹 컨텐츠에 대한 저작권
    => 해당 웹 사이트가 가지고 있습니다. 따라서, 만들어진 컨텐츠를 재배포하거나 공유하는 것은 저작권에 위배될 가능성이 있으므로 해당 웹 사이트와 협의하시기 바랍니다. 사용자가 저작권을 위배한 경우에 대해서는 제가 책임을 지지 않습니다.

펌즈(PUMz)란?

PUMz란 PDA같은 모바일기기에서 볼 수 있도록 웹 페이지의 부피를 줄여주는 웹 클리핑 엔진의 일종입니다. PUMz 2.0이 나오기 이전에는 아래와 같은 것들이 있었습니다.

<PUMz 히스토리>
 프로젝트명
 (*는 종료)
 기반 언어
 UI 제공
 룰, 스크립트, 템플릿 파일
 최신 버전
 지원하는 OS
 * Scraper Java Console
 .scr 1.43 Windows, *nix
 * Pumware Delphi
(Pascal)
 Windows
 .pum 1.5 alpha
 Windows
 * pumpy (PUMz 1.0)
 Java Java
Swing
 .pum 1.0 pre alpha
 Windows, *nix
 PUMz 2.0
 C# (.NET 2.0)
 Windows
 .pumz (XML)
 .st (Template)

 0.2.5.x
 Windows

PUMz 블로그: http://pumz.textcube.com/
PUMz 개발자용 사이트: http://sourceforge.net/projects/pumz