2017-07-26

Inkscape 0.92 changes px/inch

Inkscape 0.92になって, 1インチあたりのpxが90から96に変更された. これに伴って, 古いInkscapeで作成したSVGファイルを開くと
Old Inkscape files use 1in == 90px, CSS requires 1in == 96px.
Drawings meant to match a physical size (e.g. Letter or A4)
will be too small. Scaling the drawing can correct for this.
Internal scaling can be handled either by setting the SVG 'viewBox'
attribute to compensate or by scaling all objects in the drawing.
というメッセージが出るようになった.

私の場合は, 回路図などを単位をpxにして10pxグリッドで描いていた. その設定を維持したかったので, Ignore を選べば良いことが分かった. あるいは, SVGをエディタで編集して, svgタグの属性inkscape:versionを以下のように書き換えてもOK.

inkscape:version="0.92+devel unknown"

2017-07-01

with構文で定義したターゲット変数のスコープ (Python)

この記事でwith構文と等価なtry-finally文が紹介されていたのを読んで, ターゲット変数のスコープはどうなるのだろうと思って確かめてみた.

以下のように, with構文を出た後でもターゲット変数 f にはアクセスできるようだ.

>>> with open('/tmp/x.dat', 'w') as f:
...  print f
...  f.write('hello\n')
... 
<open file '/tmp/x.dat', mode 'w' at 0x7f9eaf982c00>
>>> print f
<closed file '/tmp/x.dat', mode 'w' at 0x7f9eaf982c00>

上記は, Python 2.6.6 で試した.