Shibuya.lisp#6にて「ClojureとEPUBで「普通のやつらの上を行く」方法」というタイトルでLightningTalkしてきました。
まずはプレゼン資料です。
ここ最近作っているEPUBツールの説明をして来ました。あとGoogle AppEngine for Javaにfeed2epubの機能を載せたのを実験中だったのでデモとして見せたかったんですが、時間切れ&エラー… ムー、不本意なオチをつけてしまった! (最後に発表してるひとです)
途中でDEMOとして見せたサイトはこれです。LTに間に合わせようと拙速に作ったので、近日中にいろいろ変えます。 一応、RSS2/ATOMフィードのURLを入れてボタンを押すとEPUBがダウンロードできるように作ったます(たまにエラーが出るけどね) http://epubninja.appspot.com 前半のTechTalksの先生方の話しはさすがでした。まさにShibuya.lispみたいな機会がないと知らなかったようなことを聞けてよかったです。難しくて分からないことも多かったですけど、「何が分からないのか」はそこはかとなく分かったような感じがしました。少なくともMOP(MetaObject Protocol)についてはまるっきり勘違いしてたのが自覚できて良かった。
Shibuya.lispは前回#5が初参加です。それまで技術系イベントにはほとんど参加したことはありません。だから前回でこのことを初めて実感しました。 「実際にコード書いている人、スゴイ人に会ってみるとパワーが湧いてくる」 それで前回参加したあとは「今度参加するときは、絶対見るだけじゃなくて何か面白いものを作って発表したい」と決心してました。なんかこういう場をせっかく用意してくれてるんだから参加しないともったいない!という気持ち。やる気はだいぶチャージされましたね〜。
私はプログラミングや技術自体も好きだけど、何か具体的なプロダクトを作りたいタイプです。 「Lispを使えば難しい問題も簡単に解けるんだ」という主張を良く読むけども、ならば「簡単な問題をさらに劇的に簡単にする」ためには使えないのかな。いわゆるプログラミングが出来ない「普通の人たち」が便利だと思えるものを作りたい、そのためにLispが利用できるんではないかと思って使ってます。 Lispで開発効率が上がるんなら、それでできた時間をより便利な何かのアイデアを考えるのに使えないでしょーかねー。
本番のLTでは時間切れになっちゃいましたが、その後の懇親会でリベンジ発表させてもらったのでいちおう言うべきことは言い切りました。 「普通の人」が使いやすいものをLispで作ろう。そんで草の根的にLispはスゴイという空気を作ってこう。仕事でLispを使いたいならお客さんにLispがスゴイって認識を持ってもらわないと無理だし、逆にお客さんがOKならばあと社内は何とかなりそうじゃない? まぁ、まずはコード書きましょう。
最後に。 もういい加減、自己紹介で無職というのも飽きました。仕事探しはじめます。
2010-11-28
2010-11-05
ePubcastローカル版の遊び方を説明します!
先日、ありえる勉強会でLT発表したときに触れたePubcastのローカルサーバ版がだいたい出来たので使い方を書いておきます。
このソフトウェアの目的は「ePubをPodcastで配信する実験を行う」なので、機能はおもちゃ程度です。とりあえずePubとPodcastでなにができるか手元で遊んでみたい人向けに説明します。以下ではMacBook+Google Chromeで説明してますが、Windows、他のブラウザでも基本的に同じです。
まずJarファイルをダウンロードします。0.0.11のやつです。
Downloads for deltam's ePubcast - GitHub
これを適当なフォルダに置き、同じフォルダに"static"という名前のフォルダを作ります。このstaticフォルダにePubを置くだけでPodcast配信が出来るようになります。
上述の準備が終わったらサーバを起動します。コンソールを立ち上げてJarを置いたフォルダに移動し、以下のように打ち込みます。2行目以降のようにログが表示されたら起動してます。
ブラウザでhttp://localhost:8080をアドレスバーに打ち込みます。
ブラウザ上ではstaticフォルダの中身をリストにして表示させてます。
[add iTunes]というリンクを押すと、以下のようなメッセージが出てくるので[アプリケーションの起動]を押してください。
これでiTunesのPodcastに自動追加されます。
ここですべてのePubをダウンロードさせて、iTunes「ブック」のページを見てみると、ダウンロードしたePubが追加されていることが分かると思います。
これでiPodTouch/iPhoneを同期させて、iBooksを開くと下のようにePubが追加されます。
これで読めます!
以下、ちょっと補足。
Q. 配信するePubがない
A. feed2epub-cljを使ってはどうでしょう。長文記事のブログを読むときなどにePubに変換できます。(ファイル名が日本語だとePubcastでダウンロードできなかったりするので適宜変えてください)
Q. ローカルだけじゃなくてインターネットで公開したい!
A. このePubcastをGoogle AppEngineに移植する作業を始めてます。しばしお待ちを!
【参考リンク】
[ポ] 電子書籍に繋がった - ...My cup of tea...
こちらの記事で始めてEPUBをPodcast配信できることを知りました。感謝。
アップル - iTunes - Podcast - Podcastを作成する
アップルの技術資料。EPUBは配信可能なファイル形式に含まれてないですが、きっちりiBooksにも追加できちゃいました。
deltam's ePubcast at master - GitHub
ソースコードも公開してます(Clojureですが)。1ファイルべた書きなのでそれなりに分かりやすいかと。
このソフトウェアの目的は「ePubをPodcastで配信する実験を行う」なので、機能はおもちゃ程度です。とりあえずePubとPodcastでなにができるか手元で遊んでみたい人向けに説明します。以下ではMacBook+Google Chromeで説明してますが、Windows、他のブラウザでも基本的に同じです。
まずJarファイルをダウンロードします。0.0.11のやつです。
Downloads for deltam's ePubcast - GitHub
これを適当なフォルダに置き、同じフォルダに"static"という名前のフォルダを作ります。このstaticフォルダにePubを置くだけでPodcast配信が出来るようになります。
上述の準備が終わったらサーバを起動します。コンソールを立ち上げてJarを置いたフォルダに移動し、以下のように打ち込みます。2行目以降のようにログが表示されたら起動してます。
$ java -jar epubcast-0.0.11-alpha-standalone.jar 2010-11-05 08:14:25.944::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 2010-11-05 08:14:25.960::INFO: jetty-6.1.x 2010-11-05 08:14:26.050::INFO: Started SocketConnector@0.0.0.0:8080
ブラウザでhttp://localhost:8080をアドレスバーに打ち込みます。
ブラウザ上ではstaticフォルダの中身をリストにして表示させてます。
[add iTunes]というリンクを押すと、以下のようなメッセージが出てくるので[アプリケーションの起動]を押してください。
これでiTunesのPodcastに自動追加されます。
ここですべてのePubをダウンロードさせて、iTunes「ブック」のページを見てみると、ダウンロードしたePubが追加されていることが分かると思います。
これでiPodTouch/iPhoneを同期させて、iBooksを開くと下のようにePubが追加されます。
これで読めます!
以下、ちょっと補足。
Q. 配信するePubがない
A. feed2epub-cljを使ってはどうでしょう。長文記事のブログを読むときなどにePubに変換できます。(ファイル名が日本語だとePubcastでダウンロードできなかったりするので適宜変えてください)
Q. ローカルだけじゃなくてインターネットで公開したい!
A. このePubcastをGoogle AppEngineに移植する作業を始めてます。しばしお待ちを!
【参考リンク】
[ポ] 電子書籍に繋がった - ...My cup of tea...
こちらの記事で始めてEPUBをPodcast配信できることを知りました。感謝。
アップル - iTunes - Podcast - Podcastを作成する
アップルの技術資料。EPUBは配信可能なファイル形式に含まれてないですが、きっちりiBooksにも追加できちゃいました。
deltam's ePubcast at master - GitHub
ソースコードも公開してます(Clojureですが)。1ファイルべた書きなのでそれなりに分かりやすいかと。
2010-10-31
「Lisp脳」勉強会でEPUB関連ツールのLT発表してきました #arielarea
”ありえるえりあ勉強会〜「Lisp脳」勉強会〜”でライトニングトーク(LT)してきました。5分ほどの発表時間内で、今までやってきたEPUB関連ツールとこれから作ろうとしているEPUB生成/配信システムの説明をしました。
まずはプレゼン資料です。
まずはプレゼン資料です。
ClojureとEPUBと俺
前々から「そろそろ自分のEPUBに関する考えをちゃんと説明しておかないといけないな」と考えていたので、ちょうどいい機会だと思って好き勝手に話させてもらいました。アリエルさんありがとうございました!
正直言いまして、初めてのLTでUstreamで中継されている、さらに資料はその日の15時ぐらいから作り始めた、という悪いフラグ立ちまくりな中で発表したのですが、どうだったんでしょ? 発表内容はこれ以上無いぐらいシンプルに作ったので、話す内容に迷いはなかったですけども。
話した内容を思い出せる範囲で箇条書きにしておきます。
View more presentations from del tam.
- 野望『みんなが書いた長い文章を エディタからショートカット一発で みんなの手のひらの中に届ける』
- 「みんなプログラムを書けるってことはエディタがあって一定量のテキストを打つことが出来て、論理的思考力がある。なぜ小説を書かないのか?」
- 「作文を書くのが嫌いな人が多かったはずなのに”ブログ”という形式ができた途端、自発的に文章を書く人が増えた」
- 「同じように、小説もしくは長文エッセイを流通させる形式ができたら、みんな小説を書き始めるんではないか?」
- 「そんな野望を抱きつつ、ClojureでEPUB関連ツールを作ってます」
(ns L5.sample
(:use L5 L5.layout)
(:import [java.awt Color]))
(defcontext
{:width 640 :height 480
:font-family "Gill Sans"
:font-size 30
:color (Color/white)
:background-color Color/black})
(defslides
[(with-size 35
(t "ClojureとEPUBと俺"))
(with-size 15
(lines "さいたま・無職"
"deltam"
"2010/10/29"
"Powered by L5"))]
[(title "自己紹介")
(item "@deltam {:blog サルノオボエガキ}"
"プログラム書くのが好き(Clojureに注力)"
"小説書くのが好き"
"Lisper未満、ワナビー未満")
(with-size 20
(item "素数腕立て伏せ愛好家"))
(img "icon.png")]
[(t "Lisp脳?")]
[(t "ClojureではじめてLispを使い始めました"
"-> Lisp脳にセルフ洗脳中?")]
[(title "野望")
(with-size 35
(lines "『みんなが書いた長い文章を"
"エディタからショートカット一発で"
"みんなの手のひらの中に届ける』"))]
[(t "どうやって?"
"→これから説明します")]
[(title "!注意書き!")
(item "EPUBのことしか話しません!")
(lines "\"電子書籍\"ってバズり過ぎてて"
"話せません!")]
[(title "EPUBってなに?")
(item "XML(メタデータ)+XHTML+αをZip圧縮。"
"\"枯れた技術の水平思考\"")
(img "folder_tree.png")]
[(title "つくったもの")
(item "text2epub-clj (2010-07-02..)"
" PlainTextをEPUBに変換するだけ"
"feed2epub-clj (2010-08-03..)"
" RSS2/ATOMからEPUB作る"
"ePubcast (2010-08-28..)"
" 作ったEPUBを流すPodcastサーバ")]
[(title "こんなふうに変換できます")
(img "epub_convert.png")]
[(title "反響")
(with-size 25
(item "ちょっとだけ使ってくれる人がいた")
(item "text2epub-clj"
" MOONGIFTで紹介"
" @kotorikoに褒められる"
"feed2epub-clj"
" 自分のブログをEPUBにして読むなど"
" 数人、遊んでくれた人いた模様"
"ePubcast"
" とくになし(まだできないナイッス)"))]
[(title "つくってみて分かった問題")
(item "ePubを作ってもみんなの手元に届ける"
"ルートがない!"
"→Podcast RSSのエンクロージャに\".epub\""
"を設定するとiBooksに自動追加される")]
[
(img "epub_system.jpg")]
[(title "弱点")
(with-size 25
(item "無職..."
" 時間はいっぱいあるよ!"
"ClojureやってるのにLisp技術の勉強が追いつかない"
" マクロむずかしい"
"サーバサイドの技術よく知らない"
" GAE/J勉強中"))]
[(with-size 50
(t "べ、べつにpull requestして"
"くれてもいいんだからねっ!"
"http://github.com/deltam"))]
[(title "告知")
(item "ほぼ毎月、Tokyo.cljやってます"
"Clojureは友だち、こわくないよ!")]
[(t "おわり")]
)
2010-10-05
text2epub-clj更新、行頭"!!"でePub目次設定。
Downloads for deltam's text2epub-clj - GitHub
ここの0.0.3-alphaの更新内容のご報告です。
これまでのお話し→ サルノオボエガキ: ePub
text2epub-cljを更新しました。version 0.0.3-alphaです(もはやバージョン番号の意味が分からない)。
今回は簡易記法を導入してみました。前回までだとePubのページ分割をするのは「章ごとに複数ファイルに保存」しないとtext2epub-cljではページ分割出来ませんでした。でも書いてる最中は章ごとにファイルを分けるなんて面倒なことしたくない。だから簡単な記法をちょちょいと付けて、そのまんまtext2epub-cljに通したらページ分割できたらいいなーと思って作りました。
まずは例を見てもらうのがいいでしょう。GitHubリポジトリのsamplesフォルダにあるhello.txtから全文引用。
これをtext2epub-cljに通してePubをiTunesにドラッグアンドドロップ、iPod touchに同期するとiBooksではこうなります。
こうなりました。
「!title!とか!author!ってなんやねん?」。あとで書く予定のePubメタデータ簡易記法のプロトです。あんまりカッコよくないので良い案があったらコメントください。とりあえず作っときます(あとで)。
これでしれっとSamplesフォルダにテストデータとして追加しておいた自作小説の『スウスウと砂漠の運び屋』もちゃんとePub化できたヨ。
あとCommonLisper深町さんがforkしていろいろ直してくれたりMarkdown記法で書けるようにした分があるんですが、こっちをマージする前にとりあえず出しちまおうと思ってアップしときました。ちゃんと吸収しますよ!>深町さん
以上、進捗報告でした。また開発に戻る!
【リンク】
L5のver1.1.0をリリースしました - 八発白中
プレゼンツール。Clojureで書かれているので参考に読んでます。
生まれて3日目のUn-Common Lisp - 八発白中
Lisperはあるレベルを超えると自分言語を作り出すというのは都市伝説ではなかったのだなー
ここの0.0.3-alphaの更新内容のご報告です。
これまでのお話し→ サルノオボエガキ: ePub
text2epub-cljを更新しました。version 0.0.3-alphaです(もはやバージョン番号の意味が分からない)。
今回は簡易記法を導入してみました。前回までだとePubのページ分割をするのは「章ごとに複数ファイルに保存」しないとtext2epub-cljではページ分割出来ませんでした。でも書いてる最中は章ごとにファイルを分けるなんて面倒なことしたくない。だから簡単な記法をちょちょいと付けて、そのまんまtext2epub-cljに通したらページ分割できたらいいなーと思って作りました。
まずは例を見てもらうのがいいでしょう。GitHubリポジトリのsamplesフォルダにあるhello.txtから全文引用。
!title! hello !author! hello !! chapter 1 this is a pen. hello world. !! chap 2 hello! hello! today is sunday !! end eof, eof!
これをtext2epub-cljに通してePubをiTunesにドラッグアンドドロップ、iPod touchに同期するとiBooksではこうなります。
こうなりました。
「!title!とか!author!ってなんやねん?」。あとで書く予定のePubメタデータ簡易記法のプロトです。あんまりカッコよくないので良い案があったらコメントください。とりあえず作っときます(あとで)。
これでしれっとSamplesフォルダにテストデータとして追加しておいた自作小説の『スウスウと砂漠の運び屋』もちゃんとePub化できたヨ。
あとCommonLisper深町さんがforkしていろいろ直してくれたりMarkdown記法で書けるようにした分があるんですが、こっちをマージする前にとりあえず出しちまおうと思ってアップしときました。ちゃんと吸収しますよ!>深町さん
以上、進捗報告でした。また開発に戻る!
【リンク】
L5のver1.1.0をリリースしました - 八発白中
プレゼンツール。Clojureで書かれているので参考に読んでます。
生まれて3日目のUn-Common Lisp - 八発白中
Lisperはあるレベルを超えると自分言語を作り出すというのは都市伝説ではなかったのだなー
2010-08-12
「お前のブログをePubにしてやろうかぁ!」、feed2epub-clj作りました。
deltam's feed2epub-clj at master - GitHub
RSS2.0とAtomのURLを指定して、そのフィード内容をePubにするツールを作りました。
上リンクのダウンロードから、feed2epub-clj-0.0.2-alpha-standalone.jarを持ってくればJava実行環境だけでMac、Win関係なく動かせます。もろもろ至らない点はありますが、とりあえず使えるので公開してみました。
text2epub-cljと同じくシンプルなコマンドラインツール。
これで実際に配信されているブログ記事をePubにするのを説明します。
サンプルとしてコトリコさんのrss2をePubにしてみました。
これで”コトリコ.epub”が作られるので、iTunesにドラッグアンドドロップしてください。あとはiPhone/iPod touchで同期させて、iBooksで開けるか確認。
こんな感じで表示されます。



以下、このツールについて少し。
「これって単にiBooksがRSSリーダになっただけじゃないの?」っていうのはちょっと違います。目次の画像をよく見てもらうと分かりますが、RSSリーダみたいな新→旧ではなく旧→新に並んでます。
Blogってサイトの更新情報を配信することから始まりました。だから基本的に読み捨ての情報を書くためのメディアでした。しかしブログがこれだけ普及すると、繰り返しなんども読みたいような文章を書く人が出てきます。
具体的にはこのid:kasawoさんのブログ。
傘をひらいて、空を
これって過去ログ含めて全部読み直したいレベルの文章群です。
でもブラウザやRSSリーダの制約で過去記事が読みにくいのはムカつく。なにより勿体無い。
つーことでこのツール作りました。
あとAtomPubとかも調べているので最終的にブログ全記事をePubに出来るようにするする予定です。
はてなダイアリーAtomPubとは - はてなキーワード
RSS2.0とAtomのURLを指定して、そのフィード内容をePubにするツールを作りました。
上リンクのダウンロードから、feed2epub-clj-0.0.2-alpha-standalone.jarを持ってくればJava実行環境だけでMac、Win関係なく動かせます。もろもろ至らない点はありますが、とりあえず使えるので公開してみました。
text2epub-cljと同じくシンプルなコマンドラインツール。
これで実際に配信されているブログ記事をePubにするのを説明します。
サンプルとしてコトリコさんのrss2をePubにしてみました。
$ java -jar feed2epub-clj-0.0.2-alpha-standalone.jar "http://d.hatena.ne.jp/kotorikotoriko/rss2"
これで”コトリコ.epub”が作られるので、iTunesにドラッグアンドドロップしてください。あとはiPhone/iPod touchで同期させて、iBooksで開けるか確認。
こんな感じで表示されます。
以下、このツールについて少し。
「これって単にiBooksがRSSリーダになっただけじゃないの?」っていうのはちょっと違います。目次の画像をよく見てもらうと分かりますが、RSSリーダみたいな新→旧ではなく旧→新に並んでます。
Blogってサイトの更新情報を配信することから始まりました。だから基本的に読み捨ての情報を書くためのメディアでした。しかしブログがこれだけ普及すると、繰り返しなんども読みたいような文章を書く人が出てきます。
具体的にはこのid:kasawoさんのブログ。
傘をひらいて、空を
これって過去ログ含めて全部読み直したいレベルの文章群です。
でもブラウザやRSSリーダの制約で過去記事が読みにくいのはムカつく。なにより勿体無い。
つーことでこのツール作りました。
あとAtomPubとかも調べているので最終的にブログ全記事をePubに出来るようにするする予定です。
はてなダイアリーAtomPubとは - はてなキーワード
2010-07-02
テキストファイルをePub化するツールをClojureで作りました。
追記(2010-08-10):現状、複数のファイルを束ねてファイ名を目次にしたepubを作るとこまで作成。こちらでそのことを紹介してくれてマジ感謝。
MOONGIFT » Blog Archive » テキストファイルをePub化「Text2ePub-clj」 オープンソース・ソフトウェア/フリーウェアを毎日紹介
deltam's text2epub-clj at master - GitHub
ePubというのはiPad、iPhone、iPodTouch(iOS4かつiBooks)などで読むことが出来る電子書籍のフォーマットです。
ePubを作るツールはいろいろあるんですが、単純にテキストファイルをePubにするツールが見当たらなかったので作ってみました(Clojureの練習も兼ねて)。
iBooksで読めるePubを作るところまで来たので、alpha版として紹介します。完成度:”とりあえず動く”、なので近日中にいろいろ書き換える予定。
以下、そのツールtext2epub-cljでテキストファイルからePubを作りiBooksで読むまでを説明します。


現状では章ごとの目次とか表紙の画像は設定してません。著者欄もnobody。本当にシンプルな素のePubです。
今後のToDoとしてはRSS・AtomフィードからePubを作る、GAE/JでWebサービス化するとかを考えてます。
【参考リンク】
ssig33 - Tumblr 2 ePub の PodCast 機能を強化した
この人スゴイです。開発スピードが俺の10倍ぐらいある。ただ運用が大変みたいなので俺もYet Anotherなサイトを作って負荷分散に協力したい(来週中ぐらいにできたらいいな)。
あとドネーションも受け付けているみたいです(支援)。
ssig33 - Tumblr 2 ePub の Premium Service 作った、お金ください
MOONGIFT » Blog Archive » テキストファイルをePub化「Text2ePub-clj」 オープンソース・ソフトウェア/フリーウェアを毎日紹介
deltam's text2epub-clj at master - GitHub
ePubというのはiPad、iPhone、iPodTouch(iOS4かつiBooks)などで読むことが出来る電子書籍のフォーマットです。
ePubを作るツールはいろいろあるんですが、単純にテキストファイルをePubにするツールが見当たらなかったので作ってみました(Clojureの練習も兼ねて)。
iBooksで読めるePubを作るところまで来たので、alpha版として紹介します。完成度:”とりあえず動く”、なので近日中にいろいろ書き換える予定。
以下、そのツールtext2epub-cljでテキストファイルからePubを作りiBooksで読むまでを説明します。
- まずDownloadページに行ってtext2epub-clj-standalone-0.0.1-alpha.jarをダウンロードしてきてください。Javaの実行環境があればこのJarひとつで動きます。
- ePub化したいテキストファイルを用意してください。これはUTF-8でエンコード必須です。
- コマンドラインで以下のように打ってください。
java -jar text2epub-clj-standalone-0.0.1-alpha.jar テキストファイル名 ePub名.epub ePubのタイトル
- これでePub名.epubというファイルが出来るはずです。そのほかcontent.opfとかファイルが出来てると思いますが、それらは削除してOKです。
- そのePubをiTunesにドラッグ&ドロップしてください。上手く行ってれば”ブック”の項目にコマンドラインで打ち込んだタイトルが表示されるはずです。
- iPhone、iPodTouchを同期してePubを送ります。iBooksを開いてタイトルが表示されていればOK。それをタップしてちゃんと開ければ、あとは大丈夫。
- 読書する。
現状では章ごとの目次とか表紙の画像は設定してません。著者欄もnobody。本当にシンプルな素のePubです。
今後のToDoとしてはRSS・AtomフィードからePubを作る、GAE/JでWebサービス化するとかを考えてます。
【参考リンク】
ssig33 - Tumblr 2 ePub の PodCast 機能を強化した
この人スゴイです。開発スピードが俺の10倍ぐらいある。ただ運用が大変みたいなので俺もYet Anotherなサイトを作って負荷分散に協力したい(来週中ぐらいにできたらいいな)。
あとドネーションも受け付けているみたいです(支援)。
ssig33 - Tumblr 2 ePub の Premium Service 作った、お金ください
登録:
投稿 (Atom)



