Quantcast
Channel: Planet Debian JP
Viewing all 2218 articles
Browse latest View live

nogajun: Markdownでアウトラインを書いてImpressスライドを作る

0
0

Markdownでアウトラインを書いてImpressスライドを作る

LibreOffice Impressは、よく使ってますが、アウトラインだけはテキストエディタで書きたい欲求があります。 いや、テキストエディタで内容を書いてImpressのアウトラインにコピペすればいいけれど、タイトルとアウトラインがうまく分けられず、結局手作業になってしまってかなり面倒です。

そこさえクリアできれば自動化したいと前々から考えてましたがWriter→Impressのコピペもうまくいかず悶々としていました。ですが今日、Writerのメニュー[ファイル]→[送る]に「プレゼンテーションのアウトライン」と「プレゼンテーションに自動抽出」というのがあるのを発見!やった!これで楽できる。

ということで、Markdownでアウトラインを書いてImpressを使ってスライド作成までのメモ。

「プレゼンテーションのアウトライン」と「プレゼンテーションに自動抽出」の違い

ヘルプに書いてますが、詳しくは以下のとおりです。

  • 「プレゼンテーションのアウトライン」は、見出しレベルをアウトラインレベルとして変換。本文はアウトラインレベルが設定されていても無視。
  • 「プレゼンテーションに自動抽出」は見出しレベルに関係なくタイトルに変換。以降に続く文は最大5段落までをアウトラインレベル2として変換。

Markdownはどう書けばいいのか

大きな違いは箇条書きをネストをするかしないかなので、ネストする場合は、見出しで書いて「プレゼンテーションのアウトライン」で変換。ネストしない場合は見出しと5行までの本文として書いて「プレゼンテーションに自動抽出」を使うといいのではないでしょうか。

ネストをする場合

全部見出しとして書いて「プレゼンテーションのアウトライン」で変換する。 (わざと見出しレベルを変えています。)

# Markdownで書いてImpressに変換する

# MarkdownからImpressに変換方法

## Markdonwでテキストを書く

### pandocを使ってodtに変換

#### Writerから送る→アウトラインの抽出を使う

# おわり
ネストしない場合

見出しはレベルに関係なくタイトルになるので、見出し1(「#」一つだけ)でいいと思います。本文は5段落まで。

# Markdownで書いてImpressに変換する

# MarkdownからImpressに変換方法

Markdonwでテキストを書く

pandocを使ってodtに変換

Writerから送る→アウトラインの抽出を使う

# おわり

Markdownからodtに変換

Markdownテキストからodtの変換はpandocを使います。

$ pandoc -f markdown -t odt -o (odtファイル名).odt (Markdownファイル名).md

odtからLibreOffice Impressへ

pandocで変換したodtを開いて、メニュー[ファイル]→[送る]から、「プレゼンテーションのアウトライン」か「プレゼンテーションに自動抽出」を選択。 あとはImpressでマスターページのデザイン選んで、図などが必要なら書き足して調整して完成。

今後の課題

odtからImpressへの変換は手動だけれど自動化できれば、テキストエディタで書いてImpressで見た目の編集で効率上がるのに。

後で見つけたけど

LibreOffice/OpenOfficeのドキュメントに調べたことがまとめてあった。

ツッコミを入れる


Debian security announce: DSA-2894 openssh

mike: 怒り、失望、ストレス発散

0
0

I started learning japanese calligraphy a few months ago, with no prior experience with a brush and ink. It is an interesting endeavour. For various reasons, I had to skip class for a few weeks, but after the past ten days, I needed some stress relief on paper.

怒り
失望

スッキリしました。

Debian security announce: DSA-2895 prosody

Debian security announce: DSA-2896 openssl

dancerj: libssl のアップデート。

0
0
libssl のアップデート。 してみて気づいたけど手元のサーバ台数、なんか気づいたら増えてきたなぁ。 VPSとraspberry piがいくつか。

Debian security announce: DSA-2897 tomcat7

Debian security announce: DSA-2898 imagemagick


Debian security announce: DSA-2899 openafs

nogajun: TimeMapperを動かそうと四苦八苦中(動いてません)

0
0

TimeMapperを動かそうと四苦八苦中(動いてません)

地図上に、その場所で起こった出来事をタイムラインで表示するWebアプリケーションで「TimeMapper」というものがあります。

node.js上で動くので、これをWheezy上で動かそうと、Wheezy Backportsにあるnodejsとnodejs-legacyのパッケージをインストールしてnpmが無いのでインストールスクリプトを使ってインストール。

$ sudo apt-get install -t wheezy-backports nodejs nodejs-legacy
$ curl https://www.npmjs.org/install.sh | sudo sh

その後、githubのTimeMapper Readmeにしたがって設定。

git clone https://github.com/okfn/timemapper
cd timemapper
npm install .
git submodule init && git submodule update
cp settings.json.tmpl settings.json

と、ここまではサクっと終わったけれどnodejsで実行しようとすると、こんなエラーが…。

$ node run.js
path.existsSync is now called `fs.existsSync`.

/home/vagrant/timemapper/node_modules/knox/lib/client.js:197
  if (!options.key) throw new Error('aws "key" required');
                          ^
Error: aws "key" required
    at new Client (/home/vagrant/timemapper/node_modules/knox/lib/client.js:197:27)
    at Function.exports.createClient (/home/vagrant/timemapper/node_modules/knox/lib/client.js:927:10)
    at new S3Backend (/home/vagrant/timemapper/lib/dao.js:134:22)
    at getBackend (/home/vagrant/timemapper/lib/dao.js:213:12)
    at Object.DomainObject.construct (/home/vagrant/timemapper/lib/dao.js:239:20)
    at Object.DomainObject.create (/home/vagrant/timemapper/lib/dao.js:257:24)
    at Object.exports.ensureAnonAccountExists (/home/vagrant/timemapper/lib/logic.js:63:25)
    at Object.<anonymous> (/home/vagrant/timemapper/run.js:10:7)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)

エラーの様子からknoxというライブラリを使ってAmazon S3と同期してるっぽいけど、これを使わずに起動できないものだろうか。 lib/config.jsを見て、settings.jsonに書いてあげるといいかもしれないけれど、空にするというのはなさそうだし、よくわからん。

ツッコミを入れる

Debian security announce: DSA-2900 jbigkit

nogajun: Debian WheezyでOpenSpendingを動かす

0
0

Debian WheezyでOpenSpendingを動かす

税金はどこへ行った? - WHERE DOES MY MONEY GO? -」という自分の払った税金がどのカテゴリにどの割合で使われているか可視化するプロジェクトがあって、その可視化に使われているOpenSpendingというのがあります。

今度はこれをDebianで動かしてみたのでメモ。

動かす手順は日本語でまとめられてるので参考にしたけれど、Debianだと手順を簡略化できるのでいじくりやすいと思います。

注意としては、これは動かすだけなので横浜のリポジトリをそのままクローンしてますが、本格的に作業をする場合は手順のようにフォークしてから自分のリポジトリからクローンするようにしてください。

$ sudo apt-get install git jekyll bundler rake

$ git clone https://github.com/orezeni/orezeni.github.com.git
$ cd orezeni.github.com/
$ git rm CNAME
$ git commit -m "remove CNAME"
$ rake preview

ローカルで動かしている場合は、 http://localhost:4000/、VagrantでVagrantfileのconfig.vm.network "private_network"のコメントを外して使ってたら http://192.168.33.10:4000/にアクセスしたらサイトが見れるはず。

ツッコミを入れる

nogajun: Debian Wheezyで5374.jpを動かす

0
0

Debian Wheezyで5374.jpを動かす

オープンデータなアプリの続きで各地区のゴミ収集日がわかる5374.jpも入れてみた。

OpenSpendingもそうだけど「動かす」といっても、クライアントサイドで動くから、別に普通にブラウザで見ればいいのだけどWebサーバーあるし、ここはあえてってことで。

基本的には、やることもなく、git cloneしてブラウザで見えるところに置いてあげればOK。

$ git clone https://github.com/codeforkanazawa-org/5374.git

$ sudo echo "alias /5374 /home/vagrant/5374"> /etc/apache/conf.d/5374jp
$ service apache2 restart

ツッコミを入れる

mkouhei: How to build custom Debian package automatically by Jenkins

0
0

How to build custom Debian package automatically by Jenkins

以前、OpenSSH LDAP Public key パッチ(openssh-lpk)を、Ubuntu 12.04 LTS(Precise)とDebian GNU/Linux WheezyのそれぞれのOpenSSHに適用したカスタムビルドパッケージを作りました。 [1][2] OpenSSHのパッケージが更新される度に、

  1. このパッチを適用し
  2. pbuilderを使ってPrecise, Wheezyでビルド
  3. 実環境にインストールしてテスト
  4. GPG key sign
  5. reprepro管理下のローカルアーカイブに登録

するという作業を行っています。といっても、PreciseやWheezyでもOpenSSHのパッケージ自体のアップデートが最近までほとんどなかったので、手動でメンテナンスを行っていたのですが、この1ヶ月くらいで何回かアップデートがあったことや、先日Jenkinsを作ったこと (Issue deploying Jenkins to Tomcat7 Debian package in Wheezy)もあったこと、職場で私以外に作業できる人がいない、という問題があるので、Jenkinsでビルドするようにしました。

OpenSSHパッケージのDebianバージョンとOpenSSH LPKパッチの関係

これを図にすると下記のようになります。 Debianのパッケージが更新されるたびに、”+cust1”を付加したバージョンをリリースするわけです。

digraph changelog { node [fontsize= w2c [style=dotted, label="apply openssh-lpk"]; w1 -> w1c [label="applied openssh-lpk"]; w0 -> w0c [label="applied openssh-lpk"]; w2 -> w1 [style=dotted, dir=back]; w1 -> w0 [dir=back]; {rank = same; w0; w0c} {rank = same; w1; w1c} {rank = same; w2; w2c} }" src="http://d.palmtb.net/_images/graphviz-e6f4537d05ef1f07f866b6f6b23aecec5a4ae09a.png" />

Preciseの場合も基本的に同じです。

digraph changelog { node [fontsize= u4c [label="apply openssh-lpk", style=dotted]; u3 -> u3c [label="applied openssh-lpk"]; u2 -> u2c [label="applied openssh-lpk"]; u1 -> u1c [label="applied openssh-lpk"]; u0 -> u0c [label="applied openssh-lpk"]; u4 -> u3 [style=dotted, dir=back]; u3 -> u2 -> u1 -> u0[dir=back]; {rank = same; u0; u0c} {rank = same; u1; u1c} {rank = same; u2; u2c} {rank = same; u3; u3c} {rank = same; u4; u4c} }" src="http://d.palmtb.net/_images/graphviz-62e7ea283a26d02d558f62835a97bb17fd4f7d2c.png" />

pbuilderのイメージ準備

Jenkinsを動かしているのは前回の通りWheezyなので、Wheezy用のbase.tgzは次のように作成します。

$ sudo pbuilder --create --distribution wheezy --basetgz /var/cache/pbuilder/wheezy-base.tgz

一方、Precise用のbase.tgzは、別途Preciseをインストールしたサーバ上で同様に作成し、そのtarballを/Jenkins用のサーバに転送&配置します。 [3]

WheezyやPrecise用のbase.tgzのAPT Lineにはupdatesやsecurityのものは含まれていないので、

$ sudo pbuilder --login --save-after-login --basetgz /vat/cache/pbuilder/wheezy-base.tgz

でchroot環境にログインし、変更しておきます。 [4]また、合わせて、repreproで作成したローカルアーカイブ用のGPG公開鍵をapt-key addコマンドで追加しておきます。

パッチ置き場と一次ビルドの出力先の作成

openssh-lpkパッチと、debian/rulesのパッチをを任意のWebサーバにWheezy用、Precise用とそれぞれ用意しました。下記のようなURLです。

また、一次ビルドで出力するソースパッケージは、/var/tmp/resultディレクトリを作成し、後述のスクリプトでそこに出力するようにします。

$ sudo install -d -o tomcat7 -g tomcat7 --mode 0700 /var/tmp/result

一次ビルド、といっているのはパッチを適用した状態で、一度debuildを実行して出力されるソースパッケージのことです。その出力されたソースパッケージを用いて、pbudilerでクリーンビルドする、という流れです。

ソースツリーからpbuilderを実行するpdebuildコマンドを使えば、そんな面倒なことをする必要はありません。が、Wheezy上でPreciseの公開鍵をインポートしなくてはいけない点と、PreciseとWheezyとで基本的に同じ手順で行いたい、という二点から、pbuilderを2回実行する形にしました。

ジョブ用のスクリプト

Wheezy, preciseとで基本同じなので、先頭の2行のみを環境に合わせて変更します。Wheezyの場合は、codenameをwheezy, distroにはstableにしますが、Preciseの場合には両方共preciseです。 [5]

codename=wheezy
distro=stable
bin_package=openssh-server
src_package=openssh
arch=$(dpkg-architecture -qDEB_HOST_ARCH)# check version
cat << EOF > check_version.shapt-cache show $bin_package | grep Version: | sort | tail -1 | grep -v +cust > /var/tmp/result/${BUILD_ID}.txtEOF
sudo pbuilder --update --basetgz /var/cache/pbuilder/${codename}-base.tgz
sudo pbuilder --execute --basetgz /var/cache/pbuilder/${codename}-base.tgz --bindmounts "/var/tmp/result /tmp" -- check_version.sh
test -s /var/tmp/result/${BUILD_ID}.txt ||exitdeb_version=$(awk -F: '{print $3}' /var/tmp/result/${BUILD_ID}.txt)orig_version=$(echo$deb_version | awk -F"-"'{print $1}')# retrieve source package and patches
cat << EOF > build.shapt-get -qq -y install curl devscripts quilt patch libdistro-info-perl fakeroot libldap2-devapt-get -qq -y build-dep $bin_packageapt-get source $src_packagecurl -O http://repo.example.org/${codename}/openssh-lpk.patchcurl -O http://repo.example.org/${codename}/rules.patch(export DEBFULLNAME="Auto Build"export DEBEMAIL=autobuild@example.orgcd ${src_package}-${orig_version}echo "### applying patch ###"patch -p1 --dry-run < ../openssh-lpk.patch || exit 1patch -p1 < ../openssh-lpk.patchecho "### commiting patch ###"echo | dpkg-source --commit . openssh-lpk.patch ../openssh-lpk.patchecho "### update Build-Depends ###"sed -i 's/^\(Build-Depends: .*\)$/\1, libldap2-dev/' debian/controlecho "### update compile options ###"patch -p1 --dry-run < ../rules.patchpatch -p1 < ../rules.patchecho "### update changelog ###"dch -l+cust -D${distro} "Applied OpenSSH LPK patch."echo "### build package ###"debuild -us -uc)cp -f ${src_package}_${deb_version}+cust1.debian.tar.gz ${src_package}_${orig_version}.orig.tar.gz ${src_package}_${deb_version}+cust1.dsc /var/tmp/result/EOF

sudo pbuilder --execute --basetgz /var/cache/pbuilder/${codename}-base.tgz --bindmounts "/var/tmp/result /tmp" -- build.sh

# clean build
sudo pbuilder --build --basetgz /var/cache/pbuilder/${codename}-base.tgz /var/tmp/result/${src_package}_${deb_version}+cust1.dsc

# installing test
sudo piuparts -b /var/cache/pbuilder/${codename}-base.tgz -d $codename --keep-sources-list /var/cache/pbuilder/result/${src_package}_${deb_version}+cust1_${arch}.changes

大まかな流れとしては次のとおりです。

  1. カスタムビルドパッケージよりも更新されたバージョンがリリースされていないかのチェック
  2. pbuilderを使い、chroot環境内でのソースパッケージとパッチの取得・適用及びビルド
  3. ビルドして生成されたソースパッケージを用い、pbuilderでクリーンビルド
  4. クリーンビルドしてできたパッケージを、piupartsでインストールテスト

公式パッケージで更新されてパッチ適用したバージョンよりも新しいバージョンがリリースされている場合、このジョブを実行すると、パッチ適用してビルドされたパッケージが、Jenkinsサーバの/var/cache/pbuilder/resultディレクトリ下に作成されます。

後は別のジョブでdebsignでGPG key signし、repreproのincomingディレクトリにpushすれば良いわけです。 [6]

この記事のオチ

さて、これで自動ビルドできるようになったので楽できるわー、と思ったら、このジョブを仕込んた翌日に、 OpenSSH 6.2以降で

  • AuthorizedKeysCommand
  • AuthorizedKeysCommandUser

というオプションが使えるようになったことを同僚に教えてもらいました。つまり、「もはやOpenSSH LPKなんて不要になった!」ワケです。素晴らしい。

来週リリース予定のUbuntu 14.04 LTS(Trusty)ではOpenSSH 6.6ですし、WheezyでもBackportsに6.5にあるのでわざわざこんな手の混んだことをしなくても、ミラーをすればよいのです。 なので、このジョブそのものはたった一日で不要になってしまいました。

ただし、Precise用にはWheezyのBackportsのソースパッケージをリビルドする必要があるので、今回やった事自体は役立ちそうです。このジョブに比べたら(リビルドさえちゃんと確認できれば)なんてこと無いですね。

もっと簡単にマルチディストリビューション向けに自動(カスタム)クリーンビルドする方法があれば、どなたか教えて下さい。

Footnotes

[1]OpenSSH LDAP public key
[2]Applying openssh-lpk to Wheezy
[3]cowbuildreを使うことも検討したのですが、Precise上で cowbuilder ?create すると失敗するためpbuilderを使うことにしました。
[4]exitコマンドではなく、Ctrl + dでログアウトすると、”?save-after-login” オプションをつけていても変更が保存されないようです。
[5]Wheezyでは、dchコマンドの”-D”オプションでのディストリビューションの指定には、Ubuntuと違ってコードネームの”wheezy”ではなく、”stable”でないとエラーになります。
[6]今回はdebsign, repreproへのpushについては書きませんが。

Debian security announce: DSA-2901 wordpress


Debian security announce: DSA-2902 curl

Debian security announce: DSA-2903 strongswan

nogajun: 第6回関西LibreOffice勉強会で「スタイルを使ってレイアウトをかっちり決めよう」というWriterのスタイルを使う話をしてきました

0
0

第6回関西LibreOffice勉強会で「スタイルを使ってレイアウトをかっちり決めよう」というWriterのスタイルを使う話をしてきました

はい。最近、オフィスソフトづいてるワケですが、12日の土曜日、関西LibreOffice勉強会でLibreOffice Writerでスタイルを使うお話をしてきました。

LibreOfficeはオフィスソフトということでMS Officeと比較されますが、まったくアプローチが違うものなので使い方も変わってきます。 とりわけスタイルについては、同じ名前であってもWriterのスタイルはInDesignやScribusのようなページレイアウトツールとWebのCSS(カスケーディングスタイルシート)のような仕組みになっているので、そのあたりの考え方とちょっとした使い方の話をしてきました。 スライドの方はビジュアルリファレンス的な感じで書いたので、見れば、なんとなく使い方がわかると思います。

ほかには那谷さんのSQLiteをLibreOffice Baseのバックエンドに使う話や、LibreOffice Writerでページスタイルの文字数で苦労した話、ライブコーディングならぬライブドキュメンテーションでWriterの楽さを見せた後、Wordのスタイルがハマりどころが多いと語った中村さんのセッションなど、みんな内容が濃くて面白かったですね。

懇親会ではWriterの話しが多かったせいか、ドキュメンテーションの自動化の話しが多くて、いろいろ社内のドキュメント作成に苦労があるなと感じながら長話しをしてお開きになりましたとさ。

ツッコミを入れる

nogajun: LibreOffice Writerをアウトラインエディタとして使う(試行錯誤)

0
0

LibreOffice Writerをアウトラインエディタとして使う(試行錯誤)

関西LibreOffice勉強会の懇親会で「LibreOfficeにはWordにあるアウトラインモードがないよね」という話しが出ました。

みんな考えることは同じで「南の爪/LibreOffice活用術/Writerとアウトラインプロセッサ - サンゴー企画Online」には、箇条書きを使ってアウトラインエディタ的に使う方法が紹介されています。

ですが、これの最後に「『箇条書きと番号付け』のアウトラインを選べば〜」と書いてありますが、これは箇条書きの見せ方が変わっただけでナビゲーターのレベルとして使えるアウトラインレベルではありません。

アウトラインアウトラインレベルの違いを説明するとこのようになります。

  • アウトライン: 章の番号を振る「箇条書きと番号付け」の機能。ナビゲーターからは操作できない。
  • アウトラインレベル: 見出しなどに使われる文章のレベルを表す「段落スタイル」の機能。1から10段階のレベルと本文レベルがある。ナビゲーターから操作できる。

…。紛らわしいにもほどがある。

解消する方法はないかなと考えたところ、スタイルの「見出し」が適用されている行の行頭でTabキー/Shift+Tabキーを押すと、見出しレベル/アウトラインレベルの上げ下げができることを発見!

ということは、先にスタイルで「見出し1」を適用しておいて「箇条書き」を適用すると、箇条書きのレベルを上げ下げに応じて箇条書きのインデントとアウトラインレベルを上げ下げができるのでは?と考えたら見事に思う動作になりました。これを使えばWordのアウトラインエディタ的な使い方できる!と思いましたが、ここに罠がひとつ。

スタイルには現在のスタイル設定のほかに「次に続くスタイル」が指定できます。「見出し」に続く次のスタイルには「本文」が適用されています。アウトラインを考えている最中に項目を追加しようとすると「本文スタイル」になってアウトラインが切れてしまう!

切れても新たに「見出し」スタイルを適用すればつながるので、スタイルを指定しなおしてあげれば良いのですが、それだと「見出し1-5」がCtrl+[1-5]キーにショートカットが割り当てられてるので、箇条書きにせず、直接「見出し1-5」を指定して、Tab/Shift+Tabを使ってアウトラインレベルを上げ下げするほうがいいんじゃないかと思ったり。

結局、これだ!という解決方法もなく、アウトラインエディタとして使うのは微妙なオチになってしまいましたとさ。

ツッコミを入れる

nogajun: LibreOffice CalcのデータをBaseのテーブルとしてインポート

0
0

LibreOffice CalcのデータをBaseのテーブルとしてインポート

LibreOfficeづいてるなぁ。とりあえずメモ

  1. Calcのオートフィルター(メニュー[データ]-[フィルター]-[オートフィルター])を適用して正しく適用される事を確認。「列の項目が〜」という警告が出たら項目を追加しておく
  2. インポートしたいデータがある列を選択してコピー
  3. Baseのデータベースを開く
  4. ウィンドウ左列にあるデータベースの「テーブル」を選択して「貼り付け」(Ctrl+Vとか[編集]-[貼り付け])すると「テーブルのコピー」ウィザードが開くので指示に従って進めるとインポートできる

コピペでインポートできるとは目からウロコですよ。

ツッコミを入れる

Viewing all 2218 articles
Browse latest View live




Latest Images