2010/01/23

cario letter a4 lenny

実家にはパソコンがあるんですがプリンタがありません
母親が印刷したいと言いだしました
何なら印刷して送ってこいという勢いです
しかし我が家にもプリンタは無いのです

近頃のコンビニは凄いよなと思いつつ
最寄りのコンビニであるセブンイレブンのページを見ると
コンビニでのサービス ネットプリント 富士ゼロックス
ネットにファイル上げといてコンビニで印刷できるみたいです
ちなみに、我が家の最寄りのコンビニは USB メモリが挿せます

印刷したい内容はメールでもらっていたので Firefox から PDF に
で、ゼロックスのページのアカウント取って
先ずは添付されてた画像を登録したら用紙聞かれたので A4 を選択
次に PDF をアップロードしたらエラーに
「使える用紙は A4 とかだよ」
なんて言ってきます
$ pdfinfo mozilla.pdf 
Creator: cairo 1.7.4 (http://cairographics.org)
Producer: cairo 1.7.4 (http://cairographics.org)
Tagged: no
Pages: 1
Encrypted: no
Page size: 612 x 792 pts (letter)
File size: 73537 bytes
Optimized: no
PDF version: 1.5
あら、確かに letter になってるわ

何で画像のときは紙のサイズ聞いてきたのにさ、と思いつつ
Firefox の印刷画面をもう一度見ると確かに紙の指定のラジオが無い
昔はあった気がするんだけどと思いつつググりました
「firefox 印刷 pdf letter a4」で検索したんだけど良く分からず
「cario letter a4 lenny」で検索すると
#383455 - firefox: prints always in letter format - Debian Bug report logs
うん、なんか、皆悩んでいらっしゃる

斜め読みしても何かあーだこーだ言ってるっぽくって
最後まで斜めってしまったら prefs.js とか言っている
そーかーと思って about:config 開いて letter で検索して
出てきたの片っ端から A4 にしてやったら無事 A4 になりました

ちょっと、乱暴だったかしらと反省
最悪の場合
$ ps2pdf -sPAPERSIZE=a4 mozilla.ps mozilla.pdf
かなーと思ってたんで、よかった

2010/01/22

excel 連続した

手元にある紙に書かれたデータを Google SpreadSheet に載せたいと思い
日付毎に数値があるんで最初日付を一つずつ入れていたんですが
これは絶対にオレのやる仕事じゃない!! と思いまして
検索してみました
excel ってあるのは、まぁエクセルと同じだろうってことで

エクセル連続番号を入れる技
なるほど!! 確かにセルを選択すると右下に四角が
こんなの使ったことなかったぞ

でまぁ、なんか、右端掴んでみたら上手くいきました
表計算ソフト恐るべしっ

2010/01/04

"信頼できる発行元"

エクセルのファイルを受けてることがあるんですが
マクロとか入ってると最初無効にされるんですよね
で色々調べると例えば信頼したフォルダに入れとけば
マクロが最初から有効になったりするらしいです

で、そうでなければマクロに署名してあればいいみたいで
そうすると
エクセル2007のマクロセキュリティ - 遊・集・楽
にあるような

こんな画面になって「"信頼できる発行元"」って

署名とか発行元とか聴いちゃうと認証局? って思っちゃうんですが
そうじゃなくてファイル作った人なんですね
信頼できる発行元に関する作業
元の英語は "Trusted Publisher" でした
で、例えば信頼できる認証局から出てる証明書に辿れるような
証明書を用いて署名がしてあったとしても
最終的にエンドユーザーにその署名を認めるかって確認するみたい。

まぁ、そうか、正しいよな、認証局に全幅の信頼ってのも嫌だよな

2010/01/03

"doesdirectoryexist" socket

ディレクトリかどうか知りたいときってあります
$ ghci
Prelude> import System.Directory
Prelude System.Directory> doesDirectoryExist "/tmp/scim-panel-socket:0-foo"
True
Prelude System.Directory> getDirectoryContents "/tmp/scim-panel-socket:0-foo"
*** Exception: /tmp/scim-panel-socket:0-foo: getDirectoryContents: inappropriate type (Not a directory)
どないやねん

System.Directory を見てみると
s_isdir で判断してるらしいんだけどなぁ、よく分かんないなぁ
doesFileExist は doesDirectoryExist に not 取ってるみたいな感じ

でー、ググった、けど良く分からんかったけど Posix 思いだした
System.Posix.Files ってあった
Prelude> import System.Posix.Files
Prelude System.Posix.Files> status <- getFileStatus "/tmp/scim-panel-socket:0-foo"
Prelude System.Posix.Files> isDirectory status
False
Prelude System.Posix.Files> isNamedPipe status
False
Prelude System.Posix.Files> isSocket status
True
これかー

Windows とか良く知らないし
更に Posix な世界から出たことがあまり無い気がしてるんですが
あ、Windows のこととりあえず無視しておけばいいのか!!
や、System.Win32 ってのがあるのか...

2009/12/29

mac gear boot

Mac の調子が悪くなってしまいまして
起動すると最初に歯車みたいなのがクルクル回るんですが
その途中で止まっちゃう事態が発生

ちょっと持ち運んだときになってしまったのでもしかして
ハードディスクとかハードウェアの接触に不良が? と思って
ハードディスクは経年劣化もあったしシステムリフレッシュしたかったので
交換しようとしたら大変だったんですが交換できて解決しませんでした
残念

で、最初にやるべきだったメモリの抜き挿しをしたら少し良くなって
メモリ壊れたのか? メモリも増やしちゃうか!! なんて思ってました
でもなー、歯車クルクルの裏で何起きてるんだったかなー

ってここまですっかり忘れてたんですが
あの歯車クルクルではなくコンソールの表示も見ることもできるんですよね
あのクルクル出してるのは openfirmware っていう
パソコンでいうところの BIOS みたいなやつ? の機能でして
OS X からなら nvram ってコマンドで色々とパラメータ設定できます

例えば
$ sudo nvram boot-args="-v"
ってすると
起動時に verbose = 歯車でなくて黒いコンソールで白い字 が出てきます
Mac でこの画面見るとちょっとギョっとしますが

boot-apgs をいじらなくても
起動時に Command + v すれば、その起動のときだけ verbose にできます

つわけで仕掛けたので、今度起動に失敗したら原因が分かる、かも??

sphinx doctree

2010/08/09 追記:
@shibukawa
http://blog.shibu.jp/article/40049067.html
何か作ってくれてると
ステキ!!

Sphinx ついでに
Sphinx って reStructuredText って Wiki みたいな形式で文章書いて
make すると素敵にしてくれるって仕組みらしいんですが
これで HTML 作ってみると変にスペースが空くんですよ
っていうかそもそも HTML って変なスペース空くよね
Django の概要 — Django v1.0 documentation
ほら、「チュートリアルやリファレンス用ではあり ません」って
「り」と「ま」の間に空白入っちゃってるでしょ、これ改行なの

文章書いてたら改行するでしょ? え? しないの?

HTML は英語のこと考えて作ってあるからか、
や、どちらかというとブラウザの問題なんでしょうけど
改行があると表示するときに空白として扱うんですよね
日本語だったらブラウザが無視してくれればいいだけの話なんだけど
何とかしてよ、ブラウザ

と思ったら、IE7 は空白が無い!
Firefox, Opera, Chrome は空白になるのに
お前ら IE7 見習え!! (日本語のときの改行だけね)

で、今んとこ Firefox or Chrome を使っているので
空白嫌なら改行を無くすしかないなーと思いまして
ちょっと調べてみると docutils/parsers/rst/states.py の
RSTState class の paragraph って method で
        data = '\n'.join(lines).rstrip()
って改行入れてる
どっかで parse した段落の各行を lines に入れてて
この lines は indent は削除されているみたい
で、消された改行を復元してるのがココ

やっちゃいけないとは思いつつ直接いじっちゃいました、
        data = ''.join(lines).rstrip()
そしたら、
消えたよ! 改行が消えたよ!!
ひどいね! 英文引用とかだったらどうするんだろうね!!

でね、例えば、
Sphinx で language が ja で html を build するなら
この改行を消しちまいたいわけですよ

Sphinx で language って持ってますけど
多分 po file の処理にしか使ってなくて docutils には伝えておらず
print debug で確認もしてみたけどどうやら
Sphinx から呼ばれる docutils の language は en ぽくて
en にしてあるってよりは default が en ってだけなのかなぁ

一方で docutils も language って設定項目あるんだけど
これもやっぱり po file みたいなことをしてるだけみたい
まぁ self.document.settings.language_code は引けるので
それを元に join するところを場合分けするだけなんだけど

あと、html って RSTState に伝えるのはどうするのかなぁ〜
別に html を特別扱いしなくてもいいのかな?
改行要らないよね? そこまで

language_code で分岐くらいならまぁできそうなんだけど
Sphinx から docutils の language を指定するのが面倒になって
とりあえず放置することにしました
最悪改行無しの 1 行が凄い長い rst file を書けばいいんだしね!!

Shpinx の話でなくて docutils の話だな、これ

ちなみに pTeX は改行どうしてるかっていうと
行の最後と次の行の最初の文字の種類で
空白を入れるかどうか判断してるはずなんだけど
今試したら日本語で終わって日本語が始まったら改行無視で
その他の場合は空白を入れるっぽい
正しい
句読点とか禁則処理とかまでは面倒だから調べない

sphinx math

ドキュメント作るなら Sphinx が素敵って方々から聴いていまして
まぁ、興味があったんでちょっといじってみました
参考は渋川さんの
渋日記: Pythonって何?という人のためのSphinxインストール入門
渋日記: Pythonって何?という人のためのSphinxチュートリアル
渋日記: Pythonって何?という人のためのSphinxチュートリアル[2]
もぉ手取り足取りです

設定なんてエンター連打でとりあえずちょこちょこ書いてみてたんですが
ちょっと数式打ってみたくなって思いだしました
> pngmath: include math, rendered as PNG images (y/N) [n]: n
> jsmath: include math, rendered in the browser by JSMath (y/N) [n]: n
sphinx-quickstart でどっちも n と答えてしまった!!

でまぁ拡張なんで追加できるはずじゃん、追加すればいいじゃん
って思ったんですがドキュメントとか読むの面倒だしーと思いまして
新しく Sphinx のプロジェクト立てようとして
> pngmath: include math, rendered as PNG images (y/N) [n]: y
> jsmath: include math, rendered in the browser by JSMath (y/N) [n]: y
Note: pngmath and jsmath cannot be enabled at the same time.
pngmath has been deselected.
しっかり怒られました
conf.py を diff してみると
$ diff -u /tmp/conf.py ~/myproject/conf.py
(前略)
@@ -22,7 +22,7 @@

# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.pngmath', 'sphinx.ext.jsmath']
+extensions = []

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
(後略)
名前登録するだけだった、っつーかコメントに書いてあるじゃん

png より jsmath とか格好良いかなーと思ったんですが
ググって出てきた渋川さんの翻訳
Sphinxにおける数式のサポート — Sphinx v1.0 (hg) documentation
の jsMath のとこ見たら
jsMath(と必要なフォント)はかなり巨大です
確かにフォントを用意するのは嫌だな
HTML で提供すれば十分だから今回は逃げちゃおう
ということでささっと sphinx.ext.pngmath に転向

あ、ちなみに、LaTeX 環境は当然のように整ってるんだZE!!
debian lenny なら多分 texlive-latex-base が入ってれば OK なはず

で、こんな文章書いてみました
==========
超幾何級数
==========

超幾何級数 :math:`_2F_1` とはパラメータ :math:`a, b, c, z \in\mathbb{C}` に対し

.. math::
_2F_1(a,b,c;z) &= \sum_{n=0}^\infty \frac{(a)_n (b)_n}{(c)_n n!} z^n,\\
(\alpha)_n &= \alpha \dot (\alpha+1) \cdots (\alpha + n - 1)

で定義される。但し :math:`c\not\in\mathbb{Z}_{<0}` とする。この級数は :math:`|z|<1` で絶対収束し正則関数を定義する。
そして make すると
(前略)
pickling environment... done
checking consistency... done
preparing documents... done
WARNING: dvipng command 'dvipng' cannot be run (needed for math display), check the pngmath_dvipng setting
(後略)
おぉ、dvipng ってのが要りますか、入れますとも入れますとも
debian lenny だと dvipng ってのがあったんで aptitude install dvipng
再度 make したら

こんなになりました

ってこんなスムースにはいかず LaTeX の部分で少しエラーと格闘したんですが
math:: の場合は要するに amsmath の gather 環境につっこんでいるみたい
\mathbb も使えたので amssymb も usepackage されてる
で、conf.py に pngmath_latex_preamble で preamble が書けるみたいだし
math:: に :nowrap: って付ければ段落を gather 環境に入れないみたいだし
色々好き勝手できそう

でも、数式打つのには YaTeX か AUC-TeX 使いたいな
次は jsMath?