SlideShare a Scribd company logo
1 of 23
Download to read offline
新 ReVIEWパーサ
・
について
  ReVIEW開発者カンファレンス 2014/03/08
株式会社達人出版会
高橋征義
自己紹介
• 高橋征義 (@takahashim), ReVIEWコミッタ
• 古参Rubyist (1997年くらいから)
• ∼2010年 Web制作会社のプログラマ
• @kdmsnrの同僚
• 2010年∼ 電子書籍の制作と販売
(今日はこの話じゃなくて、実装の話)
本日のあらすじ
• パーサを書き換え中
• いろいろスッキリした(はず)
• わりと動いている(はず)
• そもそもの仕様を決めないとダメ
• すごく内部実装の技術的な話ですみません…
本発表の話題
• パーサ (Parser)
パーサとは

• 構文解析をするひと
• どこがブロックで、どこがインラインで…と
いうのを解析する

• ReVIEWではReVIEW::Compiler
• lib/review/compiler.rb
• …だけではなく、実はBuilderの中でも構文解析
しているのが問題だったり
== foo
XXXYYY
ZZZ
//list[foo1][foo2]{
AAA@<b>{BBB}CCC
DDD@<raw>{EEE{FFF}GGG}
IIIJJJ
//}
@<ruby>{KKK,LLL}
MMMNNN
== foo
Headline
XXXYYY
Paragraph
ZZZ
//list[foo1][foo2]{
BlockElement
AAA@<b>{BBB}CCC
DDD@<raw>{EEE{FFF}GGG}
IIIJJJ
//}
@<ruby>{KKK,LLL}
Paragraph
LLLMMM
== foo
XXXYYY
ZZZ
//list[foo1][foo2]{
AAA@<b>{BBB}CCC
DDD@<raw>{EEE{FFF}GGG}
IIIJJJ
//}
@<ruby>{KKK,LLL}
LLLMMM
※細かい要素に分割するだけ
→各要素をどう扱うかは
 パーサではなくBuilderが
 担当する

== foo
XXXYYY
ZZZ
//list[foo1][foo2]{
AAA@<b>{BBB}CCC
DDD@<raw>{EEE{FFF}GGG}
IIIJJJ
//}
@<ruby>{KKK,LLL}
LLLMMM
なぜ新パーサなのか
• 現状のパーサがいろいろつらい
• 拡張しづらい
• 「ブロックのネストをさせたい」etc
• 修正しづらい
• Builder/インラインごとにエンバグetc
• パーサから仕様がリバースできない
• (他に仕様があればいいんですが…)
• ReVIEW.jsみたいなのを作るにもつらそうな予感
つらい点
R::Compiler
<div class="emlist-code">
+
//emlist{
R::Builder <pre class="emlist">def foo(a)
def foo(a)
if a&gt;1
☆escape
if a>1
bar(a)
bar(a)
end
end
end</pre>
end
</div>
//}
つらい点
☆インラインを入れたい→escapeした文字列の連結
//emlist{
def foo(a)

if @<b>{a>1}
bar(a)
end
end
//}

<div class="emlist-code">
<pre class="emlist">def foo(a)
if <b>a&gt;1</b>
bar(a)
end
end</pre>
</div>
つらい点
☆ソースハイライトもしたい→unescape??
//emlist{
def foo(a)

if a>1
bar(a)
end
end
//}

<div class="emlist-code">
<pre class="emlist">def foo(a)
if a&gt;1
bar(a)
end
end</pre>
</div>

???
現パーサの問題点
• 正規表現で頑張っている
• パーサがReVIEW::Compilerと
ReVIEW::BuilderとReVIEW::*Builderに分割さ
れている

• 各Builderでの解析方法が統一されていない
(ような気がする)
新パーサの方針
• 基本的には書き直し
• ad hocな書き方をせず、ちゃんとパーサを実

装する(既存パーサライブラリor自作パーサ)

• ネストは実現できるようにしたい
• APIはあまり非互換にしない(変えすぎるとい
ろいろつらい)

• ReVIEW文法の再定義(明確化)も狙いたい
新パーサの現状
• kpegブランチで開発中(Github Issues #235)
• それなりに動くが、完璧ではない
新パーサの特徴
• パーサジェネレータ(PEG)を使って書き直し
• 実装としてはkpegを採用
• Ruby 1.8∼2.1まで対応(してるといいな…)
• 外部gemへの依存なしで動く
• 現状はUTF-8のみだが、それ以外の文字コード
にも対応可能かも

• 現状のAPIに合わせている(kpegとしては不自
然かもしれないが、互換性は高いはず)
新パーサの実装
• lib/review/review.kpegで定義
• 生成されたパーサはlib/review/compiler.rb
になる(現状と同名のファイル)

• いったんAST(抽象構文木)を作成したあと、
それを元に各nodeに対する処理を呼び出す

• 処理内容は現状同様*Builderに書かれている
• *BuilderのAPIは一部非互換(inline_*)
== foo
XXXYYY
ZZZ
//list[foo1][foo2]{
AAA@<b>{BBB}CCC
DDD@<raw>{EEE{FFF}GGG}
IIIJJJ
//}
@<ruby>{KKK,LLL}
LLLMMM
root
Headline
level
2

Paragraph

Text

Text

Paragraph

Text
Text

InlineElement
foo

XXXYYY

ZZZ

name

contents
LLLMMM

ruby

Text
KKK

BlockElement

☆escapeは
ツリーを作った
後で行える

name
list

args
foo1

contents

Text
LLL

foo2

SinglelineContent

SinglelineContent

Text

InlineElement

Text

Text

AAA

BBB

CCC

DDD

SinglelineContent

Raw
EEE{FFF}GGG

Text
IIIJJJ
新パーサの課題

• パーサより文法が決まっていないのが課題
• 複雑なケースに対する処理がこれで正しいのか
どうかよく分からない

• //list[t1][@<b>{}] 
• highlightingとかの制御方法・具体的なルール
• インライン+ハイライトは死ぬ
• ReVIEWドキュメントの互換性は完璧ではない
(むしろ非互換にしたい)

• ReVIEW.jsとのマージ
リリーススケジュール
• 未定
• 今日の流れ次第で
• 2.0で?
• 1.xにはしない方が良さそう(互換性の問題
もあるし)
まとめ
• パーサを書き換え中
• いろいろスッキリした(はず)
• わりと動いている(はず)
• そもそもの仕様を決めないとダメ
• 良い機会なので整理したい

More Related Content

What's hot

Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成Kouji Matsui
 
SaCSS vol.56 こんなに素敵なBrackets!
SaCSS vol.56 こんなに素敵なBrackets!SaCSS vol.56 こんなに素敵なBrackets!
SaCSS vol.56 こんなに素敵なBrackets!Atsushi Handa
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門VirtualTech Japan Inc.
 
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot FrameworkKazumi IWANAGA
 
cocos2d ☓ OpenOffice
cocos2d ☓ OpenOfficecocos2d ☓ OpenOffice
cocos2d ☓ OpenOfficeKazunori Nanji
 
Blazor WebAssembly と Windows Forms でのロジック共有例
Blazor WebAssembly と Windows Forms でのロジック共有例Blazor WebAssembly と Windows Forms でのロジック共有例
Blazor WebAssembly と Windows Forms でのロジック共有例Koichi Ota
 
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressサブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressTakahiro YAMAGUCHI
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemoytanno
 
React+fluxを導入した話
React+fluxを導入した話React+fluxを導入した話
React+fluxを導入した話Yuki Ishikawa
 
Riot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tipsRiot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tipsKeisuke Imai
 
Riotでサーバレスにした話
Riotでサーバレスにした話Riotでサーバレスにした話
Riotでサーバレスにした話Hiroyuki Hara
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部Masahiro Wakame
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理Kouji Matsui
 
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点ota42y
 
ソフトウェア開発が好きだ
ソフトウェア開発が好きだソフトウェア開発が好きだ
ソフトウェア開発が好きだKoichi Ota
 
恐怖!シェルショッカー1号男
恐怖!シェルショッカー1号男恐怖!シェルショッカー1号男
恐怖!シェルショッカー1号男Tomoyuki Matsuura
 
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶおっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶdcubeio
 
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDKGoogle Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDKMasahiro Wakame
 

What's hot (19)

Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成
 
SaCSS vol.56 こんなに素敵なBrackets!
SaCSS vol.56 こんなに素敵なBrackets!SaCSS vol.56 こんなに素敵なBrackets!
SaCSS vol.56 こんなに素敵なBrackets!
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot Framework
 
cocos2d ☓ OpenOffice
cocos2d ☓ OpenOfficecocos2d ☓ OpenOffice
cocos2d ☓ OpenOffice
 
Blazor WebAssembly と Windows Forms でのロジック共有例
Blazor WebAssembly と Windows Forms でのロジック共有例Blazor WebAssembly と Windows Forms でのロジック共有例
Blazor WebAssembly と Windows Forms でのロジック共有例
 
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in expressサブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
サブドメイン前提のチーム機能開発で踏んだ
OAuthの罠の話 in express
 
Type scriptmemo
Type scriptmemoType scriptmemo
Type scriptmemo
 
React+fluxを導入した話
React+fluxを導入した話React+fluxを導入した話
React+fluxを導入した話
 
Riot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tipsRiot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tips
 
Riotでサーバレスにした話
Riotでサーバレスにした話Riotでサーバレスにした話
Riotでサーバレスにした話
 
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点Microservices Architecture の利点と欠点
Microservices Architecture の利点と欠点
 
ソフトウェア開発が好きだ
ソフトウェア開発が好きだソフトウェア開発が好きだ
ソフトウェア開発が好きだ
 
恐怖!シェルショッカー1号男
恐怖!シェルショッカー1号男恐怖!シェルショッカー1号男
恐怖!シェルショッカー1号男
 
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶおっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
 
RSpecしぐさ
RSpecしぐさRSpecしぐさ
RSpecしぐさ
 
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDKGoogle Glassでできること XE12版 最新開発情報 Mirror API & GDK
Google Glassでできること XE12版 最新開発情報 Mirror API & GDK
 

Similar to 新・ReVIEWパーサについて

作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)Garyuten
 
JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)VOYAGE GROUP
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイントKentaro Matsui
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEWMasahiro Wakame
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングkei takakuda
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜Katsuhiro Miura
 
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくするgitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくするStudy Group by SciencePark Corp.
 
hbstudy 74 Site Reliability Engineering
hbstudy 74 Site Reliability Engineeringhbstudy 74 Site Reliability Engineering
hbstudy 74 Site Reliability EngineeringRyuji Tamagawa
 
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】Masato Mori
 
Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方girigiribauer
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話Naoto Koshikawa
 
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜Koichi ITO
 
dots. 7/7 DSWBハンズオン資料
dots. 7/7 DSWBハンズオン資料dots. 7/7 DSWBハンズオン資料
dots. 7/7 DSWBハンズオン資料s. kaijima
 
What i learned from translation of the sre ryuji tamagawa
What i learned from translation of the sre ryuji tamagawaWhat i learned from translation of the sre ryuji tamagawa
What i learned from translation of the sre ryuji tamagawaRakuten Group, Inc.
 
heroku devcenter読書会 #1 by sendagaya.rb
heroku devcenter読書会 #1 by sendagaya.rbheroku devcenter読書会 #1 by sendagaya.rb
heroku devcenter読書会 #1 by sendagaya.rbNaoto Koshikawa
 
Works of site reliability engineer
Works of site reliability engineerWorks of site reliability engineer
Works of site reliability engineerShohei Kobayashi
 

Similar to 新・ReVIEWパーサについて (20)

作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
公開から4年間使ってきたbaserCMSをそろそろ本気でdisってみる(OSC2014福岡)
 
JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEW
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリング
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
 
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくするgitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
gitその2 rebaseとrebase -iを理解してgit-flowをやりやすくする
 
hbstudy 74 Site Reliability Engineering
hbstudy 74 Site Reliability Engineeringhbstudy 74 Site Reliability Engineering
hbstudy 74 Site Reliability Engineering
 
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
20190621_RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】
 
aozorahack hackathon #1
aozorahack hackathon #1aozorahack hackathon #1
aozorahack hackathon #1
 
Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話
 
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
 
dots. 7/7 DSWBハンズオン資料
dots. 7/7 DSWBハンズオン資料dots. 7/7 DSWBハンズオン資料
dots. 7/7 DSWBハンズオン資料
 
What i learned from translation of the sre ryuji tamagawa
What i learned from translation of the sre ryuji tamagawaWhat i learned from translation of the sre ryuji tamagawa
What i learned from translation of the sre ryuji tamagawa
 
heroku devcenter読書会 #1 by sendagaya.rb
heroku devcenter読書会 #1 by sendagaya.rbheroku devcenter読書会 #1 by sendagaya.rb
heroku devcenter読書会 #1 by sendagaya.rb
 
Works of site reliability engineer
Works of site reliability engineerWorks of site reliability engineer
Works of site reliability engineer
 
2015 07-04-ruby rails
2015 07-04-ruby rails2015 07-04-ruby rails
2015 07-04-ruby rails
 

More from masayoshi takahashi

青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けてmasayoshi takahashi
 
青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)masayoshi takahashi
 
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)masayoshi takahashi
 
オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金masayoshi takahashi
 
Re:VIEW新パーサ現状確認(2015年2月版)
Re:VIEW新パーサ現状確認(2015年2月版)Re:VIEW新パーサ現状確認(2015年2月版)
Re:VIEW新パーサ現状確認(2015年2月版)masayoshi takahashi
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門masayoshi takahashi
 
電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編masayoshi takahashi
 
The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.masayoshi takahashi
 
「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレート「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレートmasayoshi takahashi
 

More from masayoshi takahashi (20)

osc2019tokyospring
osc2019tokyospringosc2019tokyospring
osc2019tokyospring
 
Ruby25: Rubyの1/4世紀
Ruby25: Rubyの1/4世紀Ruby25: Rubyの1/4世紀
Ruby25: Rubyの1/4世紀
 
Code for 選挙とWikidata
Code for 選挙とWikidataCode for 選挙とWikidata
Code for 選挙とWikidata
 
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
青空文庫と式年遷宮アーキテクチャ: 青空文庫200周年に向けて
 
青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)青空文庫テキストフォーマットについて (aozorahack)
青空文庫テキストフォーマットについて (aozorahack)
 
Aozorahack20161106
Aozorahack20161106Aozorahack20161106
Aozorahack20161106
 
TdX#01 RubyKaigiの作り方
TdX#01 RubyKaigiの作り方TdX#01 RubyKaigiの作り方
TdX#01 RubyKaigiの作り方
 
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
aozorahackと青空文庫の現状とこれから (OSC 2016 Tokyo/Spring)
 
オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金オープンソースとプラットフォームとお金
オープンソースとプラットフォームとお金
 
Webと電子書籍の話
Webと電子書籍の話Webと電子書籍の話
Webと電子書籍の話
 
Re:VIEW新パーサ現状確認(2015年2月版)
Re:VIEW新パーサ現状確認(2015年2月版)Re:VIEW新パーサ現状確認(2015年2月版)
Re:VIEW新パーサ現状確認(2015年2月版)
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
How To Become A Rubyist
How To Become A RubyistHow To Become A Rubyist
How To Become A Rubyist
 
Markdownもはじめよう
MarkdownもはじめようMarkdownもはじめよう
Markdownもはじめよう
 
電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編電子出版はどこを 目指すのか・技術書編
電子出版はどこを 目指すのか・技術書編
 
The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.The History of Ruby; 20th Anniversary Ed.
The History of Ruby; 20th Anniversary Ed.
 
lldecade2012
lldecade2012lldecade2012
lldecade2012
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
mrubyのすすめ
mrubyのすすめmrubyのすすめ
mrubyのすすめ
 
「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレート「執筆のためのエレベータピッチ」のテンプレート
「執筆のためのエレベータピッチ」のテンプレート
 

Recently uploaded

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Recently uploaded (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

新・ReVIEWパーサについて