2014/04/06

vim syntax の syntax

syntax items

vim が理解する3つのタイプ
  • Keyword
  • Match
  • Region

優先順位

  1. 複数の Match や Region が同じ場所で始まった場合,最後に設定された item が優先される.
  2. Keyword は Match や Region よりも優先される.
  3. より前の位置で始まる item が優先される

Case

:syntax case [match|ignore]
Case sensitive or not.

Spell

:syntax spell [toplevel|notoplevel|default]
Syntax item のなかに入ってないテキストに対してスペルチェックをするかどうか.

Keyword

:syntax keyword {group-name} [{options}] {keyword} .. [{options}]
キーワードを設定.
  • group-name: keyword のグループ.(ex. Comment, Type)
  • keyword: syntax となる keyword
  • options: オプション.どこに来てもいい. 詳細は arguments を参照

Matches

:syntax match {group-name} [{options}] [excludenl] {pattern} [{options}]
  • group-name: match のグループ.(ex. Comment)
  • options: オプション.詳細は arguments を参照
  • excludenl: 行末 "$" を含むパターンに対して,行末以降まで拡張しない.
  • pattern: 正規表現のパターン

Regions

:syntax region {group-name} [{options}]
               [matchgroup={group-name}]
               [keepend]
               [extend]
               [excludenl]
               start={start_pattern} ..
               [skip={skip_pattern}]
               end={end_pattern} ..
  • group-name: region のグループ
  • options: オプション.詳細は arguments を参照
  • matchgroup={group-name}: region と,その開始,終了パターンで別のハイライトを用いる
  • keepend: 内包された match が終了パターンを超えないようにする
  • extend: この region を含む item の "keepend" を上書きする
  • start={start_pattern}: region の開始のパターン
  • skip={skip_pattern}: end_pattern を探さないパターン
  • end={end_pattern}: region の終了のパターン

arguments

すべての command で使える

  • conceal:concealable とする
  • ccar:'conceal' とされている keyword のなかでも表示される文字
  • contained:トップレベルでは認識されず,別の match の中で指定された時に認識される
  • containedin:
  • nextgroup:
  • transparent:
  • skipwhite:
  • skipnl:
  • skipempty

match と region で使える

  • contains={group-name}:ここで指定されたグループは,そのアイテムのなかで始まることができる.ms=とme=でオフセットを設定可能.
  • fold:折りたたみレベルを1つ増加させる
  • display:検出されたハイライトが表示されない時にはスキップされる.行末を超えて継続しない場合など.
  • extend:

region で使える

  • oneline:一行のみで完結
  • concealends:

Group name

Comment
Constant
String
Character
Number
Boolean
Float
Identifier
Function
Statement
Conditional
Repeat
Label
Operator
Keyword
Exception
PreProc
Include
Define
Macro
PreCondit
Type
StorageClass
Structure
Typedef
Special
SpecialChar
Tag
Delimiter
SpecialComment
Debug
Underline
Ignore
Error
Todo

2014/02/10

PCLの PCD フォーマットにおけるbinary_compressed

Point Cloud Library (PCL)のデータフォーマットであるPCDでは,各ポイントのデータをアスキー文字列で保存する形式 (ascii) と,バイナリで保存する形式 (binary) があって,これはドキュメントに載っているのだけれども,実はもう一つ,バイナリを圧縮した binary_compressed というのがある.でも,これは(なぜか)ドキュメントには載ってない,のでここでちょっとメモ.

PCL から binary_compressed なデータを書き出すのは pcl::PCDWriter::writeBinaryCompressed 関数を使う.ソースコードは この辺.

ここでポイントは,

  • データ部分の最初の4バイトは unsigned int の圧縮後のデータサイズ
  • 次の4バイトは unsigned int の圧縮前のデータサイズ
  • 次は LZF 圧縮されたバイナリデータ.ただし,データはポイントごとに並べたのではなくて,フィールドごとに並べたもの.(例えば,XYZXYZXYZ...ではなくて,XXX...YYY...ZZZのように)

LZF 圧縮に関しては,ハッシュテーブルあたりで微妙にオリジナルと違うのだけれども,この辺がどう影響するかは未確認..

2014/02/02

R cheat sheet

データ

combine function c()

>  sample <- c(6, 7, 15, 36, 39, 40, 41, 43, 47, 49)
  [1] 6 7 15 36 39 40 41 43 47 49

: operator

> sample <- 1:10
  [1] 1 2 3 4 5 6 7 8 9 10

seq() function

> sample <- seq(0, 100, by=10)
  [1] 0 10 20 30 40 50 60 70 80 90 100

CSVからインポート

> sample <- read.csv('data.csv', header=TRUE, sep=",")

ディレクトリ

カレントディレクトリを表示
> getwd()
ディレクトリを移動
> setwd(dir)
カレントディレクトリ内のファイル,フォルダを表示
> dir()

関数

ライブラリをロード

> library('qualityTools')
> showClass('gageRR')
> example('gageRR')

スクリプトを実行

> source("script.R")

Vector データ関連

  • length(v): Vector の要素数
  • mean(v) : Vector の平均
  • median(v) : Vector の中央値
  • sd(v): 標本標準偏差 (unbiased)
  • var(v): 標本分散 (unbiased)
  • summary(v): 最小値,第一四分位数,中央値,平均値,第三四分位数,最大値を表示 Minitab との違い (Minitab はwikipediaの説明における Method 1, R のsummary は Method2)
  • fivenum(v): Tukey's five number を vector として返す.

2014/01/26

休暇

年末年始は休暇で日本でした.以下いろいろやったことリスト,など.

  • 大昔にご近所さんだったO家とディナー.(昔過ぎて懐かしさはあんまり..笑)
  • 高校サッカー全国大会,桐光学園-高知商業@三ツ沢競技場を観戦
  • ミラーレス一眼 SONY NEX-5TLを購入
  • 川崎大師に初詣.初詣って,出店がでるんだね.
  • 高校の部活の同期で初蹴り@代々木.
  • 親戚に会いに関西方面へ.約束までに時間があったから,大阪城見学.結構外国人の見学者も多かった.博物館としては,,もうちょっと頑張ってくれても..
  • サカサマのパテマを鑑賞.舞台設定の部分とか,中途半端に感じてしまうところもあったけど,面白かったと思う.CVの一人が昔のバイト先で一緒だったという噂もあるのだけど,誰も確認できなかったので詳細は不明.というか,僕が見た次の回で本人来てたのか.
  • "大泉エッセイ"読了.どこの本屋に行っても平積みでした.
  • "孤独なバッタが群れるとき"読了.バッタ博士の今後にも注目.
その他友達と会ったり,積読がまったく消化できないくらい,遊び呆けてた..

2013/11/02

Blender で,カメラから見て常に同じ位置にオブジェクトがくるようにする.

やりたいこと

blender を使っていて,常に端っこに座標軸を表示させたい.

事前準備

シリンダーと円錐で矢印を作って,座標軸のオブジェクトを作っておく.

手順

  1. 座標軸に,Limit Rotationの拘束を加える.(Limit X, Limit Y, Limit Z)
  2. Add -> Armature -> Single Bone でboneを追加. Bone に Copy location の Constraint を付加.Target はカメラ. 更に,Copy Rotation のConstraint も付加.Target はカメラ.
  3. カメラに ChiledOf の Constraint を付加.Target は先程のArmature.Boneも指定. チェックはすべて外す.
  4. Editor mode で.tail の位置を座標系に合わせる. 座標軸 -> Armature の順に選択して Ctrl-P で Bone を選択. 座標軸位置をカメラビューで端っこの方に来るように移動させる.
これで,カメラを移動させても,座標軸オブジェクトはカメラの動きに追従するので,カメラビューで常に同じ位置に見えるようになる. 座標軸は,カメラの近くに置いておくと,他のobjectsに隠れたりしない.

結果

Blender キーボードショートカット

Object Mode

a Select/deselect all objects
Alt-g Clear location of selected objects
Alt-r Clear rotation of selected objects
Ctrl-j 選択したオブジェクトを join
Ctrl-d 選択したオブジェクトを duplicate

Edit Mode

e Bezier curve編集時,コントロールポイントを追加

2013/09/22

ハードコンタクトレンズ買った

最近の買ったものシリーズ

きっかけ

日本で買ったハードコンタクトが古くなったし,度も微妙にあわなくなっていたので.

ドイツでは,コンタクトレンズを買うのには眼科医の処方箋が要らないので,インターネットやメガネ屋さん的なところにいけば買える. 必要な度数とかがわかっていればそのままそれで注文できるし,わからなくても調べてもらえる. (もちろん眼科でも検眼してもらえるみたいだけど,今回は眼科ではやってもらわなかったので詳細は不明)

で,最初はわりと近所の Apollo に行ってみたら,そこではコンタクトレンズのための検眼その他は出来なくて, Neuhauser Str. のほうなら対応できるとのことだったので,そちらにいくことに.この時ついでにハードレンズとソフトレンズどっちがいいかを聞いてみたら, 僕のかけていたメガネの度数を調べたら,一言,"ハードだね".

購入まで

最初の行ったときは,時間帯が悪かったのか,土曜日の朝にまた来てくれ,と言われた. で,また指定された時間に行って,検眼してもらって,テストレンズ(両目で40ユーロ)を注文することに.

後日,テストレンズを受け取ってその場で装着.2時間後に簡単な検査.ちょっと度数を調整して,レンズの注文. 乱視が少しあって,でも乱視矯正用のレンズ(一枚200ユーロ +)にするか普通のレンズ(一枚89ユーロ)にするか,微妙なところだったので, とりあえず普通のレンズを注文.

数日後また注文したレンズを受け取りに.その場で装着して,2時間後にまた簡単な検査.一週間後にまた検査. このとき,右目は乱視矯正用がいいかもしれない,と言われたけど,まぁ,あんまり不便はなかったので,(高いし)そのまま普通のレンズで行く事に. ただし,この場合は差額を払えば良かった模様.あと,購入後2ヶ月までなら,度数の調整含めて対応してくれるとのこと.

コンタクトレンズそのものは1.5 - 2 年使用できるとのこと.

ケア用品その他

ドイツでは,意外にハードコンタクトレンズ用のケア用品が,ソフトに比べると見つけにくい.dm とか行っても見ないし. まぁ,当然売ってはいるわけのだけども.ということで,Apollo で購入.All-in-One 的なものは売ってなくて,洗浄剤(Cleaner)と,保存液(Conditioner)を別々に使う. 場合によっては,すすぎや一時保存用に Saline を使う.ケースは,日本で見るようなハード専用ではなく,ソフトレンズと同じタイプ.