2015年7月19日日曜日

VMware Playerのディスク容量を削減する(disk shrink)

VMware Player上のLinuxの不要なファイルを削除して仮想ディスクのファイルサイズを減らすためには,仮想マシン上のファイルの削除だけでなく,Vmware-toolboxによるディスクサイズの圧縮機能を使う必要がある.
VMware toolboxはインストールしていなければインストールする.

vmware-toolboxを利用し,ディスクの圧縮を行う.

vmware-toolbox disk shrink [mount point]

圧縮前は24GB程度あった仮想ディスクファイルが12GBまで圧縮された.ほぼ仮想マシンでのディスク容量と等価である.ただし圧縮にはそれなりに時間が(10数分程度)必要でその間はアクセスもできないので,こまめに実行するのはちょっとつらいかもしれない.

2015年7月17日金曜日

コマンドプロンプトでWindowsの電源プランを変更する(powercfg)

コマンドプロンプトでWindowsの電源プランを変更するには,powercfgコマンドを利用する.
まず,コマンドプロンプトを起動し,powercfgを実行して各電源プランのGUIDを得る.

powercfg -l

任意の電源プランを選択するためには,以下の様に実行する.

powercfg -setactive GUID

XP以前はもっとたくさん電源プランを作成できたが,Windows 7/8はなぜか電源プランが同時に2つしか表示できない.外人さんがWindows 7/8の現状に対してMicrosoftのフォーラムでFワード連発して怒っていたけれど,以下の様に電源プランの数だけバッチファイルを作成すればある程度等価なことが実現できる.




2015年7月7日火曜日

コマンドプロンプトでWindowsのディスプレイ設定を変える

ノートパソコンを仕事場でデュアルディスプレイにしている場合,出先から帰った時に自動的に元の設定に戻らないことがある.最近のWindowsは賢いから自動的に戻ってくれる様だが,たまに接続する順番によっては元に戻らない.たとえばノートパソコンを閉じたまま外部ディスプレイにつなげると,外部ディスプレイ表示のみという情報に変わってしまい,パソコンを開いてもデュアルディスプレイにならなくなってしまう.

コマンドラインでWindowsのディスプレイの設定を変えるために,Display Changerを使う(私的利用ならフリー).
http://12noon.com/?page_id=80

インストーラでインストールし,以下のコマンドを実行してディスプレイの情報を得る.なお32bit版はdccmd.exeで,64bit版はdc64cmd.exeである.インストール先は"C:\Program Files (x86)\12noon Display Changer"であった

>dc64cmd.exe -listmonitors
Monitor: 汎用 PnP モニター
Device: \\.\DISPLAY1
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up, attached, primary (0,0)

Monitor:
Device: \\.\DISPLAY2
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up

Monitor:
Device: \\.\DISPLAY3
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up

\\.\DISPLAY1がノートPCのディスプレイで,他が外部ディスプレイ.ノートPCの真上にFullHDのモニタを設置するには,以下のコマンドを実行する.

>dc64cmd.exe -monitor="\\.\DISPLAY2" -secondary -width=1920 -height=1080 -ty=-1080 -lx=0

-widthと-heightはDISPLAY2の解像度,-tyと-lxは原点(左上)のプライマリモニタに対する相対位置.上側/左側に持って行く場合は負になる.

確認すると,ちゃんと\\.\DISPLAY2が\\.\DISPLAY1の上部に設置された.

>dc64cmd.exe -listmonitors
Monitor: 汎用 PnP モニター
Device: \\.\DISPLAY1
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up, attached, primary (0,0)

Monitor: 汎用 PnP モニター
Device: \\.\DISPLAY2
Adapter: Intel(R) HD Graphics 5500
(1920 x 1080 x 32 bpp) 60Hz up, attached (0,-1080)

ディスプレイを外すには以下のコマンドを実行すればよい(今時のWindowsならブチッと抜いてもいいだろう).

>dc64cmd.exe -monitor="\\.\DISPLAY2" -detach

あとはよく使うコマンドをバッチファイルに書いてショートカットに設定すればOK

2015年6月23日火曜日

AnalogArtist(Virtuoso)のCellViewをSKILLコマンドに変換する(dbWriteSkill)

AnalogArtistで作成したCellView(Layout ViewやSchematic)をSKILLコマンドの変換するには,dbWriteSkillコマンドを使う.

dbWriteSkill(cellViewId filename mode release)

たとえばLIBライブラリのInverterのレイアウトをSKILLコマンドに変換するには,以下の様に実行すればよい.

cellViewID = dbOpenCellViewByType("LIB" "INV_X1" "layout")
dbWriteSkill(cellViewID "INV_X1.il" "w" "4.4")

復元するには,出力したSKILLコマンドをCIWで読めばよい.

load "./INV_X1.il"

ひな形レイアウトをVirtuoso Layout Editingで作成し,SKILLを使ってテキスト形式でダンプ,パラメータをちょこちょこ変えたレイアウトをスクリプトで作って再度ロードするという用途に使える.また,LayoutやSchematicだけでなく,PCellも出力できるようだ.
# ただし,レイヤーがLayerNameではなくてLayer#なので可読性がちょっと低いのが悲しい

なお,出力するSKILLファイルにライブラリ名を入れたくない場合はdbWriteSkillWithLibを使うらしいが,今一使い方がよくわからない.

2015年5月28日木曜日

AnalogArtist(Virtuoso)でコマンドラインからCDL outする.

AnalogArtistのcdsもしくはOAからコマンドラインでCDLを出力させるためには,付属のsiを使う(Simulation Interfaceのことか?).
まず,si.envファイルを以下の様に作成する.このファイルは,GUIでCDL outを行った場合に
自動生成されるそうなので,一回GUIで実行すれば後は使い回す事が出来る.

simLibName = "LIBNAME"
simCellName = "CELLNAME"
simViewName = "schematic"
simSimulator = "auCdl"
simNotIncremental = 't
simReNetlistAll = nil
simViewList = '("auCdl" "auSchematic" "schematic" )
simStopList = '("auCdl")
hnlNetlistFileName = "CDLFILE.cdl"
resistorModel = ""
shortRES = 2000.0
preserveRES = 'nil
checkRESVAL = 'nil
checkRESSIZE = 'nil
preserveCAP = 'nil
checkCAPVAL = 'nil
checkCAPAREA = 'nil
preserveDIO = 'nil
checkDIOAREA = 'nil
checkDIOPERI = 'nil
checkCAPPERI = 'nil
simPrintInhConnAttributes = 'nil
checkScale = "nil"
checkLDD = 'nil
pinMAP = 'nil
shrinkFACTOR = 0.0
globalPowerSig = ""
globalGndSig = ""
displayPININFO = 't
preserveALL = 't
setEQUIV = ""
incFILE = ""
auCdlDefNetlistProc = "ansCdlSubcktCall"


次にsiを以下のコマンドをTerminalに打ち込む事で起動する.

% si -batch -command netlist

siがVirtuoso Framework Licenseを取得し,データベースからCDLを抽出し記載したファイルに書き出す.

なおうちの環境では
*Error* eval: undefined function - _oiSetMasterFieldsEnabled
とエラーが出るが,意図したファイルが出力されている様だ.

2015年5月25日月曜日

TgifからInkscapeに乗り換えるためのメモ

これまで論文の図はTgifを使って描いていたが,出力品質が悪く,特に領域を模様で埋めたりすると変なモアレができる.

そのためInkscape(0.47)に乗り換えたのだが,InkscapeはInkscapeで使いにくいので試行錯誤した結果をメモ.

○ オブジェクトを拡大/縮小すると線幅が変わるのを止める
Inkscapeの設定(Shift-Ctrl-P)の[変形]→[ストローク幅を拡大縮小する]のチェックを外す.

○ 矢印の色を線の色と合わせる
[エクステンション]→[パスの変形]→[マーカーの色をストロークに合わせる]を選択すればよいらしい
# しかし,私の環境ではlibxml2がうまく入らないのでうまく有効化できない…

○ 描画領域の大きいEPSが正確に出力されず切れる
エクスポート領域を描画全体に変えても,キャンパスサイズをA0に変えても切れる.
→EPSではなくPDFにする.PDFをLatexに埋め込むために,extractbbを使って描画領域を取得し,includegraphicsに入力する(本当は.xbbができれば自動取得されるはずなのだが).

以下,Latexに入れるための工夫

(Tgif時代からだが)Latexのfigure環境をはき出すスクリプトを以下の様に作成

use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat);
my $FILE="NULL";
my $SCALE="1";
my $LOC="h";
my $BBFILE="NULL";

GetOptions(
        "file=s"  => \$FILE,
        "scale=i" => \$SCALE,
        "loc=s"   => \$LOC,
        "bbfile=s"  => \$BBFILE
);

open(BBIN, "$BBFILE") || die "cannot open xbb file: $BBFILE, die";
$BBINA =  ;
chomp($BBINA);

$TITLE = $FILE;
$TITLE =~ s/.pdf//g;
$CAPTION = $TITLE;
$CAPTION =~ s/\_/\\\_/g;

print <<EOF;
\\begin{figure}[$LOC]
  \\begin{center}
   \\includegraphics[bb=${BBINA}, scale=${SCALE}]{$FILE}
   \\caption{$CAPTION}
   \\label{fig:$TITLE}
  \\end{center}
\\end{figure}
EOF

本スクリプトを動かすためのMakefile
%.pdf: %.svg
   inkscape $*.svg --export-pdf=$*.pdf --export-area-drawing

%.pdf.figtex: %.pdf
        extractbb -O $*.pdf | grep "HiRes" | cut -d ':' -f 2 > tmp.xbb
        perl ~/programs/figure_template_pdf.pl \
        --file=$*.pdf --scale=1 --loc=h --bbfile=tmp.xbb >> main.tex 
        rm tmp.xbb

2015年3月5日木曜日

とある博士学生の助教公募戦線記録

これまでに出した公募の結果が一段落したのでまとめてみる.

スペック
・大手私立大卒→国立大大学院
・男
・集積回路系.自称CAD屋
・応募時の業績:論文誌2本,国際会議7本,その他
・学振はとれず
・特に大学にこだわりはなく,J-RECINで自分に合いそうな大学を探して応募した.


2013/10 私立大学(母校だった)
・任期付き助教(5年,再任無し)
・研究分野の指定無し
・応募後,6週間ほどでお祈りメール
・同時期に,研究分野を特に指定する公募(任期5年)と,特任助教の公募(任期1年/5年まで延長)もしていた.

2013/10 国立大
・任期付き助教(5年,再任あり)
・研究室の指定あり
・研究内容は自分の研究テーマとマッチせず
・応募後,6週間ほどでお祈りメール

このあたりで焦りだし,積極的に応募するように.

2014/1 私立大
・指導教員からのツテで話が来た
・任期付き助教(5年,再任無し)
・研究分野の指定あり
・研究内容は自分の研究テーマとは少し異なるが,拡張は可能と判断
・受け入れ先とはある程度順調に話は進んでいたが,卒業が無理と判断,辞退した

2014/4 国立大
・任期付き助教(5年,再任あり)
・研究室の指定あり.受け入れ先と相談した結果,自分の研究テーマを拡張すれば良いと判断
・受け入れ先研究室の情報が不十分で,モチベーションが上がらず結局応募せず.

2014/5 国立大
・任期付き助教(5年,再任あり)
・研究分野の指定あり.受け入れ先と相談した結果,すりあわせればokと判断し応募
・応募後,半年(!)かかってようやくお祈りメール

2014/5 国立大
・任期付き助教(5年,再任あり)
・研究分野の指定なし.受け入れ先にもあらかじめ連絡.
・応募後,2週間ほどで面接.
・面接後2週間ほどで内定通知
・同時期に,研究分野指定の任期付き助教の公募もしていた.

もう一つ指導教員のツテで話が来た公募もあったが,こちらは時期があまりにも先だったのでお断りしてしまった.


感想
・任期付き(5年)が多い.私立大は再任不可も多い.文科省がテニュアトラック制度を推進している事と,後者は正規雇用をいやがるためか.指導教員は驚いていたが,任期付きというのは時代の流れだろう.

・研究テーマを指定された場合において,意外と自分の研究テーマ(集積回路)と合う公募は見つけられなかった.多かれ少なかれ研究内容の軌道修正をしないと受け入れ先の希望に添わない.
# 一方で本年度は集積回路系の助教公募が多い気がする…

・私はラボの博士学生としては平均より下だと思っているが,そのためか助教の公募はだいぶ苦戦した.学振DC1/2取れるくらいでないと苦しいだろう.

・私の場合,いわゆる「教授のツテ」というのはそこまで多くはなかったと思う.

・応募時にあらかじめ先方に連絡した方が良いと思った.多くの方に親切にしていただいた(助教だからかも).

・女性だと有利にすると明言する公募は結構ある.女性しか採用しない物もある.

2019/4/6 追記:助教→助教の公募戦線に参戦しました.
とある助教の助教公募戦線記録