SlideShare a Scribd company logo
1 of 80
Download to read offline
TEXTCUBE 2.0과
코드를 몰라도 되는
codeball 프레임웍
                                신정규
                         포스텍 물리학과
    Tatter Network Foundation / Needlworks
신정규

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

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

                 그리고
  TNF (Tatter Network Foundation) 로서
웹을 쌓기 위한 벽돌 만들기를 하고 있습니다.
Textcube.org

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

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

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

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

•   키워드 로그 / 지역 로그 / 댓글 알림 / 모바일 폰 및 이메일 블
    로깅 / 팟캐스팅 / RSS 리더 / 마이크로 블로깅 기능
블로그
키워드 로그와 연동된 태그
지역 로그와 마이크로 블로깅
피처폰 블로깅
여러 보기
스마트 디바이스 지원
확장 플러그인 (Twitter)
위젯 / 오픈소셜 지원
플러그인 및 위젯
XFN
블로그 / 사용자에 따른 다국어 지원
패널 스킨
모바일 디바이스용 관리 패널
Objectives
Objectives
                                  TNF / Needlworks*

       TNF : Tatter Network Foundation
             “To keep the diversity of web”
Objectives
                                  TNF / Needlworks*

        TNF : Tatter Network Foundation
             “To keep the diversity of web”
 • Warn the enterprises to treat web as their own
Objectives
                                  TNF / Needlworks*

        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
Objectives
                                  TNF / Needlworks*

        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
Objectives
                                  TNF / Needlworks*

        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
Developing server sponsored by




Resource server sponsored by




Deploying server sponsored by



  Main / Antispam server by
TNF / Needlworks

                        Developing server sponsored by


12 Core Developers
                        Resource server sponsored by
~20 Reporters
~10 i18n Supporters
                        Deploying server sponsored by
~45 Code Contributors

                          Main / Antispam server by
TNF / Needlworks




Needlworks
TNF / Needlworks




Need | Works
TNF / Needlworks




Need | Works
TNF 활동을 위한 코어 그룹
TNF / Needlworks




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


활동
• Textcube.org 및 다양한 프로젝트 개발
• 더 나은 세상을 위한 프로젝트들을 기술적인 방
 법으로 지원

• 데이터 및 소통 교환을 위한 표준 제안 ( TTXML,
 cFeed)
http://dev.textcube.org
http://www.needlworks.org
http://antispam.textcube.org
http://antispam.textcube.org
http://www.opentutorials.org
http://www.opentutorials.org
Project Tattertools


                태터툴즈 프로젝트
                “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)
역사

   태터툴즈 시작                          개인 프로젝트
                        Apr. 2004



         TNC                         회사 설립
(Tatter and Company)    Sep. 2005


     Tattertools
      GPLized           Mar. 2006

         TNF                        커뮤니티 결성
 (Tatter and Friends)   Jun. 2006
회사 기반               커뮤니티 기반


    Tistory.com
        런칭
                          Nov. 2006        Tattertools 1.1
 (collaborating TNC
  and Daum Corp.)                          Need l works
                          Apr. 2007
                                              결성
                          Aug. 2007        Textcube 1.5


     Daum의                Feb. 2008        Textcube 1.6
Tistory.com 인수                             Textcube 1.7
                          Jun. 2008
Google의 TNC
                          Oct. 2008
    인수
 Textcube.com             Oct. 2009
     런칭
Nov. 2009    Textcube 1.8
글로벌 서비스        June. 2010
 병합 시작
                            A2 (안티스팸 프
               Sep. 2010
                            로그램/서비스)
                               개발 시작
Textcube.com
               Jan. 2011
서비스 중단
               Feb. 2011       FAS 런칭



               Dec. 2011     Textcube 1.9
목표
   ‘Blog’ + ‘Media’ + ‘Community’
       0.9          1.X                 2.X
From blog to media and community with ‘Very unique way.’
목표
   ‘Blog’ + ‘Media’ + ‘Community’
       0.9          1.X                 2.X
From blog to media and community with ‘Very unique way.’
목표
   ‘Blog’ + ‘Media’ + ‘Community’
       0.9          1.X                 2.X
From blog to media and community with ‘Very unique way.’
텍스트큐브 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
텍스트큐브 2


    새로 작성된 소스 코드
    현재 알파 단계 (for 2 years!)
    대부분의 기능들은 이미 1.8/1.9 트리 에 반영

•   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
Data Layer
Lower                                                              Higher

MySQL        DBAdapter             DB          _createTable()
                                                _dropTable()
                                                _dumpTable()
PostgreSQL   DBAdapter                  setField(id, fieldname, value)
                                           getField(id, fieldname)
                         DBModel           findAll(id, [condition])
                                                 create(args)
Cubrid       DBAdapter                            delete(id)
                                               update(id, args)
                                                     save()
ORACLE       DBAdapter                              help()




NTFS/FAT     FSAdapter             FS        _createFile()
                                          _createDirectory()
                                             _removeFile()
                                          _removeDirectory()
EXT3         FSAdapter                        create(args)

                         FSModel              delete(path)
                                              update(args)
                                                 save()
HFS          FSAdapter                           help()

                                              getFileList()
                                           getDirectoryList()
Cache Layer
Lower                                                            Higher


    Memory        Query             CACHE
                                              load(id)
   Memcache                                   save(id)
                                            remove(id)
                  Static                      purge()
        SQLite                           setProperty(args)
                                         getProperty(args)
                           ICache              help()
        Flatfile
                  Skin                         __gc()

                                              content
        IModel                         Property : mode, expire



         File     Code
Codeball Framework
Codeball Framework

다양한 Needlworks 프로젝트의 기반이 되는
            Framework
  NAF (Needlworks Application Framework) 2 기반

        FAS (Frypan Anti-spam Service)
텍스트큐브 2 는 codeball의 일부를 이용하
고 있으며, codeball 위에서도 돌아갑니다
Codeball Framework

다양한 Needlworks 프로젝트의 기반이 되는
            Framework
  NAF (Needlworks Application Framework) 2 기반

        FAS (Frypan Anti-spam Service)
텍스트큐브 2 는 codeball의 일부를 이용하
고 있으며, codeball 위에서도 돌아갑니다
디렉토리 구조

/bin     Running codes including nwsh
/boot    Start-up module / codes
/dev     Device / storage encapsulation
/etc     Settings / start-up module definitions
/home    Apps / user directory
/lib     Libraries
/media   Media files / storage used by apps
/usr     State-specific codes / libraries
/var     Variable contents
예제: “Hello world” 웹앱 만들기

1. 어플리케이션 설정

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

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

2. 특정 웹주소에 앱 연결하기
> 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
예제: “Hello world” 웹앱 만들기

3. 테스트


  http://localhost/helloworld



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



What is ‘static page?’
First app written on codeball
Makes simple HTML pages
Easy content writting (TXT format with
Markdown syntax)
예제 : staticpage 앱으로 웹페이지 만들기

1. staticpage 앱 설정
> cd home
> mkdir testpage
> cd testpage
> vi index.php

 <?php
 // Add shortcut of your default program here.
 require_once(ROOT.'/bin/staticpage.php');
 ?>
예제 : staticpage 앱으로 웹페이지 만들기

2. 특정 주소에 앱 연결하기
> 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
예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기
Staticpage app requires

pages/contents
        Actual content written in Markdown syntax
staticpage.ini
                                         Settings
template.html
                                   HTML Template
예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기
   template.html
   <html>
   <head>
   </head>
   <body>
   	

 [##_content_##]
   </body>
   </html>
예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기
   staticpage.ini
   [global]
   template = /home/testpage/
   template.html
   pagepath = /home/testpage/pages
   contenttype = html5
예제 : staticpage 앱으로 웹페이지 만들기

3. 컨텐츠 만들기

   Path corresponds to replacer
   Filename corresponds to URL
   pages/content/default.txt
    * This is default page.
예제 : staticpage 앱으로 웹페이지 만들기
   pages/content/test.txt
    * This is test page.
        http://www.example.com/test   Here!
   <html>
   <head>
   </head>
   <body>
   	

 [##_content_##]
   </body>
   </html>
예제 : staticpage 앱으로 웹페이지 만들기

4. 테스트
 http://localhost/testpage

   This is default page

 http://localhost/testpage/test

   This is test page
예제 : staticpage 앱으로 웹페이지 만들기


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



        해보세요!
       매우 쉽습니다!
들어주셔서 감사합니다!
Thank you, Dennis.
                 Dennis MacAlistair Ritchie (1941-2011)


    inureyes@gmail.com
      twitter @inureyes
  contact@needlworks.org

More Related Content

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

Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
YoungSu Son
 
솔루션데이 9 사례발표6-java기반국내공간dbms드라이버_망고시스템
솔루션데이 9 사례발표6-java기반국내공간dbms드라이버_망고시스템솔루션데이 9 사례발표6-java기반국내공간dbms드라이버_망고시스템
솔루션데이 9 사례발표6-java기반국내공간dbms드라이버_망고시스템
종언 최
 
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
Taekyu Lim
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
Jeongkyu Shin
 

Similar to Devon 2011-o-4-textcube 2.0과 codeball 프레임웍 (20)

ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼
ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼
ProQuest TDM(Text Data Mining) Studio_이용 매뉴얼
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218
 
[오픈소스컨설팅]레이어별오픈소스
[오픈소스컨설팅]레이어별오픈소스[오픈소스컨설팅]레이어별오픈소스
[오픈소스컨설팅]레이어별오픈소스
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 
[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
Oracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kimOracle linux8 solaris_new_features-suk kim
Oracle linux8 solaris_new_features-suk kim
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드
 
솔루션데이 9 사례발표6-java기반국내공간dbms드라이버_망고시스템
솔루션데이 9 사례발표6-java기반국내공간dbms드라이버_망고시스템솔루션데이 9 사례발표6-java기반국내공간dbms드라이버_망고시스템
솔루션데이 9 사례발표6-java기반국내공간dbms드라이버_망고시스템
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
 
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
[2022]Flutter_IO_Extended_Korea_멀티모듈을활용한플러터클린아키텍처_...
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
2-2. html5
2-2. html52-2. html5
2-2. html5
 
웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)
 

More from Daum DNA

Daum devday 13 [bap]
Daum devday 13  [bap]Daum devday 13  [bap]
Daum devday 13 [bap]
Daum DNA
 
Daum 키노트 | Devon 2012
Daum 키노트 | Devon 2012Daum 키노트 | Devon 2012
Daum 키노트 | Devon 2012
Daum DNA
 

More from Daum DNA (20)

Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)
Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)
Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)
 
Daum OAuth 2.0
Daum OAuth 2.0Daum OAuth 2.0
Daum OAuth 2.0
 
Daum 음성인식 API (김한샘)
Daum 음성인식 API (김한샘)Daum 음성인식 API (김한샘)
Daum 음성인식 API (김한샘)
 
Daum 검색/지도 API (이정주)
Daum 검색/지도 API (이정주)Daum 검색/지도 API (이정주)
Daum 검색/지도 API (이정주)
 
오픈 API 활용방법(Daum 사례 중심, 윤석찬)
오픈 API 활용방법(Daum 사례 중심, 윤석찬)오픈 API 활용방법(Daum 사례 중심, 윤석찬)
오픈 API 활용방법(Daum 사례 중심, 윤석찬)
 
Daum 티스토리 API (천정환)
Daum 티스토리 API (천정환)Daum 티스토리 API (천정환)
Daum 티스토리 API (천정환)
 
Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)
 
FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표
 
웹접근성과 장애인 차별 금지법 - 장성민
웹접근성과 장애인 차별 금지법 - 장성민웹접근성과 장애인 차별 금지법 - 장성민
웹접근성과 장애인 차별 금지법 - 장성민
 
반응형 웹 디자인은 만능인가? - 신현석
반응형 웹 디자인은 만능인가? - 신현석반응형 웹 디자인은 만능인가? - 신현석
반응형 웹 디자인은 만능인가? - 신현석
 
Daum devday 13 [bap]
Daum devday 13  [bap]Daum devday 13  [bap]
Daum devday 13 [bap]
 
Daum DevDay 13-힐링이 필요해
Daum DevDay 13-힐링이 필요해Daum DevDay 13-힐링이 필요해
Daum DevDay 13-힐링이 필요해
 
Daum DevDay 13 - 마음의 소리
Daum DevDay 13 - 마음의 소리Daum DevDay 13 - 마음의 소리
Daum DevDay 13 - 마음의 소리
 
Daum DevDay 13 - OpenBrace
Daum DevDay 13 - OpenBraceDaum DevDay 13 - OpenBrace
Daum DevDay 13 - OpenBrace
 
Daum DevDay 13 - Ogangjang
Daum DevDay 13 - OgangjangDaum DevDay 13 - Ogangjang
Daum DevDay 13 - Ogangjang
 
Daum DevDay 13 - Mook
Daum DevDay 13 - MookDaum DevDay 13 - Mook
Daum DevDay 13 - Mook
 
Daum DevDay 13 - Moonlight
Daum DevDay 13 - MoonlightDaum DevDay 13 - Moonlight
Daum DevDay 13 - Moonlight
 
Daum DevDay 13 - In-N-Out
Daum DevDay 13 - In-N-OutDaum DevDay 13 - In-N-Out
Daum DevDay 13 - In-N-Out
 
Daum DevDay 13 - i-DF
Daum DevDay 13 - i-DFDaum DevDay 13 - i-DF
Daum DevDay 13 - i-DF
 
Daum 키노트 | Devon 2012
Daum 키노트 | Devon 2012Daum 키노트 | Devon 2012
Daum 키노트 | Devon 2012
 

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

  • 1. TEXTCUBE 2.0과 코드를 몰라도 되는 codeball 프레임웍 신정규 포스텍 물리학과 Tatter Network Foundation / Needlworks
  • 2. 신정규 비선형 및 복잡계 연구실 포스텍 물리학과 “복잡계 시스템에서의 의견 형성 동역학” 연구 “웹에서의 커뮤니티 생성/소멸 과정 및 수명” 과 “네트워크 기반의 스패머 추적”에 관심 그리고 TNF (Tatter Network Foundation) 로서 웹을 쌓기 위한 벽돌 만들기를 하고 있습니다.
  • 3.
  • 4. Textcube.org 잘 알려진 출판 플랫폼 개인 웹로그 부터 블로그 서비스 까지 운영 가능 커뮤니티 개발 오픈소스 소프트웨어 • PHP / Apache ⋅ Nginx ⋅IIS / MySQL⋅PostgreSQL⋅ Cubrid⋅ SQLite • 유연한 스킨 / 플러그인 아키텍처 • RDF / BlogAPI / OpenAPI / Microformats / XFN / FOAF / geolocation (if browser supports) 지원 • 키워드 로그 / 지역 로그 / 댓글 알림 / 모바일 폰 및 이메일 블 로깅 / 팟캐스팅 / RSS 리더 / 마이크로 블로깅 기능
  • 13.
  • 15. XFN
  • 16. 블로그 / 사용자에 따른 다국어 지원
  • 20. Objectives TNF / Needlworks* TNF : Tatter Network Foundation “To keep the diversity of web”
  • 21. Objectives TNF / Needlworks* TNF : Tatter Network Foundation “To keep the diversity of web” • Warn the enterprises to treat web as their own
  • 22. Objectives TNF / Needlworks* 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
  • 23. Objectives TNF / Needlworks* 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
  • 24. Objectives TNF / Needlworks* 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
  • 25. Developing server sponsored by Resource server sponsored by Deploying server sponsored by Main / Antispam server by
  • 26. TNF / Needlworks Developing server sponsored by 12 Core Developers Resource server sponsored by ~20 Reporters ~10 i18n Supporters Deploying server sponsored by ~45 Code Contributors Main / Antispam server by
  • 29. TNF / Needlworks Need | Works TNF 활동을 위한 코어 그룹
  • 30. TNF / Needlworks Need | Works TNF 활동을 위한 코어 그룹 http://www.needlworks.org
  • 31.
  • 32. TNF / Needlworks 활동 • Textcube.org 및 다양한 프로젝트 개발 • 더 나은 세상을 위한 프로젝트들을 기술적인 방 법으로 지원 • 데이터 및 소통 교환을 위한 표준 제안 ( TTXML, cFeed)
  • 39.
  • 40. Project Tattertools 태터툴즈 프로젝트 “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)
  • 41. 역사 태터툴즈 시작 개인 프로젝트 Apr. 2004 TNC 회사 설립 (Tatter and Company) Sep. 2005 Tattertools GPLized Mar. 2006 TNF 커뮤니티 결성 (Tatter and Friends) Jun. 2006
  • 42. 회사 기반 커뮤니티 기반 Tistory.com 런칭 Nov. 2006 Tattertools 1.1 (collaborating TNC and Daum Corp.) Need l works Apr. 2007 결성 Aug. 2007 Textcube 1.5 Daum의 Feb. 2008 Textcube 1.6 Tistory.com 인수 Textcube 1.7 Jun. 2008 Google의 TNC Oct. 2008 인수 Textcube.com Oct. 2009 런칭
  • 43. Nov. 2009 Textcube 1.8 글로벌 서비스 June. 2010 병합 시작 A2 (안티스팸 프 Sep. 2010 로그램/서비스) 개발 시작 Textcube.com Jan. 2011 서비스 중단 Feb. 2011 FAS 런칭 Dec. 2011 Textcube 1.9
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52. 목표 ‘Blog’ + ‘Media’ + ‘Community’ 0.9 1.X 2.X From blog to media and community with ‘Very unique way.’
  • 53. 목표 ‘Blog’ + ‘Media’ + ‘Community’ 0.9 1.X 2.X From blog to media and community with ‘Very unique way.’
  • 54. 목표 ‘Blog’ + ‘Media’ + ‘Community’ 0.9 1.X 2.X From blog to media and community with ‘Very unique way.’
  • 55. 텍스트큐브 2 & Codeball 프레임웍
  • 56.
  • 57. 텍스트큐브 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
  • 58.
  • 59. 텍스트큐브 2 새로 작성된 소스 코드 현재 알파 단계 (for 2 years!) 대부분의 기능들은 이미 1.8/1.9 트리 에 반영 • 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
  • 60. Data Layer Lower Higher MySQL DBAdapter DB _createTable() _dropTable() _dumpTable() PostgreSQL DBAdapter setField(id, fieldname, value) getField(id, fieldname) DBModel findAll(id, [condition]) create(args) Cubrid DBAdapter delete(id) update(id, args) save() ORACLE DBAdapter help() NTFS/FAT FSAdapter FS _createFile() _createDirectory() _removeFile() _removeDirectory() EXT3 FSAdapter create(args) FSModel delete(path) update(args) save() HFS FSAdapter help() getFileList() getDirectoryList()
  • 61. Cache Layer Lower Higher Memory Query CACHE load(id) Memcache save(id) remove(id) Static purge() SQLite setProperty(args) getProperty(args) ICache help() Flatfile Skin __gc() content IModel Property : mode, expire File Code
  • 63. Codeball Framework 다양한 Needlworks 프로젝트의 기반이 되는 Framework NAF (Needlworks Application Framework) 2 기반 FAS (Frypan Anti-spam Service) 텍스트큐브 2 는 codeball의 일부를 이용하 고 있으며, codeball 위에서도 돌아갑니다
  • 64. Codeball Framework 다양한 Needlworks 프로젝트의 기반이 되는 Framework NAF (Needlworks Application Framework) 2 기반 FAS (Frypan Anti-spam Service) 텍스트큐브 2 는 codeball의 일부를 이용하 고 있으며, codeball 위에서도 돌아갑니다
  • 65. 디렉토리 구조 /bin Running codes including nwsh /boot Start-up module / codes /dev Device / storage encapsulation /etc Settings / start-up module definitions /home Apps / user directory /lib Libraries /media Media files / storage used by apps /usr State-specific codes / libraries /var Variable contents
  • 66. 예제: “Hello world” 웹앱 만들기 1. 어플리케이션 설정 > cd home > mkdir helloworld > cd helloworld > vi index.php “Hello World!”
  • 67. 예제: “Hello world” 웹앱 만들기 2. 특정 웹주소에 앱 연결하기 > 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
  • 68. 예제: “Hello world” 웹앱 만들기 3. 테스트 http://localhost/helloworld Hello World!
  • 69. 예제 : staticpage 앱으로 웹페이지 만들기 What is ‘static page?’ First app written on codeball Makes simple HTML pages Easy content writting (TXT format with Markdown syntax)
  • 70. 예제 : staticpage 앱으로 웹페이지 만들기 1. staticpage 앱 설정 > cd home > mkdir testpage > cd testpage > vi index.php <?php // Add shortcut of your default program here. require_once(ROOT.'/bin/staticpage.php'); ?>
  • 71. 예제 : staticpage 앱으로 웹페이지 만들기 2. 특정 주소에 앱 연결하기 > 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
  • 72. 예제 : staticpage 앱으로 웹페이지 만들기 3. 컨텐츠 만들기 Staticpage app requires pages/contents Actual content written in Markdown syntax staticpage.ini Settings template.html HTML Template
  • 73. 예제 : staticpage 앱으로 웹페이지 만들기 3. 컨텐츠 만들기 template.html <html> <head> </head> <body> [##_content_##] </body> </html>
  • 74. 예제 : staticpage 앱으로 웹페이지 만들기 3. 컨텐츠 만들기 staticpage.ini [global] template = /home/testpage/ template.html pagepath = /home/testpage/pages contenttype = html5
  • 75. 예제 : staticpage 앱으로 웹페이지 만들기 3. 컨텐츠 만들기 Path corresponds to replacer Filename corresponds to URL pages/content/default.txt * This is default page.
  • 76. 예제 : staticpage 앱으로 웹페이지 만들기 pages/content/test.txt * This is test page. http://www.example.com/test Here! <html> <head> </head> <body> [##_content_##] </body> </html>
  • 77. 예제 : staticpage 앱으로 웹페이지 만들기 4. 테스트 http://localhost/testpage This is default page http://localhost/testpage/test This is test page
  • 78. 예제 : staticpage 앱으로 웹페이지 만들기 5. 직접 페이지 만들고 테스트하기 해보세요! 매우 쉽습니다!
  • 80. Thank you, Dennis. Dennis MacAlistair Ritchie (1941-2011) inureyes@gmail.com twitter @inureyes contact@needlworks.org