トップ «前の日(01-19) 最新 次の日(01-21)» 追記   RSS 1.0 FEED  

Journal InTime


2002-01-20 (Sun)

_ OPtMAN

行き付けの眼鏡屋さんが新しい店を出すために本店(?)を閉めるというので、 ワインとソムリエナイフ(780円のわりに結構かっこよかった)を持って行った。

やっぱりまた風邪がひどくなりました。


2005-01-20 (Thu)

_ 汚染状態の伝搬

分かってると思うけど、

汚染されている文字列や 汚染されている文字列を指しているオブジェクトから to_sとかinspectとかで生成される文字列は汚染される.

[雄也の?日坊主日記(2005-01-19)より引用]

というのは常に成り立つわけじゃないよね。

class Foo
  def initialize(s)
    @s = s
  end
end
f = Foo.new("abc".taint)
s = f.to_s
p s             #=> "#<Foo:0xb7d5a778>"
p s.tainted?    #=> false
s2 = f.inspect
p s2            #=> "#<Foo:0xb7d5a778 @s=\"abc\">"
p s2.tainted?   #=> true

重要なのは、fが「汚染されている文字列を指している」かどうかではなくて、 to_sやinspectが汚染されている文字列を使うかどうか。 上の例だと、to_sには@sの値はまったく使用されないので、汚染が伝搬しない (する必要がない)。

Tags: Ruby

2010-01-20 (Wed)

_ シェルスクリプトの引数を一部加工して他のコマンドに渡す

シェルスクリプトの引数を一部だけ加工して他のコマンドに渡すには、どうすればいいだろう。

たとえば、UTF-8でパターンを受け取り、EUCのファイルをgrepで検索し、結果をUTF-8で出力するようなシェルスクリプトeucgrepを作りたいとする。

bashだったら配列を使って以下のように書けるようだ。

#!/bin/bash

declare -a options

while expr "$1" : "^-" > /dev/null ; do
    options=("${options[@]}" "$1")
    shift
done 
pattern=`echo $1 | nkf -Wexm0`
shift
grep "${options[@]}" $pattern "$@" | nkf -Ewxm0

POSIXの範囲で同じことを実現できるだろうか。

_ Developers Summit 2010

今年は、「C++0x、Ruby、ECMAScript5 言語の国際標準化について」というパネルディスカッションに参加させていただくことになった。

技術的な話が中心になると思うので、興味がある方はどうぞ。

Tags: Ruby
本日のツッコミ(全2件) [ツッコミを入れる]

_ knu [POSIXの範囲だと配列は一本しかないのできついですね。 語彙が"$@", set -- ..., shift [N..]

_ shugo [なるほどー、evalですか。]


2018-01-20 (Sat)

_ Viterbiのキー配列

画像0

試行錯誤の結果、いったん以下のキーマップに落ち着いた。

,----+----+----+----+----+----+----.    |,----+----+----+----+----+----+----.
 ESC ,GRV , 1  , 2  , 3  , 4  , 5  ,    |  6  , 7  , 8  , 9  , 0  ,MINS,EQL ,
|----+----+----+----+----+----+----|    ||----+----+----+----+----+----+----|
 HOME,TAB , Q  , W  , E  , R  , T  ,    |  Y  , U  , I  , O  , P  ,LBRC,RBRC,
|----+----+----+----+----+----+----|    ||----+----+----+----+----+----+----|
 END ,LCTL, A  , S  , D  , F  , G  ,    |  H  , J  , K  , L  ,SCLN,QUOT,ENT ,
|----+----+----+----+----+----+----|    ||----+----+----+----+----+----+----|
 PGUP,LSFT, Z  , X  , C  , V  , B  ,    |  N  , M  ,COMM,DOT ,SLSH,BSLS,RSFT,
|----+----+----+----+----+----+----|    ||----+----+----+----+----+----+----|
 PGDN,DEL ,INS ,LALT,LGUI,LOWR,SPC ,    | BSPC,RASE,LEFT,DOWN, UP ,RGHT,RCTL
`----+----+----+----+----+----+----'    |`----+----+----+----+----+----+----'

最初はTABの左にINS、LCTLの左にDELを入れていたが、ミスタイプした時のダメージが大きいのでHOMEとENDにした。

1段目(数字キーの段)は普通のキーボードよりかなり右寄りになるので、一つ左のキーを間違えて押してしまいがち。 1段目はT-Code専用にして、数字や記号はRaise/Lowerで入れるようにした方がいいかもしれない。

_ クッションゴム

画像1

ケースの底にナットとネジの先端が出っ張っていて机に傷が付きそうなので、セリアのDIYコーナーで購入したクッションゴムを付けておいた。 クッションゴムの厚みが3mmなのでちょうどよかった。