2010年10月30日土曜日

Bloggerでソースコードの色づけ

追記:

この記事は説明不足だった。検索で出てくると迷惑なので追記しておく。 Syntax HighlighterのBloggerへの導入は Blogger に Syntax Highlighter ガジェットを追加する方法を参照すればOK。さらに注意として、私のブラウザ環境の場合、ダウンロードしたblogger.htmlファイルはInternet Exprolerで開かなければAdd to Bloggerボタンが表示されなかった(ChromeとFirefox 4.0ではエラーになる)。

本文:

  • google-code-prettify 
  • Syntax Highlighter
の二つがある。

google-code-prettifyは、クリボウの Blogger Tips: コードをハイライトする「Code Prettify」ウィジェットを参照。

Syntax Highlighterは、クリボウの Blogger Tips: コードをハイライトする「Blogger Syntax Highlighter」ウィジェット を参照。

この二つは共にJavascriptで書かれたクライアントサイドから汎用的に使うことが出来るライブラリ(google-code-prettify - Project Hosting on Google CodeSyntaxHighlighter)で、Bloggerウィジェット/WordPressプラグインなどはこのライブラリをそのまま利用して機能を実現する形となっている。

以下、Blogger Syntax Highligherウィジェットによるコード色づけ例。こちらの方が表示が綺麗なので、こちらを採用。後でウィジェット内のCSS設定してキーワード・構文毎の色づけとかもっと細かくできるようにしたい。

class Foo (object):
  def __init__(self, bar):
    self.bar = bar

  def egg(self):
    print("egg")

foo = Foo()
foo.egg()

2010年10月29日金曜日

IPython 0.11.alpha1.git

このIPython最新版では、設定ファイルの書式がかなり変更されているようだ。
以下に最新のチュートリアルが用意されている。
IPython Documentation

Windows上でipython-qtconsoleを使う

とりあえずのメモ。QtコンソールからIPythonシェルが使えると、リッチなUIでかつWindows上のreadlineの問題を考えなくてすむようになるので、是非とも誰もが導入できるようにしておきたい。

まず基本となるIPythonの取得先。
`ipython`コマンドで通常起動するだけならこれだけでOK。`ipython-qtconsole`コマンドでQtコンソールを起動したい場合には追加ライブラリのインストールが必要となる。必要なライブラリと取得先は以下。 IPython/PyQt4はWindowsインストーラで導入できる。zmqはVisual Studioでビルドしなければならないので少し手間がかかる。pyzmqは先にビルドしたzmqのヘッダーファイル・ライブラリファイルの位置をsetup.cfgで設定する必要があるので注意。

追記:

例のこのサイトからzmqライブラリのバイナリが付属したpyzmqのWindowsインストーラを持ってくることが出来るようだ。これを使えば導入も簡単だと思われる。

Windows上にreadline/IPythonを導入する

以下、まだ書きかけ、とりあえずメモ。

自分でパッチ当てする箇所があったりして何かと手間取ったのでメモ&改変コード公開しておく。

pyreadline

PyReadline/Intro - IPython
インストールは、リポジトリからbzrでソースコードを取得して`python setup.py install`するのがお勧め。
bzr branch lp:pyreadline 
面倒な場合は、Windowsインストーラも配布されているのでこれを使えばOK。
pyreadline - a python replacement of readline in Launchpad

2010年10月28日木曜日

BloggerでJavascriptコード埋め込み

Javascriptコード埋め込みのテストとして、ボタン+クリックカウンタ。

ブログエントリ内にscriptも含めてHTMLのタグは全て入れ放題となっている。XSSなどのセキュリティ上の危険は全て自己責任で、ということみたいだ。

PythonのfileとTextIO

以下、まだ書きかけ。

Python2とPython3で変更になった部分なのでメモしていく。 まず、Iterableインターフェイスを持つことは変わっていないので、ユーザから見ると使い方は同じということは指摘しておく。(余談: OS上にあるファイル・ストレージを扱うためには、この外部イテレータ方式の方が汎用性があるし、分かりやすくもあるので望ましいと思う。破壊的操作可能なコレクションの場合も、これももう単なる一種のストレージであるので、同じこの方式で良いと思う)

`sys.stdin`はPython2/3共に`Iterable`となる。
$ isinstance(sys.stdin, Iterable)
True

`sys.stdin`のtype(class)はPython2では`file`だったが、Python3では`TextIO`扱いとなっている。これはUnix的な「ファイル(file)」では区分けが曖昧すぎるからということだろう。実際、Javaではストリーム関連のクラスはかなり細かく区分されていた。
Python2の場合:
$ type(sys.stdin)
<type 'file'>

Python3の場合:
$ type(sys.stdin)
<class '_io.TextIOWrapper'>

2010年10月21日木曜日

WordPress: ヘッダー画像の新規追加

WordPressのヘッダー画像の変更が上手くいかないので、手動で追加でもOKとしておく。具体的には、`themes/twentyten/functions.php`内の`register_default_headers`のarrayに新規要素を追加する。面倒だが、サムネイル画像も手動で作成する。ヘッダー画像を変更することは少ないのでこれでもまあいいだろう。

Numpy/ScipyをWindows上でビルド・インストール

かなり気合い入れてやってみる必要があるのだが。数値計算系ツールは最適化に時間がかかるのかLAPACK/ATLAS共にものすごくビルドに時間がかかる。エラーも出やすくて本当に大変。

LAPACK/ATLASをCygwinでビルド

http://www.db.is.kyushu-u.ac.jp/rinkou/cygwin/atlas.html
が非常に参考になる。スクリーンショットつきで丁寧に解説。

LAPACKは線形領域の制約ソルバー、BLASは線形代数(行列計算)用のコア演算APIライブラリ仕様、ATLASはその仕様に対して各環境向けに自動最適化される実装ということ。

* LAPACK: http://www.db.is.kyushu-u.ac.jp/rinkou/cygwin/lapack.html
* ATLAS: http://www.db.is.kyushu-u.ac.jp/rinkou/cygwin/atlas.html

* 1. LAPACKのビルド
Cygwin用にパッチ当てしなければならない。ATLASのビルドで生成されるファイルの不足によるエラーは無視してとりあえずそのままインストール。

* 2. ATLASのビルド
途中で`3dnow_install.exe`の実行によりエラーが出てしまうので、このexeは削除して再実行。3dnowはAMD向けだからエラーが出たと思われる。

* 3. LAPACK再ビルド

* 4. Numpy/Scipyのビルド

Numpy/Scipyのビルド

本サイトとの説明
http://www.scipy.org/Installing_SciPy/Windows
を読んで進めるのみ。

Windows7のシステムフォントを変更する

これもWindows7ではレジストリを書き換えることで簡単にできるようだ。

これも詳しくは以下のサイトだけでOKだろう。Windows7(64bit)となっているが32bit版でも有効だった。
萌えないごみの日: Windows 7 (64bit) でシステムフォントの全入れ替え!:

当然ですが編集するまえに該当キーをエクスポートしておいてくださいね。
失敗したときも一撃で元に戻せるってのは安心感が違います。
書き換えるレジストリキーの位置は、
HKEY_LOCAL_MACHINE
\SOFTWARE
\Microsoft
\Windows NT
\CurrentVersion
\FontSubstitutes
ここでのミソは
MS系とかメイリオ系以外にも
Segoe やら MSSansSerif やら Tahoma まで
まとめて置き換えてるとこです。

追記:


上の記事の変更箇所だけでは不十分であることが分かった。レジストリの変更箇所についてさらに詳しく書かれてある以下の二つの記事を参考に。

コマンドプロンプトのフォントを変更する

レジストリいじれば簡単にできるのだった。これで、MSYSやPowerShellなどのプロンプトを使うWindowsのコンソールアプリをMSゴシック以外の綺麗なフォントで表示することができる。

まず、Windowsのレジストリ操作のためにはもちろん標準のレジストリエディタ(「ファイル名を指定して実行」からコマンド`regedit`で起動)でも良いのだが、ここではより高機能で便利なツールである『激動たる俺RegEdit改』を勧めておく。
激動たる俺RegEdit改
からダウンロードして実行。基本的な使い方は標準のものとほぼ同じなので説明は省略。


で、詳しいことは私が説明するまでもなく以下のサイトを参考すれば良い。
cmd.exe(コマンド プロンプト)のフォントを変更する

必要な作業も簡単で、レジストリキー: '932'に設定してある'MSゴシック'という文字列を別のフォント名に変更するだけ。ただし、設定するフォントは等幅でないと駄目なので注意(メイリオとかはフォント設定しても選択が無効となる)。参考にしたサイトでは「Osaka等幅」の入手方法も書いてあるので、普通はこれを設定すれば良いだろう(ちなみに私はIPAゴシックを使っている)。

あと、これは気付かない人もかなり多いと思うので注意しておくが、コマンドプロンプトのオプションは、「タイトルバーを右クリックしてから"プロパティ"を選択」で行うことができる。ダイアログが開いた後に"フォント"タブを選択すると、デフォルトでは『MSゴシック』だったフォントが別のフォントになっているので、これを選択すれば綺麗にフォントが表示されるようになる。

2010年10月13日水曜日

SSH接続のための前準備

暗号通信のためにOpenSSHの公開鍵生成とか色々と設定。
http://sites.google.com/site/himazu/ssh-on-cygwin
を読むだけでOKだろう。

Cygwinでも、`ssh-host-config`するだけでOK。全部の質問にはyesと答えればよい。SSH鯖をCygwin側に立てる場合には管理者権限で実行しないとWindowsサービスへの登録がエラーとなるので注意。

このブログの方針

  • 日記ではない
  • できるだけ詳細な事実だけを記述していく。意見・感想はなるべく書かない
  • 技術の話題ならば、メモ的な短いものでも可