sed でファイルをリネームする

この Pelican で作っている blog の設定を少し変更したため、記事ファイルをリネームする必要が出てきました。これまでは 2014-0817-2330_43.rst というふうにファイル名に日付と時刻を入れて slug として通し番号をつけていました。

Pelican では entry のメタデータをファイル名の文字列から引っ張ってくることができるので、この blog でもそのようにしてみます。こちらの blog で解説されていました。

設定自体は簡単で pelicanconf.py に下記のように追加するだけです。

FILENAME_METADATA = r'(?P<date>\d{4}-\d{2}-\d{2})_(?P<slug>.*)'

日付の年月日と slug 文字列をアンダーバーでつなぐ形になります。こんな感じ 2014-08-17_43.rst です。

ファイルをリネームする

もとのファイル名にも日付と slug ...

more ...

Mac OS X 10.9 Marvericks インストールメディアを作る

これまでのやり方では通用しないらしい できないっぽかった。

Terminal.app からコマンドを入力する Tab で補完が効くので恐れることはない

more ...

眼の負担を軽減するためにフォントを大きくする

Camlspotter さんのエントリ Haskell の話から引用

more ...

VDT タイマーで身体を労ろう

仕事中も自宅でも、ほぼ一日中パソコンの前にいるような生活を送っているので、どうしても眼精疲労や肩、腰の痛みが気になります。

適度に休憩をとったほうがいいと頭ではわかっていてもついついおろそかにしがちだったのですが、今日からは VDT タイマーを導入してこのソフトに言われたら必ず休憩するようにしました。

VDT Timer

30 分から 90 分までの間隔を設定して、時間になると「座ったままでできるストレッチ」の説明が書かれた画像を表示してくれます。作者の方は医師ということもあり、このツールを使用した場合の影響について実験(?)などを行っているそうで、一定レベル以上の望ましい効果があるということもすでに明らかになっているそうです。

VDT Timer stretch

このような画像が表示されます

これはなかなか便利なのでおすすめです。私は会社で使っている Windows マシンにも入れています。自分の身体は自分で守るしかないですからね。

more ...

Emacs から shell コマンドを実行する

先日知ったのですが Emacs でファイルを編集していてちょっとだけ shell でコマンドを打ちたいというときには M-! とすればよいみたいですね。

ターミナルや iTerm に切り替えるほどではなく、eshell などを立ち上げるのは手間である、そういうときに上記キーバインドを入力するとミニバッファでコマンドを実行できるのです。

alt

ミニバッファで

alt

シェルのコマンドを

alt

入力して

alt

実行できるのです。

使用例としては Emacs で Python を書いていて、少し変更を加えたので実行したいというときに Emacs からターミナルへと意識をスイッチする必要がなく、その場でちょこちょこと実行できるのが便利でした。

more ...

Sphinx で自分用のドキュメントをまとめる

勉強していることや調べていることについて自分用に情報を整理してまとめておきたいと思うことがあり、Sphinx を使うことにしました。 これまではローカルで org-mode で書いたり、Google Docs 、Google sites を使ったり、ブログサービスで非公開のブログを作ったり、非公開の Wiki を作ったりといろいろ試してきましたが、機能、編集の容易さ、データの保守性などを考えるとどれも一長一短でなかなか難しいところです。

求める条件というか考えていたポイントとしては

  • ページ間でリンクを張れる
  • コンテンツと見た目の分離
  • 非公開設定ができる
  • データのバックアップが取れる
  • 長期にわたって利用できる

などがあります。 Google Sites あたりは一見よさそうだと思ったのですが、WYSIWYG は見た目の統一を図りそれを維持することが困難だと感じました。。

結局のところ Sphinx なら Pelican と同じように reST で書けるし、上記の条件はいずれもクリアしているだろうと判断してやってみることにします。

Sphinx のインストール、プロジェクトの作成などは Sphinx-Users.jp を見ながらやればそんなに難しいことはないかと思います。

テーマを変更

デフォルトのテーマだと少し色合いが暗いのでテーマを変更します。

more ...

Pelican のテーマを変更する

この blog のテーマ(外観)を変更しました。下に紹介している blog.rdtr.net さんのエントリを参照しながらちょこちょこっと作業するだけで、簡単でした。

まずテーマファイルを GitHub からダウンロードします。私の場合はこの blog のコンテンツを置いているディレクトリ osanaiorg と同じ階層に themes というディレクトリを作ってそこにテーマファイルを置くことにしました。この blog とは別に他のテーマで blog を作る事になった場合に共有できるからです。

content, output などがある階層でシェルから下記のコマンドを実行します。ディレクトリ themes は予め作っておく必要はありません。

git clone --recursive git://github.com/getpelican/pelican-themes ../themes

http よりも git プロトコルの方が高速だという話を読んだ気がするので git:// を使用してみましょう。現時点で 63 くらいのテーマが公開されています ...

more ...

Emacs scratch バッファの内容を保存しておいて読み込む

Emacs を起動したときに最初に開かれる scratch というバッファがあります。 temporary な内容をちょっとメモしておくのに使ったりしていますが、間違って Emacs を終了してしまった場合などにバッファの内容が失われてしまう点がネックとなっていました。

scratch バッファを使わずに別途即座に使い捨て用途のファイルを開く、open-junk-file.el という elisp もあり、私も便利に使っていますが、それでもたまには scratch に何かを書いておきたくなることがあります。

少し検索したところ Emacs 終了時に scratch バッファの内容をファイルに保存して、次回起動時にその内容を読み込んで scratch バッファを復元する elisp を公開している方が見つかりました。

保存するファイルのパスだけ変更して、init.el に書き加えました。

;; scratch バッファの内容をファイルに書き出して保持する
(defun save-scratch-data ()
  (let ((str (progn
               (set-buffer (get-buffer "*scratch*"))
               (buffer-substring-no-properties
                (point-min) (point-max))))
        (file "~/.emacs.d ...
more ...