devon 2011-o-4-textcube 2.0과 codeball 프레임웍
TRANSCRIPT
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
태터툴즈 프로젝트“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. 직접 페이지 만들고 테스트하기
해보세요!매우 쉽습니다!
들어주셔서 감사합니다!