Debian: 「libmysqlclient_r.so.16: cannot open shared object file」って言われたときの対処
GitLabをインストールしていたら、こう言われました。
Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter`
(libmysqlclient_r.so.16: cannot open shared object file: No such file or directory -
/home/git/gitlab/vendor/bundle/ruby/1.9.1/gems/mysql2-0.3.11/lib/mysql2/mysql2.so)
たぶん、Debianを最新版にしたので、このバージョンのライブラリがないのだと思われます。
対処
「debian libmysqlclient_r.so.16」ググったら以下のページが見つかったので、指示に従う。 http://packages.debian.org/squeeze/libmysqlclient16
- /etc/apt/sources.listに以下を追加: deb http://security.debian.org/debian-security squeeze/updates main
sudo apt-get update
sudo apt-get install libmysqlclient16
これで解決しました。
latexdiffを日本語LaTeX文書でうまく扱えるようにする
今,後輩の卒論を添削しているのですが,LaTeX文書をきれいに比較(diff)してくれるようなものを探してたら, latexdiff という便利ツールを見つけました.
Pascal Junod » LaTeXdiff によると,こんな感じで綺麗にdiffできるようです.
- 赤字:新しい原稿で消した箇所
- 青字:新しい原稿で追加した箇所
インストール
私はMacでTeX Live 2012(MacTeX - TeX Users Group)を入れていたせいか,いつの間にかlatexdiffが入っていました.
必要ならソースからコンパイルもできるそうです.手順は以下を参照.
日本語LaTeX文書に対応させる
英文LaTeX文書であれば,以下の要領でいけると思います.
$ latexdiff input1.tex input2.tex > output.tex
$ platex output.tex
$ platex output.tex
$ platex output.tex
$ dvipdfmx output.dvi
ただし,日本語LaTeX文書だとUnicodeのNFD/NFC(濁点などを分離する・しない)の問題で, 余計なところまで差分と見なされてしまう場合があります.
参考:紹介マニアどらふと版: Mac OS X におけるファイル名に関するメモ(NFC, NFD等)
そこで,この問題を解決しつつlatexdiffを便利に使えるようにするシェルスクリプトを作りました.
まず,iconvをインストールしてください.
MacならHomebrew, Macportsなどで,Linuxならapt-getやyumなどでsearchすれば見つかると思います.
Homebrewには無いようです.無い場合はソースからコンパイルしてください.申し訳ございません.
次に,gistに置いてあるスクリプトをjlatexdiffという名前で保存し,PATHの通っているところに放り込んでください(私は~/binに入れています).
私はlatexmkを使っているのでこれがデフォルトですが, 使っていない人はスクリプトのplatex部分をコメントアウトして使ってください.
また,うちで使っているLaTeXはUTF-8を受け付ける仕様です. 他の文字コード用のを使っている人は,iconvを使って適宜スクリプトをいじってください.
使い方は以下の通りです.
$ jlatexdiff [old file name].tex [new file name].tex
不具合があれば,ご報告いただけると幸いです. なお,このスクリプトは以下のサイトを参考にしました.
latexdiffで幸せな添削ライフを!
おまけ: latexmkの簡単な紹介
latexmk は,
- めんどくさい複数回コンパイルを自動的にやってくれる
- texファイルから一気にpdfまで作ってくれる
という神ツールです.余裕がある人は,設定すると幸せになれます.
参考:
Wordpress: BackWPupがInternal Server Errorになってしまう件
私は別のブログでWordpressを使っており、 バックアップのためにBackWPupというプラグインを使おうとしました。
参考: 今こそ安心できるWordPressバックアップを!復旧作業まで実際にやってみたWordPress丸ごとバックアップ法 | 情報科学屋さんを目指す人のメモ
しかし、上記リンクのように設定して「Run now」とすると、 「Error 500: Internal Server Error」となってしまい、 もう一回リロードするとLog画面に何も出ない状態(真っ黒)で止まってしまっていました。
バックアップ先ディレクトリの所有ユーザ名をチェックしよう
悩んだ挙げ句ずいぶん放置したのですが、先日ふと気づいてディレクトリの所有ユーザやパーミッションをチェックしたところ、ユーザがrootになっていました。
$ ls -ld /var/www/blog/BackWPup/ # バックアップディレクトリ drwxr-xr-x 2 root root 4096 2013-01-03 11:27 BackWPup/
そこで、ユーザをWordpress専用ユーザ(ここではwww-data)に変更しました。
$ sudo chown www-data:www-data BackWPup/
これでもう一度「Run now」したところ、無事に動きました。
もしBackWPupでトラブルになっている方がいれば、バックアップ先などのディレクトリの所有ユーザ名やパーミッションをチェックしてみて下さい。
はてなブログに移行しました
はてなブログに移行しました
僕はブログを以下のように使い分けていました。
- 技術系のネタ:はてなダイアリー「雲行きそらゆきココロイキ」←このブログ
- それ以外の一般向けネタ:「solarsolfa」
そのうち、技術系ブログとして今まではてなダイアリーを使っていましたが、この度そのブログをはてなブログに移行しました。
理由は、Markdown記法が使えるためです。 私は最近Markdownでものを書くことが多く、こちらの方が都合がよいと感じたのです。
特に、ソースコードのシンタックスハイライトが使えるようになったとのことで、移行を決意しました。
参考:はてなブログの markdown 形式で ソースコードハイライト - memo @atotto
これからも当ブログをよろしくお願いいたします。
Advent Calendar 2012 俺用まとめ
俺による俺のための俺のAdvent Calendarまとめ。やや研究寄りです。
Advent Calendarの季節がやって来ました!
Advent Calendarは技術系コミュニティから火がついた、
「あるテーマにそって12/1から12/25まで1日に1つずつブログ記事を公開するお祭り」です。
自分が主催してるやつ
プログラミング以外について、ドキュメント作成を効率化するTipsを集めるAdvent Calendarです。
主に論文や報告書など、物書きや事務処理、アイデア整理などに関するツールやTipsならだいたい何でもOKです。
Markdown, Org-Mode, LaTeX, HTML/XML, アウトラインプロセッサ, マインドマップなどなど。
まだまだお待ちしています。
エディタ・開発ツール
文書系
- TeX & LaTeX Advent Calendar : ATND
敵だっ!!嘘です、仲良くやりましょうヽ(´ー`)ノ
- #LOVEFONT Advent Calendar 2012
- 特定のフォントを愛する人が、そのフォントの一体どこがいいのか、どうしてそのフォントでなくてはダメなのかを語る、フォントについてのAdvent Calendarです。
その他
- Kosen Advent Calendar 2012 : ATND
- テーマを「高専」としたエントリをリレー形式で書き連ねていく催しです。
- LL/ML Advent Calendar #LLAdventJP
- タイトルに"LL"もしくは"ML"を含めば、特に制限はありません。(例: 「SML# 入門」「LINQ Lesson」)
Emacsのkey-combo.el: haskell-mode用設定のメモ
id:uk-ar さんのkey-combo.elを設定しました。
key-comboを使って読みやすいコードを書く (Emacs Advent Calendar 8日目) - むしゃくしゃしてやった
その際、haskell-mode用のローカルkey-combo設定がうまくできなかったのですが、
解決したので、その顛末をメモ書きしておきます。
前提
私はinit-loader.elで設定ファイルを分割しています。
設定ファイルは以下の順番で読み込まれます。
haskell-modeのインデント設定とadd-hook
haskell-modeではインデントの種類を3種類から選べます。
そのためにhaskell-mode-hookに追加する必要がありますが、
私の環境ではなぜかadd-hook関数で以下のように書いても正しく読み込まれませんでした。
;; 36_haskell.el ;; NG: 有効にならない (add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
haskell-modeでインデント設定が正しくない場合、
インデントしようとするとヘルプ画面が出て設定の仕方を教えてくれます。
渋々、出てきたヘルプ通りにinit.elで直接custom-set-variablesを使って書くと、
正しくインデント設定が読み込まれました。
;; init.elの最後 (custom-set-variables ;; ... '(haskell-mode-hook 'turn-on-haskell-indentation) ;; ... )
これが、災いの元でした。
add-hookが上書きされてしまう
init.elの最後でcustom-set-variablesでhookを設定してしまうと、
add-hook関数で追加しても設定が上書きされてしまいます。
;; 36_haskell.el ;; NG: init.elで上書きされて動かない (add-hook 'haskell-mode-hook '(lambda () (key-combo-define-local (kbd "-") '("-" " -> " "--")) (key-combo-define-local (kbd "<") '("<" " <- " " <= " " =<< " "<<" "<")) (key-combo-define-local (kbd ">") '(">" " >= " " >>= " ">")) (key-combo-define-local (kbd "=") '("=" " = " " == " "==")) (key-combo-define-local (kbd ":") '(":" " :: " "::")) ))
key-comboも正しくadd-hookさせる
そこで、以下のように書き換えます。
;; 36_haskell.el ;; key-comboの設定用関数 (defun my-haskell-key-combo () (key-combo-define-local (kbd "-") '("-" " -> " "--")) ;; (key-combo-define-local (kbd "<=") '("<=")) (key-combo-define-local (kbd "<") '("<" " <- " " <= " " =<< " "<<" "<")) (key-combo-define-local (kbd ">") '(">" " >= " " >>= " ">")) (key-combo-define-local (kbd "=") '("=" " = " " == " "==")) (key-combo-define-local (kbd ":") '(":" " :: " "::")) ) ;; 後でまとめてadd-hookするための関数 (defun my-haskell-add-hook () (turn-on-haskell-indentation) (font-lock-mode) (my-haskell-key-combo) )
;; init.elの最後 (custom-set-variables '(haskell-mode-hook 'my-haskell-add-hook) )
これで、無事にkey-comboがうまく動きました。
XMorgDown:マインドマップをOrgやMarkdownに変換するスクリプト
XMindのマインドマップ(.xmind)をPandoc経由でいろんなドキュメント形式に変換するRubyスクリプトを作りました。
ダウンロード先:sky-y/xmorgdown · GitHub
- 対応ソフト:XMind 3.2(日本語版): ブレスト(ブレインストーミング)・マインドマップ作成ソフトウェア XMind [エックスマインド]
- *注意*: XMind 2012 (最新版) は日本語入力の面でバグがあります。当面はXMind 3.2を使用してください。
Pandocで出力できるドキュメント形式
HTML formats: XHTML, HTML5, and HTML slide shows using Slidy, Slideous, S5, or DZSlides. Word processor formats: Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML Ebooks: EPUB Documentation formats: DocBook, GNU TexInfo, Groff man pages TeX formats: LaTeX, ConTeXt, LaTeX Beamer slides PDF via LaTeX Lightweight markup formats: Markdown, reStructuredText, AsciiDoc, MediaWiki markup, Emacs Org-Mode, Textile
必要なライブラリ・ソフトなど
- Ruby 1.9.3 以上
- rvmの使用をおすすめします
- Pandoc 1.9.4.2 以上
- インストール方法はこちらを参照: Pandoc - Installing
- いずれかの方法でインストールできます:
- Nokogiri (Ruby用XMLパーサ)
- インストール方法はこちらを参照: Nokogiri
- homebrew 0.9 は問題があるので、上記のURLを読んでください
- zipruby (winebarrel / Zip/Ruby / wiki / Home — Bitbucket)
- 以下のコマンドでインストール: gem install zipruby
- rvm使用時に動作しない場合は、rvmのバージョンをよく確認してください
使い方
$ ruby XMorgDown.rb [options] input.xmind -o, --output FILE 出力ファイル名 -t, --to=FORMAT 出力フォーマット: markdown, org, html, latex, rst, ... -w, --write=FORMAT 同上 --pandoc-options=OPTIONS Pandocのその他のオプション ("--atx-headers"のように二重引用符でくくってください) -h, --help 簡単なヘルプ
- フォーマットとPandocのオプションについては以下を参照:
使用例
サンプルファイルは samples/ ディレクトリにあります。
Example 1 (寿限無)
ruby XMorgDown.rb -t markdown -o test1.md samples/test1.xmind --pandoc-options="--atx-headers"
- Markdown形式(ATX-headeredスタイル)の"test1.md"を生成します
テスト用ファイル
- 元のXMindファイル: test1.xmind (test1.png as image)
- サンプル出力 (Org File): test1.org
- サンプル出力 (Markdown File): test1.md
オプション "--atx-headers"の意味: HTMLヘッダ "<h1>" と "<h2>" に相当するMarkdown出力として # と ## を使ったスタイルを使います
-
- これを付けない場合は、下線を使ったヘッダ形式がデフォルトになります
Example 2 (Lorem Ipsum)
ruby XMorgDown.rb -t org -o test2.org samples/test2.xmind
- Org-modeスタイルの"test2.org"を生成します
テスト用ファイル
- 元のXMindファイル: test2.xmind (test2.png as image)
- サンプル出力 (Org File): test2.org
- サンプル出力 (Markdown File): test2.md