Devon 2011-o-4-textcube 2.0과 codeball 프레임웍

Preview:

Citation preview

TEXTCUBE 2.0과코드를 몰라도 되는 codeball 프레임웍

신정규포스텍 물리학과

Tatter Network Foundation / Needlworks

신정규

비선형 및 복잡계 연구실포스텍 물리학과

“복잡계 시스템에서의 의견 형성 동역학” 연구“웹에서의 커뮤니티 생성/소멸 과정 및 수명” 과 “네트워크 기반의 스패머 추적”에 관심

그리고TNF (Tatter Network Foundation) 로서

웹을 쌓기 위한 벽돌 만들기를 하고 있습니다.

• PHP / Apache ⋅ Nginx ⋅IIS / MySQL⋅PostgreSQL⋅ Cubrid⋅ SQLite

• 유연한 스킨 / 플러그인 아키텍처

• RDF / BlogAPI / OpenAPI / Microformats / XFN / FOAF / geolocation (if browser supports) 지원

• 키워드 로그 / 지역 로그 / 댓글 알림 / 모바일 폰 및 이메일 블로깅 / 팟캐스팅 / RSS 리더 / 마이크로 블로깅 기능

Textcube.org

잘 알려진 출판 플랫폼개인 웹로그 부터 블로그 서비스 까지 운영 가능커뮤니티 개발 오픈소스 소프트웨어

블로그

키워드 로그와 연동된 태그

지역 로그와 마이크로 블로깅

피처폰 블로깅

여러 보기

스마트 디바이스 지원

확장 플러그인 (Twitter)

위젯 / 오픈소셜 지원

플러그인 및 위젯

XFN

블로그 / 사용자에 따른 다국어 지원

패널 스킨

모바일 디바이스용 관리 패널

Objectives

TNF : Tatter Network Foundation

“To keep the diversity of web”

TNF / Needlworks*Objectives

TNF : Tatter Network Foundation

“To keep the diversity of web”

• Warn the enterprises to treat web as their own

TNF / Needlworks*Objectives

TNF : Tatter Network Foundation

“To keep the diversity of web”

• Warn the enterprises to treat web as their own

• Give the right of creations to creators on web

TNF / Needlworks*Objectives

TNF : Tatter Network Foundation

“To keep the diversity of web”

• Warn the enterprises to treat web as their own

• Give the right of creations to creators on web

• Pursue the communication with responsibility, without governmental restriction

TNF / Needlworks*Objectives

TNF : Tatter Network Foundation

“To keep the diversity of web”

• Warn the enterprises to treat web as their own

• Give the right of creations to creators on web

• Pursue the communication with responsibility, without governmental restriction

• Reduce the social expenditure from web monopoly

TNF / Needlworks*Objectives

Developing server sponsored by

Resource server sponsored by

Deploying server sponsored by

Main / Antispam server by

12 Core Developers

~20 Reporters

~10 i18n Supporters

~45 Code Contributors

TNF / Needlworks

Developing server sponsored by

Resource server sponsored by

Deploying server sponsored by

Main / Antispam server by

TNF / Needlworks

Needlworks

TNF / Needlworks

Need | Works

TNF / Needlworks

Need | WorksTNF 활동을 위한 코어 그룹

TNF / Needlworks

Need | WorksTNF 활동을 위한 코어 그룹 http://www.needlworks.org

활동• Textcube.org 및 다양한 프로젝트 개발

• 더 나은 세상을 위한 프로젝트들을 기술적인 방법으로 지원

• 데이터 및 소통 교환을 위한 표준 제안 ( TTXML, cFeed)

TNF / Needlworks

http://dev.textcube.org

http://www.needlworks.org

http://antispam.textcube.org

http://antispam.textcube.org

http://www.opentutorials.org

http://www.opentutorials.org

태터툴즈 프로젝트“Creations without walls”

프로그램 및 서비스간 데이터 호환성

• Textcube.org Publishing(+alpha) Program

• Tistory.com Daum blog service[1]

And many more!

[1] Currently, Tistory.com is ranked as top 1 blog service in Korea (by rankey.com)

Project Tattertools

역사

태터툴즈 시작

Tattertools GPLized

개인 프로젝트

회사 설립

TNF(Tatter and Friends)

커뮤니티 결성

TNC (Tatter and Company)

Apr. 2004

Sep. 2005

Jun. 2006

Mar. 2006

회사 기반

Tattertools 1.1

Textcube 1.5

Nov. 2006

Textcube 1.6

Textcube 1.7

Need l works 결성

Aug. 2007

Feb. 2008

Jun. 2008

Apr. 2007

Oct. 2008

Tistory.com런칭

(collaborating TNC and Daum Corp.)

Google의 TNC 인수

Oct. 2009

Daum의Tistory.com 인수

Textcube.com런칭

커뮤니티 기반

Textcube 1.9Dec. 2011

Textcube.com서비스 중단 Jan. 2011

Feb. 2011 FAS 런칭

Sep. 2010A2 (안티스팸 프로그램/서비스) 개발 시작

Textcube 1.8Nov. 2009

글로벌 서비스 병합 시작 June. 2010

목표‘Blog’ + ‘Media’ + ‘Community’

From blog to media and community with ‘Very unique way.’

0.9 1.X 2.X

목표‘Blog’ + ‘Media’ + ‘Community’

From blog to media and community with ‘Very unique way.’

0.9 1.X 2.X

목표‘Blog’ + ‘Media’ + ‘Community’

From blog to media and community with ‘Very unique way.’

0.9 1.X 2.X

텍스트큐브 2&

Codeball 프레임웍

텍스트큐브 1.8

개발자 문서https://docs.google.com/View?id=dgc24tzr_140c9wz6nc5

서버 관리자 / 서비스 운영자 가이드https://docs.google.com/View?id=dgc24tzr_137gr9xpdfb

플러그인 이전 가이드https://docs.google.com/View?id=dgc24tzr_136ckbg4ngn

• Integrates Textcube 1 functionalities (RDF / BlogAPI / OpenAPI / Microformats / XFN / FOAF / geolocation)

• Much more fluid structure + distributed processing

• Mobile-based / Peer-to-peer data storage / synchronization between blogs / SNS-adaptive sharing

텍스트큐브 2

새로 작성된 소스 코드현재 알파 단계 (for 2 years!)

대부분의 기능들은 이미 1.8/1.9 트리 에 반영

_createTable()_dropTable()_dumpTable()

setField(id, fieldname, value)getField(id, fieldname)findAll(id, [condition])

create(args)delete(id)

update(id, args)save()help()

Data Layer

Lower Higher

MySQL DBAdapter

PostgreSQL

Cubrid

ORACLE

DBAdapter

DBAdapter

DBAdapter

NTFS/FAT

EXT3

HFS

FSAdapter

FSAdapter

FSAdapter

DBModel

_createFile()_createDirectory()

_removeFile()_removeDirectory()

create(args)delete(path)update(args)

save()help()

getFileList()getDirectoryList()

FSModel

DB

FS

load(id)save(id)

remove(id)purge()

setProperty(args)getProperty(args)

help()

__gc()

contentProperty : mode, expire

Cache Layer

Lower Higher

Memory

Memcache

SQLite

Flatfile

IModel

Query

Static

Skin

Code

ICache

File

CACHE

Codeball Framework

Codeball Framework

다양한 Needlworks 프로젝트의 기반이 되는 Framework

FAS (Frypan Anti-spam Service)

NAF (Needlworks Application Framework) 2 기반

텍스트큐브 2 는 codeball의 일부를 이용하고 있으며, codeball 위에서도 돌아갑니다

Codeball Framework

다양한 Needlworks 프로젝트의 기반이 되는 Framework

FAS (Frypan Anti-spam Service)

NAF (Needlworks Application Framework) 2 기반

텍스트큐브 2 는 codeball의 일부를 이용하고 있으며, codeball 위에서도 돌아갑니다

디렉토리 구조

/bin/boot/dev/etc/home/lib/media/usr/var

Running codes including nwshStart-up module / codesDevice / storage encapsulationSettings / start-up module definitionsApps / user directoryLibrariesMedia files / storage used by appsState-specific codes / librariesVariable contents

예제: “Hello world” 웹앱 만들기

> cd home> mkdir helloworld> cd helloworld> vi index.php

“Hello World!”

1. 어플리케이션 설정

예제: “Hello world” 웹앱 만들기

> cd etc> vi urltab

# This file contains storage allocation configuration. # # Note : every term should divide with one empty character. # <URL address> <Mount point> <type> <options> / /home/default /helloworld /home/helloworld

2. 특정 웹주소에 앱 연결하기

예제: “Hello world” 웹앱 만들기

http://localhost/helloworld

3. 테스트

Hello World!

예제 : staticpage 앱으로 웹페이지 만들기

What is ‘static page?’

First app written on codeballMakes simple HTML pagesEasy content writting (TXT format with Markdown syntax)

예제 : staticpage 앱으로 웹페이지 만들기

> cd home> mkdir testpage> cd testpage> vi index.php

<?php// Add shortcut of your default program here.require_once(ROOT.'/bin/staticpage.php');?>

1. staticpage 앱 설정

예제 : staticpage 앱으로 웹페이지 만들기

> cd etc> vi urltab

# This file contains storage allocation configuration. # # Note : every term should divide with one empty character. # <URL address> <Mount point> <type> <options> / /home/default /helloworld /home/helloworld /testpage /home/testpage

2. 특정 주소에 앱 연결하기

예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기Staticpage app requires

pages/contentsActual content written in Markdown syntax

staticpage.iniSettings

template.htmlHTML Template

예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기

<html><head></head><body> [##_content_##]</body></html>

template.html

예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기

[global]template = /home/testpage/template.htmlpagepath = /home/testpage/pagescontenttype = html5

staticpage.ini

예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기

Path corresponds to replacer

Filename corresponds to URL

* This is default page.

pages/content/default.txt

예제 : staticpage 앱으로 웹페이지 만들기

<html><head></head><body> [##_content_##]</body></html>

http://www.example.com/test * This is test page.

pages/content/test.txt

Here!

예제 : staticpage 앱으로 웹페이지 만들기

http://localhost/testpage

4. 테스트

This is default page

http://localhost/testpage/test

This is test page

예제 : staticpage 앱으로 웹페이지 만들기

5. 직접 페이지 만들고 테스트하기

해보세요!매우 쉽습니다!

들어주셔서 감사합니다!

Thank you, Dennis.

inureyes@gmail.comtwitter @inureyes

contact@needlworks.org

Dennis MacAlistair Ritchie (1941-2011)