SlideShare a Scribd company logo
1 of 32
Download to read offline
OpenSource TypePad Mobile
                   Hiroshi Sakai
                  Six Apart K.K.
                    id:ziguzagu
TypePad
What's TypePad ?

●   ブログホスティングサービス
●   Since 2003
●   ASP / ライセンス
●   Movable Type のコードを元に開発
    –   それぞれ別の方向に進化したので、似たような部分
        はあるにせよ基本的に別物
What becomes OpenSource?


            PC     携帯
   管理
   閲覧               ココ
TypeCast
Overview

●   ウェブサービスに Mobile 用の閲覧機能を作る
    ためのアプリケーション
●   フレームワークとしてMovable Type Open
    Source を利用
●   各携帯キャリアごとに最適化されたHTML
●   データソースとして Atom API 経由で取得し
    た Atom を利用
Functions

●   ブログ記事一覧 (Atom Feed)
●   ブログ個別記事 (Atom Entry)
●   コメント一覧(Atom Comment)
●   端末別に画像の変換、リサイズ、圧縮
●   MobileLinkDiscover
Generic Processing

●   Atom / Atom API
●   共通のHTML生成
●   各キャリア向けHTML変換
Atom / Atom API
Atom as DataSource

●   XML::Atom::Client
    –   今のところ API の URL は MT にマッチしたもの
●   取得した Atom から、MT::Blog /
    MT::Entry / MT::Comment オブジェクトも
    どきを生成
●   Atom Server 側では UserAgent を判別して
    meta / link を追加したりも
Generate
Common HTML
How to generate
●   MTOS のテンプレートエンジンを利用
    –   MTタグを使ったテンプレート
●   コンテンツ中の a / img タグのURL変換
    –   TypeCast 経由で表示するための URL に変換
●   コンテンツ(HTML)の分割
    –   複数ページに分割してサイズ制限をクリア
●   TypePad 絵文字記法のフィルタ
    –   本来ここでやるべきではないので一旦実装外し
Filtering HTML
       for
     Mobile
Filtering Basics

●   HTMLタグ書き換え
    –   DOCTYPE, accesskey, istyle, etc...
●   CSSの適用
    –   外部 CSS を style 要素化、style 属性化
●   文字コード変換
    –   Encode::JP::Mobile 任せ
    –   utf-8 / ShiftJIS どちらかで
For DoCoMo

●   文字コード
    –   FOMA: utf-8
    –   Mova: ShiftJIS
●   DOCTYPE, istyle 置換
●   外部CSSを各要素のstyle属性として挿入
●   style に font-size プロパティを持つ要素のテ
    キストノードは、span に入れる
For KDDI

●   文字コード: ShiftJIS
●   DOCTYPE 置換
●   外部CSSをstyle要素として置き換え
For Softbank

●   文字コード
    –   3G以降: utf-8
    –   3G以前: ShiftJIS
●   DOCTYPE, accesskey, istyle 置き換え
●   外部CSSはそのまま
For Others

●   Willcom
    –   DoCoMo(FOMA)と同じ
●   EMOBILE
    –   まだやってない
    –   DoCoMo(FOMA)と同じでよさげ?
Go to CPAN
HTML::Split

●   HTML を指定文字数で分割
●   HTML タグを壊さない
    –   HTMLタグ途中で分割したりしない
●   改ページしても DOM ツリーを壊さない
●   A 要素は終了タグまでをまとめてだす
    –   テキストノード、子ノードがページ分割文字数を超
        えない限りは途中で分割しない
HTML::Split Example
my $html = <<HTML;
<div class=quot;pkgquot;>
<h1>HTML::Split</h1>
<p>Splitting HTML by number of
characters.</p>
</div>
HTML;

my @pages = HTML::Split->split(
    html => $html, length => 50,
);
HTML::Split Example

Part1:
<div class=quot;pkgquot;>
<h1>HTML::Split</h1>
<p>Splittin</p></div>

Part2:
<div class=quot;pkgquot;>
<p>g HTML by number of characters.</p></
div>
HTML::MobileFilter (仮)

●   Mobile 用 HTML を生成するための Filter
●   HTML::Parser を継承した Parser
    –   結構ごりごりがんばった感じのコード
●   でも、まだupできない...
    –   実装はすでにあるもののテストコードが皆無...
●   Coming Soon!!
Open Emoticon
We love Emoticons !!

●   TypePad の絵文字画像を GPL2 / CC で公開
Performance Tuning
Where is bottleneck ?

●   Atom サーバーに負荷がかかる
    –   Atom をキャッシュ(in memcached)して Atom
        API へのアクセス数を減らす
●   HTML生成時に負荷がかかる
    –   共通HTMLをキャッシュ(in memcached)して、
        HTML生成にかかる処理時間を半分以下に
The Goal
   of
TypeCast
We heading...

●   Atom API を持つサービスを広く Mobile 対
    応できるように
    –   Atom API へのアクセス、Atom からのオブジェ
        クト生成を抽象化
    –   More configurable
●   Open な Mobile 開発を
How to get the TypeCast ?

●   Project in Google Code
    –   http://code.google.com/p/typecastmobile/
●   Google Group
    –   http://groups.google.co.jp/group/typecastmobile
We are hiring !!
http://www.sixapart.jp/jobs/
Thanks
      &
Enjoy Mobile !!

More Related Content

What's hot

Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Yusuke Kawasaki
 
Heap overflow
Heap overflowHeap overflow
Heap overflow@x0mg
 
英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5Yusuke Kawasaki
 
Hackers = Security Experts
Hackers = Security ExpertsHackers = Security Experts
Hackers = Security ExpertsKana Shinoda
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3088
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3088俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3088
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3088Azerbaijan Laws
 
【12-C-5】 自律型移動ロボットのソフトウェア技術
【12-C-5】 自律型移動ロボットのソフトウェア技術【12-C-5】 自律型移動ロボットのソフトウェア技術
【12-C-5】 自律型移動ロボットのソフトウェア技術devsumi2009
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3714
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3714俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3714
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3714Azerbaijan Laws
 
数字から読む信号機の傾向と精度2020
数字から読む信号機の傾向と精度2020数字から読む信号機の傾向と精度2020
数字から読む信号機の傾向と精度2020Jun Sasaki
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 2804
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 2804俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 2804
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 2804Azerbaijan Laws
 
PHP Conference 09 Japan Microsoft
PHP Conference 09 Japan MicrosoftPHP Conference 09 Japan Microsoft
PHP Conference 09 Japan Microsofthirookun
 
優雅與摩登的使用docker container和資料庫建立部落格.
優雅與摩登的使用docker container和資料庫建立部落格.優雅與摩登的使用docker container和資料庫建立部落格.
優雅與摩登的使用docker container和資料庫建立部落格.ChihChiaWang
 
【12-D-2】 WPF アプリケーション開発
【12-D-2】 WPF アプリケーション開発【12-D-2】 WPF アプリケーション開発
【12-D-2】 WPF アプリケーション開発devsumi2009
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705Azerbaijan Laws
 
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3Транслируем.бел
 
Linux Commands
Linux CommandsLinux Commands
Linux Commandsiwata
 
Visual Studio Team System 2010
Visual Studio Team System 2010Visual Studio Team System 2010
Visual Studio Team System 2010SQALab
 
當時間的座標落在格林威治的左邊
當時間的座標落在格林威治的左邊當時間的座標落在格林威治的左邊
當時間的座標落在格林威治的左邊Vincent
 

What's hot (20)

PHP超入門@LL温泉
PHP超入門@LL温泉PHP超入門@LL温泉
PHP超入門@LL温泉
 
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
Cloud era -『クラウド時代』マッシュアップ技術による地方からの世界発信
 
Heap overflow
Heap overflowHeap overflow
Heap overflow
 
英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5英語ブログのスヽメ - 1000スピーカープロジェクト#5
英語ブログのスヽメ - 1000スピーカープロジェクト#5
 
Hackers = Security Experts
Hackers = Security ExpertsHackers = Security Experts
Hackers = Security Experts
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3088
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3088俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3088
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3088
 
【12-C-5】 自律型移動ロボットのソフトウェア技術
【12-C-5】 自律型移動ロボットのソフトウェア技術【12-C-5】 自律型移動ロボットのソフトウェア技術
【12-C-5】 自律型移動ロボットのソフトウェア技術
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3714
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3714俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3714
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3714
 
Bynet2.3 Microsoft Silverlight3 using for business
Bynet2.3 Microsoft Silverlight3 using for businessBynet2.3 Microsoft Silverlight3 using for business
Bynet2.3 Microsoft Silverlight3 using for business
 
数字から読む信号機の傾向と精度2020
数字から読む信号機の傾向と精度2020数字から読む信号機の傾向と精度2020
数字から読む信号機の傾向と精度2020
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 2804
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 2804俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 2804
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 2804
 
PHP Conference 09 Japan Microsoft
PHP Conference 09 Japan MicrosoftPHP Conference 09 Japan Microsoft
PHP Conference 09 Japan Microsoft
 
優雅與摩登的使用docker container和資料庫建立部落格.
優雅與摩登的使用docker container和資料庫建立部落格.優雅與摩登的使用docker container和資料庫建立部落格.
優雅與摩登的使用docker container和資料庫建立部落格.
 
【12-D-2】 WPF アプリケーション開発
【12-D-2】 WPF アプリケーション開発【12-D-2】 WPF アプリケーション開発
【12-D-2】 WPF アプリケーション開発
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3705
 
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
 
Ribbit
RibbitRibbit
Ribbit
 
Linux Commands
Linux CommandsLinux Commands
Linux Commands
 
Visual Studio Team System 2010
Visual Studio Team System 2010Visual Studio Team System 2010
Visual Studio Team System 2010
 
當時間的座標落在格林威治的左邊
當時間的座標落在格林威治的左邊當時間的座標落在格林威治的左邊
當時間的座標落在格林威治的左邊
 

Viewers also liked

080930 E Sangathan Web Press Clippings Book
080930 E Sangathan Web Press Clippings Book080930 E Sangathan Web Press Clippings Book
080930 E Sangathan Web Press Clippings Bookesangathan
 
MTDDC 2013 LT | Hello, my little giant
MTDDC 2013 LT | Hello, my little giantMTDDC 2013 LT | Hello, my little giant
MTDDC 2013 LT | Hello, my little gianttaiju higashi
 
Evolution of API With Blogging
Evolution of API With BloggingEvolution of API With Blogging
Evolution of API With BloggingTakatsugu Shigeta
 
Hacking Movable Type Open Source
Hacking Movable Type Open SourceHacking Movable Type Open Source
Hacking Movable Type Open SourceFumiaki Yoshimatsu
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

Viewers also liked (8)

080930 E Sangathan Web Press Clippings Book
080930 E Sangathan Web Press Clippings Book080930 E Sangathan Web Press Clippings Book
080930 E Sangathan Web Press Clippings Book
 
MTDDC 2013 LT | Hello, my little giant
MTDDC 2013 LT | Hello, my little giantMTDDC 2013 LT | Hello, my little giant
MTDDC 2013 LT | Hello, my little giant
 
Changing Template Engine
Changing Template EngineChanging Template Engine
Changing Template Engine
 
Evolution of API With Blogging
Evolution of API With BloggingEvolution of API With Blogging
Evolution of API With Blogging
 
Hacking Movable Type Open Source
Hacking Movable Type Open SourceHacking Movable Type Open Source
Hacking Movable Type Open Source
 
Ninestep
NinestepNinestep
Ninestep
 
Perlbal Tutorial
Perlbal TutorialPerlbal Tutorial
Perlbal Tutorial
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 

Similar to Open Source Type Pad Mobile

技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTracterada
 
文献紹介:Semantic-based information retrieval in support of concept design.
文献紹介:Semantic-based information retrieval in support of concept design.文献紹介:Semantic-based information retrieval in support of concept design.
文献紹介:Semantic-based information retrieval in support of concept design.Shin Sano
 
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法devsumi2009
 
Cloud Computing - クラウドコンピューティング(会津産学懇話会)
Cloud Computing - クラウドコンピューティング(会津産学懇話会)Cloud Computing - クラウドコンピューティング(会津産学懇話会)
Cloud Computing - クラウドコンピューティング(会津産学懇話会)Yusuke Kawasaki
 
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」devsumi2009
 
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーションYuya Yamaki
 
20090522 Candycane
20090522 Candycane20090522 Candycane
20090522 CandycaneYusuke Ando
 
Sc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク DomaSc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク DomaToshihiro Nakamura
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来Hiromasa Oka
 
Webken 03: Project Design for Optimaizing User Experience
Webken 03: Project Design for Optimaizing User ExperienceWebken 03: Project Design for Optimaizing User Experience
Webken 03: Project Design for Optimaizing User ExperienceNobuya Sato
 
20090418 イケテルRails勉強会 第1部Rails編
20090418 イケテルRails勉強会 第1部Rails編20090418 イケテルRails勉強会 第1部Rails編
20090418 イケテルRails勉強会 第1部Rails編mochiko AsTech
 
P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SDJesse Vincent
 
20090313 Cakephpstudy
20090313 Cakephpstudy20090313 Cakephpstudy
20090313 CakephpstudyYusuke Ando
 
Where20 2009report
Where20 2009reportWhere20 2009report
Where20 2009reportToru Mori
 
Ubuntu Firefox オススメ・アドオン
Ubuntu Firefox オススメ・アドオンUbuntu Firefox オススメ・アドオン
Ubuntu Firefox オススメ・アドオンubon
 
20090822 Arg Cafe.Final
20090822 Arg Cafe.Final20090822 Arg Cafe.Final
20090822 Arg Cafe.Finalkulibrarians
 
090309seminar talk about Cloud Computing
090309seminar talk about Cloud Computing090309seminar talk about Cloud Computing
090309seminar talk about Cloud ComputingKohei Nishikawa
 

Similar to Open Source Type Pad Mobile (20)

技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac技術トレンディセミナー フレームワークとしてのTrac
技術トレンディセミナー フレームワークとしてのTrac
 
文献紹介:Semantic-based information retrieval in support of concept design.
文献紹介:Semantic-based information retrieval in support of concept design.文献紹介:Semantic-based information retrieval in support of concept design.
文献紹介:Semantic-based information retrieval in support of concept design.
 
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
【12-D-6】 Silverlight によるハイグレードなLOB/BI実現のためのコンポーネント活用法
 
Cloud Computing - クラウドコンピューティング(会津産学懇話会)
Cloud Computing - クラウドコンピューティング(会津産学懇話会)Cloud Computing - クラウドコンピューティング(会津産学懇話会)
Cloud Computing - クラウドコンピューティング(会津産学懇話会)
 
Apache Tapestry
Apache TapestryApache Tapestry
Apache Tapestry
 
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
【13-C-4】 「もう業務はとまらない!オフライン機能を使った業務アプリケーションの実例と最新 Curl 情報」
 
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
【13 C 2】デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション
 
20090522 Candycane
20090522 Candycane20090522 Candycane
20090522 Candycane
 
Sc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク DomaSc2009autumn 次世代Daoフレームワーク Doma
Sc2009autumn 次世代Daoフレームワーク Doma
 
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
ZOZOTOWNのマルチクラウドへの挑戦と挫折、そして未来
 
Webken 03: Project Design for Optimaizing User Experience
Webken 03: Project Design for Optimaizing User ExperienceWebken 03: Project Design for Optimaizing User Experience
Webken 03: Project Design for Optimaizing User Experience
 
20090418 イケテルRails勉強会 第1部Rails編
20090418 イケテルRails勉強会 第1部Rails編20090418 イケテルRails勉強会 第1部Rails編
20090418 イケテルRails勉強会 第1部Rails編
 
20210119 OCIJP#14 オラクル大橋資料
20210119 OCIJP#14 オラクル大橋資料20210119 OCIJP#14 オラクル大橋資料
20210119 OCIJP#14 オラクル大橋資料
 
P2P Bug Tracking with SD
P2P Bug Tracking with SDP2P Bug Tracking with SD
P2P Bug Tracking with SD
 
20090313 Cakephpstudy
20090313 Cakephpstudy20090313 Cakephpstudy
20090313 Cakephpstudy
 
Where20 2009report
Where20 2009reportWhere20 2009report
Where20 2009report
 
Ubuntu Firefox オススメ・アドオン
Ubuntu Firefox オススメ・アドオンUbuntu Firefox オススメ・アドオン
Ubuntu Firefox オススメ・アドオン
 
20090822 Arg Cafe.Final
20090822 Arg Cafe.Final20090822 Arg Cafe.Final
20090822 Arg Cafe.Final
 
Green IT
Green ITGreen IT
Green IT
 
090309seminar talk about Cloud Computing
090309seminar talk about Cloud Computing090309seminar talk about Cloud Computing
090309seminar talk about Cloud Computing
 

Recently uploaded

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

Open Source Type Pad Mobile

  • 1. OpenSource TypePad Mobile Hiroshi Sakai Six Apart K.K. id:ziguzagu
  • 3. What's TypePad ? ● ブログホスティングサービス ● Since 2003 ● ASP / ライセンス ● Movable Type のコードを元に開発 – それぞれ別の方向に進化したので、似たような部分 はあるにせよ基本的に別物
  • 4. What becomes OpenSource? PC 携帯 管理 閲覧 ココ
  • 6. Overview ● ウェブサービスに Mobile 用の閲覧機能を作る ためのアプリケーション ● フレームワークとしてMovable Type Open Source を利用 ● 各携帯キャリアごとに最適化されたHTML ● データソースとして Atom API 経由で取得し た Atom を利用
  • 7. Functions ● ブログ記事一覧 (Atom Feed) ● ブログ個別記事 (Atom Entry) ● コメント一覧(Atom Comment) ● 端末別に画像の変換、リサイズ、圧縮 ● MobileLinkDiscover
  • 8. Generic Processing ● Atom / Atom API ● 共通のHTML生成 ● 各キャリア向けHTML変換
  • 10. Atom as DataSource ● XML::Atom::Client – 今のところ API の URL は MT にマッチしたもの ● 取得した Atom から、MT::Blog / MT::Entry / MT::Comment オブジェクトも どきを生成 ● Atom Server 側では UserAgent を判別して meta / link を追加したりも
  • 12. How to generate ● MTOS のテンプレートエンジンを利用 – MTタグを使ったテンプレート ● コンテンツ中の a / img タグのURL変換 – TypeCast 経由で表示するための URL に変換 ● コンテンツ(HTML)の分割 – 複数ページに分割してサイズ制限をクリア ● TypePad 絵文字記法のフィルタ – 本来ここでやるべきではないので一旦実装外し
  • 13. Filtering HTML for Mobile
  • 14. Filtering Basics ● HTMLタグ書き換え – DOCTYPE, accesskey, istyle, etc... ● CSSの適用 – 外部 CSS を style 要素化、style 属性化 ● 文字コード変換 – Encode::JP::Mobile 任せ – utf-8 / ShiftJIS どちらかで
  • 15. For DoCoMo ● 文字コード – FOMA: utf-8 – Mova: ShiftJIS ● DOCTYPE, istyle 置換 ● 外部CSSを各要素のstyle属性として挿入 ● style に font-size プロパティを持つ要素のテ キストノードは、span に入れる
  • 16. For KDDI ● 文字コード: ShiftJIS ● DOCTYPE 置換 ● 外部CSSをstyle要素として置き換え
  • 17. For Softbank ● 文字コード – 3G以降: utf-8 – 3G以前: ShiftJIS ● DOCTYPE, accesskey, istyle 置き換え ● 外部CSSはそのまま
  • 18. For Others ● Willcom – DoCoMo(FOMA)と同じ ● EMOBILE – まだやってない – DoCoMo(FOMA)と同じでよさげ?
  • 20. HTML::Split ● HTML を指定文字数で分割 ● HTML タグを壊さない – HTMLタグ途中で分割したりしない ● 改ページしても DOM ツリーを壊さない ● A 要素は終了タグまでをまとめてだす – テキストノード、子ノードがページ分割文字数を超 えない限りは途中で分割しない
  • 21. HTML::Split Example my $html = <<HTML; <div class=quot;pkgquot;> <h1>HTML::Split</h1> <p>Splitting HTML by number of characters.</p> </div> HTML; my @pages = HTML::Split->split( html => $html, length => 50, );
  • 23. HTML::MobileFilter (仮) ● Mobile 用 HTML を生成するための Filter ● HTML::Parser を継承した Parser – 結構ごりごりがんばった感じのコード ● でも、まだupできない... – 実装はすでにあるもののテストコードが皆無... ● Coming Soon!!
  • 25. We love Emoticons !! ● TypePad の絵文字画像を GPL2 / CC で公開
  • 27. Where is bottleneck ? ● Atom サーバーに負荷がかかる – Atom をキャッシュ(in memcached)して Atom API へのアクセス数を減らす ● HTML生成時に負荷がかかる – 共通HTMLをキャッシュ(in memcached)して、 HTML生成にかかる処理時間を半分以下に
  • 28. The Goal of TypeCast
  • 29. We heading... ● Atom API を持つサービスを広く Mobile 対 応できるように – Atom API へのアクセス、Atom からのオブジェ クト生成を抽象化 – More configurable ● Open な Mobile 開発を
  • 30. How to get the TypeCast ? ● Project in Google Code – http://code.google.com/p/typecastmobile/ ● Google Group – http://groups.google.co.jp/group/typecastmobile
  • 31. We are hiring !! http://www.sixapart.jp/jobs/
  • 32. Thanks & Enjoy Mobile !!