SlideShare a Scribd company logo
1 of 13
Download to read offline
コマンドライン使いもLibreOffice


     Kiwamu Okabe
私は誰?
☆ Twitter: @master_q
☆ ミラクル・リナックス勤務
☆ 前はコピー機のOSをNetBSDで作ってた
☆ デジタルサイネージのソフト開発してます
☆ OSSに興味のある{エンジニア,インターン}
募集中です!
最近よくWebページ作るんです
ややこしい表現には図が効きます
☆ でも世の中良いドローソフトが不足
☆ tgifとかにはもう耐えられないんです
☆ コネクタも使えないドローソフトって...
☆ LibreOfficeをドローソフトとして使おう
でも図を貼り付けるの面倒...
☆ LibreOfficeで描く
☆ png化
☆ Webブラウザで見た目チェック
☆ ...なんかうまくない...
☆ 最初に戻る
こんなことできますか?
つまり一発で変換したい
$ tree ./draw # ビフォワー
./draw
|-- 2012-12-22-jhc_compile.odg
|-- 2012-12-27-arafura_design.odg
|-- 2012-12-27-compile.odg
|-- 2013-01-09-sequence_diagram.odg
`-- 2013-01-25-jhc_compile_flow.odg

↓↓ 変換 ↓↓

$ tree ./draw # アフター
./draw
|-- 2012-12-22-jhc_compile.odg
|-- 2012-12-22-jhc_compile.png
|-- 2012-12-27-arafura_design.odg
|-- 2012-12-27-arafura_design.png
|-- 2012-12-27-compile.odg
|-- 2012-12-27-compile.png
|-- 2013-01-09-sequence_diagram.odg
|-- 2013-01-09-sequence_diagram.png
|-- 2013-01-25-jhc_compile_flow.odg
`-- 2013-01-25-jhc_compile_flow.png
できました!
make一発でdrawディレクトリにあるodgファイ
ルをpngファイル化
ODGS   :=   $(wildcard   draw/*.odg)
PNGS   :=   $(patsubst   %.odg,%.png,${ODGS})

all: ${PNGS}

%.png: %.odg
        unoconv -n -f png -o $@.tmp $< 2> /dev/null     ||   
          unoconv -f png -o $@.tmp $<                   ||   
          unoconv -n -f png -o $@.tmp $< 2> /dev/null   ||   
          unoconv -f png -o $@.tmp $<
        convert -resize 640x $@.tmp $@
        rm -f $@.tmp

clean:
            rm -f draw/*.png draw/*.tmp

.PHONY: clean
なんで4回もunoconv呼ぶの?
☆ libreofficeが既に起動している場合には-n
オプションを付ける必要がある
☆ unoconvがなぜかエラー終了する...
この2つを防止するために成功するまで最大4
回呼びます。
将来後者は改善されるといいなー(他力本願)
ところでjekyllとかHakyllとか
☆ http://jekyllrb.com/
☆ http://jaspervdj.be/hakyll/
を使うと静的はWebページを少ない労力で作
れます。
図の貼り付けも楽したい!
応用: unoconv + Hakyll
ODGS   :=   $(wildcard   draw/*.odg)
PNGS   :=   $(patsubst   %.odg,%.png,${ODGS})

all: build ${PNGS}

%.png: %.odg
        unoconv -n -f png -o $@.tmp $< 2> /dev/null     ||   
          unoconv -f png -o $@.tmp $<                   ||   
          unoconv -n -f png -o $@.tmp $< 2> /dev/null   ||   
          unoconv -f png -o $@.tmp $<
        convert -resize 500x $@.tmp $@
        rm -f $@.tmp

hakyll: hakyll.hs
        ghc --make -Wall -Werror hakyll.hs -o hakyll

build: hakyll
        ./hakyll build

server: build
        ./hakyll server
応用色々おいしいunoconv
TeXと組み合わせてもいいかもしれませんね!
PR:関数型言語の同人誌書きました
立ち読みしてして!

More Related Content

What's hot

Shell で制限付き並列処理をしよう
Shell で制限付き並列処理をしようShell で制限付き並列処理をしよう
Shell で制限付き並列処理をしよう
博文 斉藤
 

What's hot (20)

ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
自動化ツール「Grunt.js」について
自動化ツール「Grunt.js」について自動化ツール「Grunt.js」について
自動化ツール「Grunt.js」について
 
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
 
俺と2016コミュニティ活動振り返り
俺と2016コミュニティ活動振り返り俺と2016コミュニティ活動振り返り
俺と2016コミュニティ活動振り返り
 
Js祭り
Js祭りJs祭り
Js祭り
 
コミケの取りまとめをしたので
コミケの取りまとめをしたのでコミケの取りまとめをしたので
コミケの取りまとめをしたので
 
ソースコードをAAに変換するやつやってみた
ソースコードをAAに変換するやつやってみたソースコードをAAに変換するやつやってみた
ソースコードをAAに変換するやつやってみた
 
Simplest API Server "miq"
Simplest API Server "miq"Simplest API Server "miq"
Simplest API Server "miq"
 
Ruby と C# をつなぐ
Ruby と C# をつなぐRuby と C# をつなぐ
Ruby と C# をつなぐ
 
CLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトークCLR/H第54回勉強会 ライトニングトーク
CLR/H第54回勉強会 ライトニングトーク
 
俺と Ha4go と さくらクラウド
俺と Ha4go と さくらクラウド俺と Ha4go と さくらクラウド
俺と Ha4go と さくらクラウド
 
Webページで学ぶJavaScript2013 第5回
Webページで学ぶJavaScript2013 第5回Webページで学ぶJavaScript2013 第5回
Webページで学ぶJavaScript2013 第5回
 
What's Sketch.app
What's Sketch.appWhat's Sketch.app
What's Sketch.app
 
K初めてのstylus
K初めてのstylus K初めてのstylus
K初めてのstylus
 
202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
 
Hexo + Github + CircleCI + Netlifyでブログ運用
Hexo + Github + CircleCI + Netlifyでブログ運用Hexo + Github + CircleCI + Netlifyでブログ運用
Hexo + Github + CircleCI + Netlifyでブログ運用
 
Shell で制限付き並列処理をしよう
Shell で制限付き並列処理をしようShell で制限付き並列処理をしよう
Shell で制限付き並列処理をしよう
 
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
 
OSC 2013 .Enterprise
OSC 2013 .EnterpriseOSC 2013 .Enterprise
OSC 2013 .Enterprise
 

Viewers also liked

Reported speech
Reported speechReported speech
Reported speech
gabyamaro
 
Learning3.0 chicago oct_11
Learning3.0 chicago oct_11Learning3.0 chicago oct_11
Learning3.0 chicago oct_11
willyerd1
 
Manual estimulacion-prenatal-1210563942438206-9
Manual estimulacion-prenatal-1210563942438206-9Manual estimulacion-prenatal-1210563942438206-9
Manual estimulacion-prenatal-1210563942438206-9
Marta
 
Eli leadership principles 7-10-13
Eli leadership principles 7-10-13Eli leadership principles 7-10-13
Eli leadership principles 7-10-13
vitalchurches
 
Transformed by You
Transformed by YouTransformed by You
Transformed by You
Noel Hatch
 
Algemene presentatie The Next Level
Algemene presentatie The Next LevelAlgemene presentatie The Next Level
Algemene presentatie The Next Level
The Next Level
 
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
洋史 東平
 
Online Campaign
Online CampaignOnline Campaign
Online Campaign
Tan Ng
 

Viewers also liked (20)

Reported speech
Reported speechReported speech
Reported speech
 
2011.12 marketing principles
2011.12 marketing principles2011.12 marketing principles
2011.12 marketing principles
 
Learning3.0 chicago oct_11
Learning3.0 chicago oct_11Learning3.0 chicago oct_11
Learning3.0 chicago oct_11
 
Manual estimulacion-prenatal-1210563942438206-9
Manual estimulacion-prenatal-1210563942438206-9Manual estimulacion-prenatal-1210563942438206-9
Manual estimulacion-prenatal-1210563942438206-9
 
CBE Ltd Seamus Mc Hugh
CBE Ltd Seamus Mc HughCBE Ltd Seamus Mc Hugh
CBE Ltd Seamus Mc Hugh
 
18 canh dep mua thu tren the gioi (25 nov 11)
18 canh dep mua thu tren the gioi (25 nov 11)18 canh dep mua thu tren the gioi (25 nov 11)
18 canh dep mua thu tren the gioi (25 nov 11)
 
MedCAHPS Analysis & Plan_May 14 2012
MedCAHPS Analysis & Plan_May 14 2012MedCAHPS Analysis & Plan_May 14 2012
MedCAHPS Analysis & Plan_May 14 2012
 
What is Metasepi?
What is Metasepi?What is Metasepi?
What is Metasepi?
 
Teens&Technology
Teens&TechnologyTeens&Technology
Teens&Technology
 
Convocation
Convocation Convocation
Convocation
 
Mind Mapping: Walking Notes, Urban Awareness Diary, Barcelona
Mind Mapping: Walking Notes, Urban Awareness Diary, BarcelonaMind Mapping: Walking Notes, Urban Awareness Diary, Barcelona
Mind Mapping: Walking Notes, Urban Awareness Diary, Barcelona
 
The Power of Stickers
The Power of StickersThe Power of Stickers
The Power of Stickers
 
Patient Centered
Patient CenteredPatient Centered
Patient Centered
 
Eli leadership principles 7-10-13
Eli leadership principles 7-10-13Eli leadership principles 7-10-13
Eli leadership principles 7-10-13
 
Transformed by You
Transformed by YouTransformed by You
Transformed by You
 
South Korea - The Big Leak (Personal Data leak of Credit Card Companies)
South Korea - The Big Leak (Personal Data leak of Credit Card Companies)South Korea - The Big Leak (Personal Data leak of Credit Card Companies)
South Korea - The Big Leak (Personal Data leak of Credit Card Companies)
 
Dzone
DzoneDzone
Dzone
 
Algemene presentatie The Next Level
Algemene presentatie The Next LevelAlgemene presentatie The Next Level
Algemene presentatie The Next Level
 
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
 
Online Campaign
Online CampaignOnline Campaign
Online Campaign
 

Similar to コマンドライン使いもLibreOffice

スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
 
今さら始めるJavaScript
今さら始めるJavaScript今さら始めるJavaScript
今さら始めるJavaScript
Ashitaba YOSHIOKA
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
Shogo Kawahara
 
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesInside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
Takeshi Komiya
 
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudyExcel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
Takeshi Komiya
 
ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012
Tatsuhiko Kubo
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
Takeshi Arabiki
 
Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方
girigiribauer
 

Similar to コマンドライン使いもLibreOffice (20)

スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
サーバーサイドな人がフロントエンド技術と仲良くするはじめの一歩
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
 
今さら始めるJavaScript
今さら始めるJavaScript今さら始めるJavaScript
今さら始めるJavaScript
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
 
静的サイトどこにする?
静的サイトどこにする?静的サイトどこにする?
静的サイトどこにする?
 
Inside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfesInside of excel 方眼紙撲滅委員会 #pyfes
Inside of excel 方眼紙撲滅委員会 #pyfes
 
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 
RubyConfの話の続きのおはなし
RubyConfの話の続きのおはなしRubyConfの話の続きのおはなし
RubyConfの話の続きのおはなし
 
ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudyExcel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
Excel 方眼紙撲滅委員会 活動報告 2012.11 #odstudy
 
ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
Introduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
 
ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)
ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)
ビビッド・パワポ・オペレーションβ ~エンジニアのための、ゆるふわパワポ術~(qpstudy 2013.01 LT)
 
Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方Webサイトのようには作れない!Webアプリ設計の考え方
Webサイトのようには作れない!Webアプリ設計の考え方
 
らくちん Go言語
らくちん Go言語らくちん Go言語
らくちん Go言語
 
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
 

Recently uploaded

Recently uploaded (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

コマンドライン使いもLibreOffice