このブログを検索

2013/10/19

AfterEffects Scriptで規定のブラウザで任意のURLを開く方法

AfterEffects Scriptで規定のブラウザで任意のURLを開く方法
sample.jsx
----
url = "http://www.google.com/"
system.callSystem("cmd.exe /c rundll32 url.dll,FileProtocolHandler "+ url)

2013/09/01

macでvpn接続した時に、割振られたip以外のネットワークに接続する

VPNで接続した際に、接続先のネットワーク内にあるPC(192.168.99.10)をリモートできなかった.
tracerouteで192.168.99.10までの経路を確認したら、VPNで割り当てられたipに抜けていかなかったので以下のコマンドでルーティングテーブルに経路を追加.
sudo route add 192.168.99.0/24 192.168.50.123
※ 割当IP:192.168.50.123
以下のコマンドでルートを確認すると上記で追加したルートが表示されている.
netstat -rn | less
----
Destination        Gateway            Flags        Refs      Use   Netif Expire
192.168.99        192.168.50.10     UGSc            0        0    ppp0
 ネットワークの範囲はサブネットマスクで調整すること.

--- 追記 2013.10.19
こんな事しなくても、以下の手順でトラフィックをVPN経由に出来るとお言葉を頂きました。
システム環境設定>ネットワーク>任意のVPN接続>詳細>オプション>”すべてのトラフィックをVPN接続経由で送信”にチェック
ありがたや、ありがたや。

2013/08/07

JDK を wget でダウンロードできない場合の対処法

JDK (Java SE Development Kit)を wget コマンドでダウンロードしようと試みたが、ダウンロードできなかった.原因を調べてみた所、下記リンク内の「ライセンスに同意」をチェックしてからでないとダウンロード出来ないようだ.

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

ブラウザでダウンロードしてdoropboxに放り込んでwgetでダウンロードしようと思ったが、悔しいのでもう少し検索する事にした.
調べてみると、以下のwgetコマンドオプションを使用すればダウンロード出来るとの事で試してみた.
wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64-rpm.bin"
上記コマンドをたたいたところ、以下の様なエラーが表示された.
ERROR: certificate common name `www.oracle.com' doesn't match requested host name `edelivery.oracle.com'.To connect to edelivery.oracle.com insecurely, use `--no-check-certificate'.
証明書の共有名称と要求されたホスト名が一致しないですとのエラーで、異なるホストでも問題ないですという人は”--no-check-certificate”を付けてという事だと思う.
オプションを追加して再度wgetコマンドを実行した所、問題なくダウンロードする事が出来た.
wget -O jdk-6u45-linux-x64-rpm.bin --no-check-certificate --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com" "http://download.oracle.com/otn/java/jdk/6u45-b06/jdk-6u45-linux-x64-rpm.bin"
普段、何も考えず使っていたwgetコマンド奥床しい、コマンドだったのだな.
またhelpでも眺めてみよう.

参考:
http://stackoverflow.com/questions/10268583/how-to-automate-download-and-instalation-of-java-jdk-on-linux

2013/06/15

拡張子の関連付け:Adobe AfterEffects を複数インストール

今回はたまたまAfterEffectsだったので、拡張子.aepでいろいろやっているが、他の拡張しても応用できる.

AfterEffects CS4 を入れた後に、AfterEffects 7.0 をインストールしてしまい、aep ファイルをクリックして AE を起動すると、CS4で起動して欲しいにもかかわらず、AfterEffects 7.0 で起動してしまう.
そういった場合は下記のレジストリを書き換えてあげれば任意のバージョンで起動させることが出来る.
変更前
[HKEY_CLASSES_ROOT\.aep]
@="AfterEffects.Project.70"
変更後
[HKEY_CLASSES_ROOT\.aep]
@="Adobe.AfterEffects.Project.90"
ちなみに「@(規定値)」に渡す文字列は、「HKEY_CLASSES_ROOT\」以下にある任意のソフトウェアのキー名と同じでなければならない事に気をつける.
私がハマったことは、規定値として渡す値 AfterEffects.Project.70の「70」を「90」に直しただけで起動バージョンを変更できると勝手に思い込んでしまったこと.
もっとしかっりキー名を追っていれば、「Abobe.」抜けていることにすぐ気付けただろう.

コマンドプロンプトから以下のコマンドを叩いてもよし.
USER>reg add HKCR\.aep /f /ve /t REG_SZ /d Adobe.AffterEffects.Project.90
レジストリを登録したら、explorerの再起動か、マシンの再起動で設定が反映される.
もし、反映されていなかったら、既に拡張子に対してのアプリケーションの割り当てが行われている可能性があるので、以下のレジストリをチェックし、記述があるようであればキー名ごと削除する.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.aep\UserChoice
削除後は同様に再起動すれば、反映されてアイコンも正常に表示されるだろう.

また、aepファイルを右クリックしたときに、任意のバージョンで起動出来るように設定する方法を以下に.
例えば、デフォルトがAE CS4でその他(AE7, AE CS6)は右クリックから起動する場合は、以下のレジストリ設定を流す.
[HKEY_CLASSES_ROOT\.aep]
@="Adobe.AfterEffects.Project.90"
[HKEY_CLASSES_ROOT\Adobe.AfterEffects.Project.90\shell\open1]
@="Open with Adobe After Effects 7"
[HKEY_CLASSES_ROOT\Adobe.AfterEffects.Project.90\shell\open1\command]
@="\"C:\\Program Files (x86)\\Adobe\\Adobe After Effects 7.0\\Support Files\\AfterFX.exe\" \"%1\""
[HKEY_CLASSES_ROOT\Adobe.AfterEffects.Project.90\shell\open2]
@="Open with Adobe After Effects CS6"
[HKEY_CLASSES_ROOT\Adobe.AfterEffects.Project.90\shell\open2\command]
@="\"C:\\Program Files\\Adobe\\Adobe After Effects CS6\\Support Files\\AfterFX.exe\" \"%1\""
設定後に、aepファイルを右クリックすると以下のような表示になる.

2013/06/13

windowsでデータコピー中に「メモリ不足のためこの操作は実行できません」と表示されコピーが止まる

windows7(32bit)でデータコピー中に「メモリ不足のためこの操作は実行できません」と表示され、コピーがいちいち止まって、毎回「再試行」ボタンを押していてイライラしていた.

原因はデスクトップヒープのメモリ領域が少ないが為に起こる現象のようだ.
デスクトップヒープとはwikipediaによると画面部分のデータを管理するメモリ領域との事で、自分のパソコンは12288と設定されていたようだ.(ちなみにメモリ4GB載せてます)

検索してみたところ、りあえず下記のレジストリの値を書き換えると解決できるとの事で書き換えてみた.
キー名:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
キー内の値名:
Windows
修正前の値:
%SystemRoot%\system32\csrss.exe 
ObjectDirectory=\Windows 
SharedSection=1024,12288,768 
Windows=On 
SubSystemType=Windows 
ServerDll=basesrv,1 
ServerDll=winsrv:UserServerDllInitialization,3 
ServerDll=winsrv:ConServerDllInitialization,2 
ServerDll=sxssrv,4 
ProfileControl=Off 
MaxRequestThreads=16
修正後の値:
%SystemRoot%\system32\csrss.exe 
ObjectDirectory=\Windows 
SharedSection=1024,20480,768
Windows=On 
SubSystemType=Windows 
ServerDll=basesrv,1 
ServerDll=winsrv:UserServerDllInitialization,3 
ServerDll=winsrv:ConServerDllInitialization,2 
ServerDll=sxssrv,4 
ProfileControl=Off 
MaxRequestThreads=16
SharedSectionの2番目の引数を20480(マイクロソフト推奨)に設定して再起動したら表示されなくなった.

-- 追記
とおもったら、全然メモリ不足警告が表示されて、何の解決にも至っていなかった.
今回は、fastcoyでコピーして、吐かれたエラーログを頼りにcopyコマンド作成して対応してみた.
エラーファイルは1000ファイル程だったので、吐かれたエラーをコピペしてテキストエディタに貼り付けて、ファイルパスのみを抽出複製して、複製したパスのドライブ名を変更するだけで何とかしのげた.
ドライブの移行だけだったからこんなもんで済んでよかった.

今回使用したコマンドは以下のもの.
copy /Y /V F:\file00.png D:\file00.png >> c:\copy.log
copy /Y /V F:\file01.png D:\file01.png >> c:\copy.log
...
※ copy.logはエラー確認用
-- 追記
毎回コピーツールでコピーっていうのは、なんだかなと思い再度調べてみたところどうやら原因は、SharedSectionの3番目の引数に原因があるようだ.
参照先をよく読んでいたら、マイクロソフトのfixitによる修正では3番目の引数も1024に変更されるとの事だったので、自分も同じ設定にして再起動してみたら、今度こそエラーも無くコピーを終えてくれた.
もっと良く読もう!おれ!
SharedSection=1024,20480,1024
参考:
http://support.microsoft.com/kb/947246

2013/06/12

Autodesk 3dsmax 2013 AutoplayPreviewFileの設定が max 再起動後に反映されない

autodesk 3ds max 2013 "autoplay preview file" の設定が3dsmax再起動後に反映されないという現象が起こった.下記項目のチェックを外しても、3dsmax再起動後はチェックがついている...
3dsmax > toolbar > customize > preference > general tab > ui display > "autoplay preview file"
なんでだろうと思って調べてみたところ、描画モードがNitorusになっている事が原因なので、描画モードをDirect3Dに変更すれば解決するようだ.
描画モードは3dsmax.iniファイル内でも修正可能.
"%localappdata%\Autodesk\3dsMax\2013 - 64bit\ENU\3dsmax.ini"
上記のファイルを開いて、下記の部分を修正すればよい.
[WindowState]
GFXType=Nitorus --修正後--> GFXType=Direct3D

2012でも同様の現象が起こっていた.原因も2013同様Nitorusに起因するよう.
3dsmax 2014では描画モードがNitorusでも"AutoPlay Preview File"をオフに出来るようでした.

今回、3dsmax.iniファイルの書き換えタイミングを追って今回の現象を発見できたけど.
maxってほんと面白いなーと感じました。。。

2013/05/29

ファイルの削除、変更、移動をした時に、エクスプローラーに反映されない場合

ファイルの削除、変更、移動をした時に、エクスプローラーに反映されない場合は、レジストリに以下の項目を追加してあげれば解決する可能性あり.
=======
.reg ファイルの場合
----
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoSimpleNetIDList"=dword:00000001

=======
ms-dos コマンドの場合
----
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoSimpleNetIDList /t REG_DWORD /d 1
----
とりあえず、今のところは問題なし.

2013/05/23

Adobe Photoshopでブラシの反応が悪かった時、カクカクした時の対処

Adobe Photoshopでwacomタブレットを使用していたがwindows再起動後に、ブラシの反応が悪くなった.弧を描きたいのに書き始めがなぜか引っかかったり、線の始めだけ直線になったり、線がカクカクしたりしてしまう.ちなみにwindows7 64bit.

悩んでいると、タブレットにペンを付けていると右クリックの効果が.
よくみると波紋も出ている.Windowsの標準機能が原因だったようだ.

以下の手順で「ペンのフィードバックをオフにする」を"有効"にしてあげたら、ペンが引っかからなくなった.
  1. スタートメニューの検索入力欄で「gpedit.msc」と入力し、ローカルポリシーエディタを起動
  2. ローカルコンピューターポリシー > ユーザーの構成 > 管理用テンプレート > windowsコンポーネント > Tablet PC > カーソル > 「ペンのフィードバックをオフにする」を有効 
または以下の項目でタブレット機能を無効化してしまうのも手かもしれない.
コントロールパネル>プログラムと機能>windowsの機能の有効化または無効化>"TabletPCコンポーネント"のチェックを外す(PC再起動).
ペンのフィードバックはオフにしてたのに、いつの間にかオンになってたみたいだ.
オンになった原因はわからない.


2013/05/09

MS-DOSコマンドでプログレスバー(進捗状況)を演出する

MS-DOSコマンドでプログレスバーを作れないものかと検索したら、あった。
ちなみに、timeoutコマンドで表現したら、少しいらっとする速度でしたが、pingに置き換えると、小気味良い感じと相成りました。
以下、バッチファイルのサンプル。
---------------
test.bat
-----
@echo off
for /L %%v in (1,1,10) do (
    set /p x=*< nul
    ping 1.0.0.0 -w 1 -n 1 > nul
    rem timeout /t 1 > nul
)
echo  OK!
-----
output....
>********** OK!
---------------

2013/04/09

vmware esxiでFailed to read header on stream TCPとログに表示された時の対処

vmware esxi のログを見ていたら以下のエラーが目に付いた.
Apr  8 19:20:57 Hostd: [2013-04-08 19:20:57.043 3A8C2B90 error 'App'] Failed to read header on stream TCP(local=127.0.0.1:61420, peer=127.0.0.1:0): N7Vmacore15SystemExceptionE(Connection reset by peer)
検索してみると、原因は以下のようなことに起因するとの事.
This issue occurs when ESX does not have access to a DNS server. This may be the case if the ESX host is in a DMZ network or if the DNS servers used by ESX are running on virtual machines that are not powered on.
esxがdnsに接続できない時、もしくはdmzにいる時、gesutのdnsの電源落ちてる時に出るエラー.と書いてあるに違いないと思う気がする. 
ということなので、以下の手続きでresolv.confからnameserverをコメントアウトしてhostdを再起動する.
# ssh root@192.168.x.x
# vi /etc/resolv.conf
# nameserver 192.168.x.x  # コメントアウト
# ping 192.168.x.x # コメントアウトしたサーバ(接続確認)
PING 192.168.x.x (192.168.x.x): 56 data bytes
64 bytes from 192.168.x.x: icmp_seq=0 ttl=255 time=0.298 ms
64 bytes from 192.168.x.x: icmp_seq=1 ttl=255 time=0.239 ms
64 bytes from 192.168.x.x: icmp_seq=2 ttl=255 time=0.233 ms
--- 192.168.x.x ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.233/0.257/0.298 ms
# /etc/init.d/hostd restart
以上で、エラーは出なくなった.

ちなみに検索していくうえで以下のような情報にぶつかると思うが、この通りに実行すると、ログは表示されなくなるが、ハードウェアの健康状態(「構成>健全性ステータス」のところ)まで表示されなくなってしまうので注意.
# chkconfig sfcbd-watchdog off
# chkconfig sfcbd off
# /etc/init.d/sfcbd-watchdog stop
上記コマンドはcimエージェントを無効にする設定のようだ.(※How to disable the CIM agent on the ESX/ESXi host) cimエージェントがどういったものか分からかったので、検索したら以下のページがヒットした.
VMware ESX および VMware ESXi の Info Center>管理>ハードウェアの監視(SNMP を含む)
うーん、cimはエージェントを使用しないと書いてあるけど、内部でエージェント(に相当するもの)があるって事なのかな?紛らわしい.

参考:
Rebooting an ESX host and restarting the Management agents takes longer than normal (1014270) 
fixing ESXi “failed with error N7Vmacore15SystemExceptionE” 

2013/03/24

Linuxでディレクトリ(フォルダ)内にあるファイル内容を文字列検索する

あるディレクトリ内にあるphpファイルの中身を任意の文字列で検索をかけ、そのファイルがどこにあるのかを知りたかった.調べたらgrepコマンドで実現できるようだ.
pwd
/var/www/html/ganglia
grep -inr "gmetad_root" ./ | less
./conf_default.php:37:$conf['gmetad_root'] = "/var/lib/ganglia";
./conf_default.php:38:$conf['rrds'] = "${conf['gmetad_root']}/rrds";
./conf_default.php:52:# Leave this alone if rrdtool is installed in $conf['gmetad_root'],
grepコマンドってこんな事も出来たんだと感心したと同時に、ヘルプは読まなきゃと感じた.

2013/03/14

nuke でpython script が実行できない

nuke のscript editor でpython script 実行できないと思ったら Ctrl + Enterだった.
Enterはただの改行でした..

2013/03/08

RayFire 1.59 Entropy_x64.gup エラー

3dsmax2012でネットワークレンダリングしたら、以下のエラーで怒られた.
ERR Task error: 3dsmax adapter error : Autodesk 3dsMax 14.0 reported error: DLL <C:\Program Files\Autodesk\3ds Max 2012\plugins\Entropy_x64.gup> failed to initialize.
調べてみたら、 1.59のEntropy_x64.gupはbetaとして提供されている機能らしい.
今回は特に使わないので、名前変更したら普通にレンダリングされた.
user> move "%ADSK_3DSMAX_x64_2012%plugins\Entropy_x64.gup" "%ADSK_3DSMAX_x64_2012%plugins\Entropy_x64.gup.bak"

2013/02/26

Fedora14へnvidiaドライバのインストール

NVidiaのドライバインストールする時に面倒くさかったのでメモ.

nvidiaデバイスの確認
# /sbin/lspci -n | grep 'nVidia'
0f:00.0 VGA compatible controller [0300]: nVidia Corporation Device [10de:06dd] (rev a3)
0f:00.1 Audio device [0403]: nVidia Corporation GF100 High Definition Audio Controller [10de:0be5] (rev a1)
nvidiaモジュールをインストールする為のリポジトリを追加.
# rpm -ivh http://download1.rpmfusion.org/free/fedora/releases/14/Everything/x86_64/os/rpmfusion-free-release-14-0.4.noarch.rpm
# rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/releases/14/Everything/x86_64/os/rpmfusion-nonfree-release-14-0.4.noarch.rpm
モジュールのインストール(※kmodとakmodの違いは末尾に記述)
# yum -y  install kmod-nvidia
# yum -y install akmod-nvidia
ダブルインストールしてみたが、Fedora15にアップグレードした時にエラーを吐いてしまいGUIで起動しなくなってしまった.多分nvidiaモジュールのバージョンが違うからなんだろう.
こうならないように、akmodのみでインストールしておくべきだったのかもしれない.
後で確認しよう.
念のためキャッシュをHDDにフラッシュして再起動.
# sync(x4回くらいらしい)
# reboot
カーネルオプションの確認
# cat /proc/cmdline
rdblacklist=nouveau nouveau.modeset=0
上記オプションが追加されていた.
モジュールがロードされているか確認
# lsmod | grep 'nvidia'
nvidia              11694654  40
i2c_core               27212  1 nvidia
nouveauがロードされてたら、ロードしないように設定この項目が該当してしまった場合は、nouveauのアンインストールか、bootオプションでnouveauモジュールをロードしないようにする、もしくはinitrd の再構築をおこなう。
  • nouvueauアンインストールの場合(未検証)
yum remove xorg-x11-drv-nouvea
手動で /lib/modules/2.6.31.12-174.2.19.fc12.x86_64/kernel/drivers/videoの中のnvidiaのディレクトリごと削除し、改めてNVIDIAのドライバをインストールし直し
  • grub.confへのオプション追加の場合(kmod-nvidia, akomd-nvidiaインストール時点で追加されているはず)
rdblacklist=nouveau nouveau.modeset=0
どちらか片方のオプションでも回避できる気がする.
  • もしくは以下の方法(未検証)
# vim /etc/modprobe.conf
alias nouveau off
#vim /etc/modprobe.d/blacklist.conf
blacklist nouveau
  • 上記設定でもnouveauがロードされる場合はinitrdの再構築
# cd /boot
# mv initramfs-$(uname -r).img initramfs-$(uname -r)-nouveau.img
# dracut initramfs-$(uname -r).img $(uname -r)
--
# sync(x4回くらい)
# reboot
--
# wget  [ http://target.driver.version.url ]
# chmod 755 NVIDIA-Linux-x86_64-270.41.06.run
# ./NVIDIA-Linux-x86_64-270.41.06.run --kernel-source-path= --kernel-name=$(uname -r)
--
# yum -y install freeglut
# yum -y install freeglut-devel
--
# yum -y install kernel-devel

nvidiaモジュールが組み込まれた状態で初期RAMディスクの再構築をおこなう.
# cd /boot
# mv initramfs-$(uname -r).img initramfs-$(uname -r).img.OLD
# dracut initramfs-$(uname -r).img $(uname -r)

これでnvidiaが組み込まれたinitrdが作成できたってことなのだろうか?(自信ないです)
# lsinitrd /boot/initramfs-$(uname -r).img | grep nvidia
-rw-r--r--   1 root     root           18 Aug 20  2011 etc/ld.so.conf.d/nvidia-lib64.conf
これで、ドライバのインストールは終了.

以下は、調べていて気になったことのメモ.
■ kmod-nvidia、akmod-nvidiaモジュールの違い
kmodとは
カーネルドライバモジュールの略.
カーネルに適応したモジュール.事前にコンパイルされているので負荷もなくカーネルに適応できる.(カーネルアップデートした場合はモジュールの再適用が必要)
akmodとは
オートマティックカーネルドライバモジュールの略
カーネルのアップデートの速度が速いので、kmodで用意されたモジュールでは対応しきれない場合がある.akmodは現在のカーネルに適したモジュールを見つけた場合、自動的にコンパイルし、カーネルに適応してくれる.
[参考]
http://ask.fedoraproject.org/question/315/what-is-the-difference-between-an-akmod-and-kmod

■ nouveauとは
nouveauはredhatの有志がnvidiaチップをリバースエンジニアリングして作ったフリーのnvidiaドライバとの事.
[参考]
http://en.wikipedia.org/wiki/Nouveau_%28software%29
http://sourceforge.jp/magazine/07/09/06/0125203

■ syncコマンド
キャッシュ領域に残っているデータを強制的にHDDに書き込むコマンド.
再起動、シャットダウンが行なわれる前にはこの処理は行なわれるが、任意のタイミングで行ないたい時はsyncコマンドで制御する事が出来る(OSのバージョンが古い場合は明示的にsyncを行なってあげないと行けない場合もある).
パフォーマンステストなどキャッシュを空っぽにしたい時とか.
 ■ dracutコマンド
でも結局、dracutコマンド内でmkinitrdコマンドに置き換えてるらしい.
[参考]
・初期ラムディスクイメージの検証
http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Verifying_the_Initial_RAM_Disk_Image.html
・RPM Fusion(自身のOSバージョンにあったモジュール拾いに便利)
http://rpmfusion.org/
・ブラックリストへのドライバー登録
http://docs.redhat.com/docs/ja-JP/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/rescuemode_drivers-blacklisting.html
・initrdって何?
http://www.geocities.jp/sugachan1973/doc/funto72.html
http://ja.wikipedia.org/wiki/Initrd
・Fedora Nvidia install Guide
http://www.mjmwired.net/resources/mjm-fedora-nvidia.html



2013/01/09

windows7でネットワークの場所の設定を固定する方法

所属するネットワークを変更するたびにパブリックモード?プライベートモード?それともホーム?みたいに、場所をいちいち聞いてくるのが嫌だったので、ネットワークの場所の設定を固定化できないか調べてみた.

コマンドで設定できればよかったのだが、レジストリ変更値の確証を得られなかったので、今回はツールからの設定にとどまった.

コマンドプロンプト > secpol.msc > ローカルセキュリティポリシー > セキュリティの設定 > ネットワークリストマネージャーポリシー 内の下記の項目を、”プライベート”に設定しまくったら、「ネットワークの場所の設定」が表示されなくなり、社内ネットワークが優先されるようになった.(気がする.
  • ネットワーク
  • 識別されていないネットワーク
  • ネットワークの識別中
  • すべてのネットワーク
※あと、ユーザには変更できないように追加で設定した.