トラブル対応のメモです。
某システムで、データセットにパスワード掛かって開けないという問合せありました。現地入りして調べると、%includeすらエラーを起こしていることが分かりました。strace
エラーを起こしている箇所を探すと、システムコールのfcntl(2) で、リードロックで失敗しています。
リードロックでということは、ファイル、ファイルの属性がらみということで、マウントしているファイルシステムを調べると、NFSのバージョンがそこだけ3になっていました。他のNFSマウントは4なのに。
手動でサービス止めて、umount, mountを行うとバージョンは4に変わり、無事にデータセットが読めるようになりました。ちなみに環境はAWSで、fstab(5)に書かれている情報では、特にバージョン指定もありませんでした。気まぐれ??
こういった謎の障害のときに、strace(8)が使えると便利です。DNSサーバーの応答が遅いとか分かったりします。
SASプログラムとログを解析するユーティリティを開発するための備忘録です。This is a memo to develop utility that analyzes the SAS log.
2019年10月15日火曜日
2019年8月8日木曜日
牛乳パックで作るダイスタワー
ちょいと子供の自由研究ネタで、ダイスタワーを作ることになりました。確率の実験のちょっとした小道具として使うためです。で、ネットで探したものを3つほど試したのですが、もう少し作りやすくしたい。そんなこんなで改良して、作りやすいと思う方法をまとめました。心がけたのは以下の点です。
必要なのは1Lの牛乳パックと、工作用のボール紙、カッター、定規、ホチキスです。
牛乳パックは、カッターで正面と背面の一部を切り取ります。
サイコロが転がり落ちる傾斜の板をボール紙で作ります。両側の1.5cmの部分は、傾斜をホチキスで固定するために必要です。
切り欠きから傾斜A,Bを差し込んでホチキスで止めます。このとき、傾きを調整しながら止めてください。
難しかったところをメモしておきます。
傾斜や切り欠きのサイズが適当でないと、サイコロがタワーの出口で引っ掛かってしまいます。上の設計だと16㎜のダイスですんなり通ります。あと、傾斜の板はある程度弾力があるボール紙が良いです。試作で光沢紙を傾斜板に使いましたが、サイコロが弾まずストン滑り落ちて、ランダムになっているのか不安でした。
話はサイコロにズレますが、サイコロにドリルで穴開けして中身を確認すると、何個か気泡を含んでいるものがありました。何個かは重心に偏りがあるサイコロがあるわけです。これで実験すれば微妙に、偏った結果がでるかもしれません。でも回数を重ねれば、大数の法則で数字に表れてくるはず。
このダイスタワー、作ってみると、カラカラとサイコロが落ちる音は心地よくて、なんどもサイコロを振ってました。紙工作なんていうのは、何十年ぶりでちょっと新鮮でした。
参考にした”他の作り方”のリンクを載せておきます。先人の知恵に感謝です。
ボードゲームは、いつも turn the tide. >【3作目】 ダイスタワーを自作しました。 【スタンダード】
http://turnthetide.blog.fc2.com/blog-entry-411.html
石膏粉末工房 > ダウンロード
http://sekkoufunmatsu.web.fc2.com/
彬兄のブロマガ > 牛乳パックで作るダイスタワー
- 工作しやすい
- ダイスが転がり落ちる傾斜の角度を調整、固定しやすい
- 加工するサイズが分かる
- サイコロが回転しながら落ちる
- ダイスタワーから転がりでる
- ラッピングしやすい
必要なのは1Lの牛乳パックと、工作用のボール紙、カッター、定規、ホチキスです。
牛乳パックは、カッターで正面と背面の一部を切り取ります。
サイコロが転がり落ちる傾斜の板をボール紙で作ります。両側の1.5cmの部分は、傾斜をホチキスで固定するために必要です。
折り目を軽くカッターでなぞってから曲げます。
切り欠きから傾斜A,Bを差し込んでホチキスで止めます。このとき、傾きを調整しながら止めてください。
難しかったところをメモしておきます。
傾斜や切り欠きのサイズが適当でないと、サイコロがタワーの出口で引っ掛かってしまいます。上の設計だと16㎜のダイスですんなり通ります。あと、傾斜の板はある程度弾力があるボール紙が良いです。試作で光沢紙を傾斜板に使いましたが、サイコロが弾まずストン滑り落ちて、ランダムになっているのか不安でした。
話はサイコロにズレますが、サイコロにドリルで穴開けして中身を確認すると、何個か気泡を含んでいるものがありました。何個かは重心に偏りがあるサイコロがあるわけです。これで実験すれば微妙に、偏った結果がでるかもしれません。でも回数を重ねれば、大数の法則で数字に表れてくるはず。
このダイスタワー、作ってみると、カラカラとサイコロが落ちる音は心地よくて、なんどもサイコロを振ってました。紙工作なんていうのは、何十年ぶりでちょっと新鮮でした。
参考にした”他の作り方”のリンクを載せておきます。先人の知恵に感謝です。
ボードゲームは、いつも turn the tide. >【3作目】 ダイスタワーを自作しました。 【スタンダード】
http://turnthetide.blog.fc2.com/blog-entry-411.html
石膏粉末工房 > ダウンロード
http://sekkoufunmatsu.web.fc2.com/
彬兄のブロマガ > 牛乳パックで作るダイスタワー
2019年4月10日水曜日
複数のファイルをINFILEで読み込むときに、最初の見出しだけを読む
見出しが1行目含まれているファイルを複数読み込むと、見出し行がデータとして入ってきます。これを読み飛ばすサンプルです。探すのに時間が掛かったので、メモしておきます。
INFILE '/sas/data/input/test*.csv' LRECL=904 ENCODING="SHIFT-JIS" TERMSTR=CRLF MISSOVER DSD FIRSTOBS=2 /* 2行目から読む */ EOV=EOV /* 入力ファイルの切替わりを検出する変数 */ ; input @; /* 何も読み込まない */ if eov then input; /* 見出しの行を読み捨てる */ eov=0;
2019年2月14日木曜日
定義済みのオプションがないCASライブラリ
SAS Management ConsoleからCASライブラリを定義したが、詳細設定の中に定義済みライブラリのオプションが無かった。これがないと、EGを起動したときに、ライブラリを右クリックして割り当てしないと、データを参照できない。回避策としては、コードタスクで割り当てを仕込んでおけば回避できる。
なんでPre-Assignの定義がないのか不思議だが、いったん放置します。
なんでPre-Assignの定義がないのか不思議だが、いったん放置します。
2019年2月12日火曜日
OSとSASのエンコーディングが違う設定で日本語のディレクトリを作るとどうなるか?
クイズです。
Linux環境において、OSのエンコーディングがUTF-8、SASはSJISの場合、以下のコードを実行すると、作られるディレクトリ名はどのようになるでしょうか?
options dlcreatedir;
libname newdir '/var/tmp/漢字ディレクトリ';
Linux環境において、OSのエンコーディングがUTF-8、SASはSJISの場合、以下のコードを実行すると、作られるディレクトリ名はどのようになるでしょうか?
options dlcreatedir;
libname newdir '/var/tmp/漢字ディレクトリ';
- OS上のディレクトリ名は、SASと同じSJISになる。 .
- OS上のディレクトリ名は、OSのロケールと同じUTF8になる。 .
- OS上のディレクトリ名は、文字化けして正しく表示できない。 .
- エンコーディングの不一致でエラーが発生する。
正解は、3.でOSと同じロケールでディレクトリが作成されます。これは、SASはOSのロケールと異なる場合には、変換してOSに合わせてディレクトリを作成する動きをします。これは実験の結果でわかったことです。
登録:
投稿
(
Atom
)