! tdiaryの更新
本日、Webサーバーの更新が行われた。rubyは1.8.5になったので、新しいtdiaryにした。見た目はほとんど変えていないが。ようやく基本的な設定が終わって、昔のデータも移し終えた。ユーザー権限では、apacheが作成したデータを書き換えられないので、細かい設定がうまくいかずに苦労した。新しいプラグインも使えると思うので、何か面白いものがないか探してみようと思う。少しずつスタイルを調整していこう。
! tdiaryの更新
本日、Webサーバーの更新が行われた。rubyは1.8.5になったので、新しいtdiaryにした。見た目はほとんど変えていないが。ようやく基本的な設定が終わって、昔のデータも移し終えた。ユーザー権限では、apacheが作成したデータを書き換えられないので、細かい設定がうまくいかずに苦労した。新しいプラグインも使えると思うので、何か面白いものがないか探してみようと思う。少しずつスタイルを調整していこう。
webサーバーの更新
もうすぐ、このblogを動かしているサーバーが更新される。rubyも1.6から1.8になるようなので、新しいtdiaryを入れようと計画している。しかし問題なのは、データの移行である。まだtdiaryのデータ構造を理解していなので、この記事を投稿したときに、どのファイルのサイズが変化するか調べてみよう。
2010/5/30追記 201005.td2のサイズが変わったので、このバイナリが本文を記録しているファイルらしい。
ttf-mscorefonts-installer
久しぶりにWindows用のソフトを使わざるを得なくなったので、仕方なくwineでインストールした。いざソフトを起動すると、いくつかのフォントが無いと言われた。aptitude searchでfontとmsで検索すると、ttf-mscorefonts-installerというものが見つかったので、インストールしてみたら、フォントが無いというエラーは無くなった。これでwineでうまく動くと良いな。
ループは無視か
久々にAVRをいじって、制御用の装置を作っている。tiny2313をつかっているのだが、waitをかけるのに苦労した。昔はひたすらループを作っておいて、適当な時間になるように調整したら、うまくいった気がするのだが、なぜか数マイクロ秒しかかからない。コンパイラが最適化してしまってうまくいかないのかな。仕方が無いのでタイマーを使おうとしたが、割り込みを禁止していたので、うまく動かない。いろいろと調べていたら、ウェイトをかけるルーチンがあるようだ。
#define F_CPU 1000000 /* 1MHz */ #include <util/delay.h>
と宣言しておくと、_delay_us(100)とすると、マイクロ秒単位でwaitが指定できる。_delay_msも使えるようだ。これを使ったら、思ったとおりの挙動をしたが、装置の完成にはもう少し調整が必要なようだ。
数値に関するコマンドの違い
数値に関するpythonとrubyコマンドをまとめてみた。通常の演算を除くと、意外に少ないが、これ以外にもいろいろとあると思う。
python | ruby |
n=9999999999L | n=9999999999 |
0177 | 0177 |
0xff | 0xff |
3+4J | Complex(3,4) (require "complex") |
oct(314) | 314.to_s(8) |
hex(314) | 314.to_s(16) |
int('111',8) | '111'.to_i(8) or '111'.oct |
int('111',16) | '111'.to_i(16) or '111'.hex |
文字列に関するコマンドの違い
文字列に関するpythonとrubyコマンドをまとめてみたが、文字列操作はややこしく、表では表しきれていない部分も多い。
python | ruby 1.8 and 1.9 |
s="2010's" | s="2010's" or %Q(2010's) |
s='"2010"' | s=%Q'"2010"' |
s=r'c:\user' | s='c:\user' or %q(c:\user) |
s=u'\u9300' | s="\u9300"(1.9) |
s=u'\U00028b46' | s="\u{028b46}"(1.9) |
s="%dK,%fPa"%(273,1024) | s="%dK,%fPa"%[273,1024] |
s="""first | s="first |
second"""" | second" |
s[2] | s[2,1] or s[2].chr(1.8) and s[2](1.9) |
s[1:3] | s[1...3] or slice(1...3) |
len(s) | s.size or s.length |
int("1") | "1".to_i |
float("3.14") | "3.14".to_f |
s.count('0') | s.count('0') |
s.capitalize() | s.capitalize |
s.swapcase() | s.swapcase |
s.upper() | s.upcase |
s.lower() | s.downcase |
s.center(10) | s.center(10) |
s.ljust(10) | s.ljust(10) |
s.rjust(10) | s.rjust(10) |
s.strip() | s.strip |
s.lstrip() | s.lstrip |
s.rstrip() | s.rstrip |
s.find('1') | s.index('1') |
s.rfind('1') | s.rindex('1') |
s.split(',') | s.split(/,/) |
",".join(["a","b"]) | ["a","b"].join(",") |
s.replace('a','A') | s.gsub!(/a/){'A'} |
s.replace('a','A',1) | s.sub!(/a/){'A'} |
連想配列に関するコマンドの違い
昨日に引き続き、いわゆる連想配列に関するpythonとrubyコマンドをまとめてみた。
python | ruby |
d={'a':1,'b':2} | h={'a'=>1,'b'=>2} |
d['a'] | h['a'] |
d.has_key('b') or 'b' in d | h.has_key?('b') or h.key?('b') or h.include? or h.member? |
d.keys() | h.keys |
d.values() | h.values |
d.clear() | h.clear |
d.copy() | h.clone |
d.get('c',0) | h.fetch('c',0) |
d.update(d1) | h.update(h1) |
len(d) | h.size or h.length |
del(d['b']) | h.delete('b') |
d.items() | h.to_a |
d.popitem() | h.shift |
配列に関するコマンドの違い
久々にpythonの勉強を再開した。頭がrubyで硬度9ぐらい固いので、なかなかpythonが覚えられないが、クネクネと柔らかくしていかなければならない。今回は、いわゆる配列に関するコマンドをまとめてみた。
python | ruby |
l=['0','1','2'] | a=['0','1','2'] or %w(1 2 3) |
l[1] | a[1] |
l[1:2] | a[1...2] or a.slice(1...2) |
len(l) | a.size or a.length |
l.append('3') | a.push('3') or a<<'3' |
l.pop() | a.pop |
l.extend(['3','4']) | a.concat(['3','4']) |
l.sort() | a.sort! |
l.index('2') | a.index('2') |
l.reverse() | a.reverse! |
del(l[1]) | a.delete_at(1) |
del(l[1:2]) | a.slice!(1..2) |
l.insert(1,'0.5') | a.insert(1,'0.5') |
l.remove('1') | a.delete('1') |
'3' in l | a.include?('3') |
uimを非表示にする
OSとしては、debian lennyとubuntu 9.04を主に使っている。デスクトップ環境としては、ともにLXDEを使っているのだが、デフォルトの設定が若干異なっている。例えば、日本語の入力の切り替えには、debianはuimを、ubuntuはscimを使っている。ubuntuでは、日本語入力しないときには、ツールバーが表示されないのだが、debianでは表示される。通常はこれで困らないのだが、全画面表示で使用する時には、これが邪魔になることがある。そのような場合には、
im-switch -s uim-systray
を実行すると、ツールバーがパネルの中に組み込まれて、全画面表示の時には現れなくなる。一度logoutする必要があるが。もとの状態に直したければ、uim-toolbarを指定すればよい。
macutils
最近はbase64が浸透してきたが、macユーザーの人の中にはbinhexを使い続けている人も多い。binhexを展開するときに、以前はlinux版のStuffitExpanderを使っていたが、GNUでやりたいとは思っていた。調べてみると、debianにはmacutilsというパッケージがあって、それをインストールすれば、binhexを展開できるらしい。
hexbin -d filename
とすると、data forkだけを取り出せる。拡張子の.dataを変更すれば、OKです。