世界的日曜WEBプログラマー日記 -9ページ目

世界的日曜WEBプログラマー日記

一年後に世界的なWEBサービスを運営するにはどうすればいいのか書いていく(予定)

Nukeというハリウッドも使う合成ソフトウェアがある。Pythonをスクリプト言語として採用しているのと、Linuxをプラットフォームとしてサポートしているので、サーバーサイドとして色々なことで使えそうだ。

例えばナイスなロジックを第三者に書いてもらって、Pythonを使ってそのNukeファイルを呼び出しうて随時画像に適用する、なんてことが出来る。

例えば以下のような処理をNukeで定義。



上記ロジックはsimpleblur.nkとしてSaveしておく。

さて、上記ロジックを
1. food_picture.jpgに適用
2. 追加のブラー処理も加えたい。
3. out.jpgで出力(Saveしたい)

という場合、次のように書けばいい。

import nuke, sys

def make_connect( _from, _to ):
_to.setInput(0, _from)

def my_blur( _from, _to ):
b1 = nuke.nodes.Blur( size = 20)
b2 = nuke.nodes.Blur( size = 30)
b3 = nuke.nodes.Blur( size = 40)
l = [ _from, b1, b2, b3, _to ]
prev = l[ 0 ]
for n in l:
make_connect( prev, n )
prev = n

def main():
# load nuke script.
nuke.scriptOpen( sys.argv[ 1 ] )

input_file = nuke.nodes.Read(file="/home/maishoku/Desktop/food_picture.jpg")
output_file = nuke.nodes.Write(file="/home/maishoku/Desktop/out.png")

_input = nuke.toNode( 'ColorCorrect1' )
_output = nuke.toNode( 'Output1' )

make_connect( input_file, _input )
# ----- what you want in this script
my_blur( _input, _output )
# -----
make_connect( _output, output_file )

nuke.render( output_file, 1, 1 )
print "hello world"

if __name__ == '__main__':
main()


あとは、次のように実行すれば良い。
$ ./Nuke7.0v9/Nuke7.0 -t nuketest.py simpleblur.nk


読み込みファイル、出力画像ファイルはソースコード内でベタ書きでかいたけど、Pythonだからsys.argv[2], sys.argv[3]などでファイルパスを指定すればいい。
なんて素晴らしいんだ!

Nukeの考え方としてはパイプのように次々と処理をつなげていく事。
setInputという関数がつなげていく処理を示している。特定のノードを選択肢たい場合は、nuke.toNodeで指定する。

まぁ、ともかくNukeはPythonが使えていい!
Mayaとかそのソフトだけしか使えないような言語(MELスクリプト)とか覚える気がまったくしない。。

株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house
Linuxのマシン同士でリモートデスクトップ接続をしたい時のメモ。
Linuxでリモートデスクトップ接続ってのはあんまり頻度は無さそうだけど、今回はディスプレイのないテスト用のサーバーマシンでの挙動をチェックするために必要だった。
VNC(Virtual network computing) を作る必要があり、やや大げさだと思うがこれ以外の簡単な方法はわからなかった。


さて、リモートデスクトップでは2つの利用形態が考えられる。
・同じ画面をシェアしたい
・違う画面を表示したい。(remminaなど使えば良い)

Windowsのリモートデスクトップは前者である。
今回、クライアントマシンからサーバーへリモートデスクトップ接続する方法(前者)を重点に説明する。

環境は同じネットワーク内にあるものとする。
接続先: 192.168.1.5 (サーバー)
接続元: 192.168.1.2  (クライアント)

サーバー側の設定
接続先(サーバー側)ではx11vncが必要となる。ない場合はインストール。
$ apt-get install x11vnc
インストール後、次のコマンドを叩く。
$ x11vnc -display :0

(一度ログインしておく必要がある。ログインしていない場合、x11vnc -auth guess -display :0 を叩く)


これで接続先の設定は終わり。文字列が出現して、
The VNC desktop is: jenova:3 # <= 自分のホスト名
PORT=5903 # <= ポート番号

などとでる。このポート番号5903というのを控えておく。恐らく環境によってポート番号は変わって来る。

クライアント側の設定
あとはクライアントからSSHでトンネルを作って、そのポートにアクセスすれば良い。
トンネルはSSHでつくる。
$ ssh -L 5555:localhost:5903 192.168.1.5 -N
※5555は接続元のポート
※5903は接続先のポート

上のコマンドの意味はローカルホストの5555のポートを接続先の5903にひもづけて!
という命令である。
ローカルホストのポート番号は何番でもよく別に5555でなくてもいい。

最後
トンネルを作った後はローカルの5555にアクセスをすれば、リモート先(接続先)にアクセスが可能となる。
$ vncviewer localhost:5555
これでリモートデスクトップ接続ができる。

やたら大げさな気がするが‥。

弁当宅配|サンドイッチデリバリー 出前総合サイトのマイ食



エラー集:
sudo x11vnc -display :0
と叩いた時に
x11vnc: error while loading shared libraries: libvncclient.so.0: cannot open shared object file: No such file or directory

と出たら、
sudo apt-get install libvncserver-dev
を叩く

株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house

LinuxUbuntuを入れるにあたってのハマったところを書く。
Ubuntuのバージョンは13.04

Ubuntuをインストール
まずUbuntuをインストールする上で気を付けるのはWindowsのNTFSの部分だけ削除するという事。そうでないと、リカバリソフトが起動せず、Windowsは永遠に亡き者になる。

おすすめは追加のSSDのHDD(mSATA)を追加で購入し、そこにUbuntuをいれること。
ただ、T5の星型ドライバーを使って裏のネジを外し、キーボードトップをとる必要がある。

さて、最近ではブートでUEFIという機能がある。
32ビットOSをインストールした場合は、Biosの設定でLegacyBootをONにしLegacyBootから起動するように設定しないといけないっぽい。ただ、未検証である。


Yoga13 on Ubuntu 輝度調節
現在コマンドベース
$ xrandr --output LVDS1 --brightness 0.5

12.10まではGrubの設定で調節できたらしいが、13.04だと動かない。
暫くはコマンドで叩いて我慢する。
0.5の部分を0.7とか変更すれば、輝度のレベルを調節することが出来る。

回答を見つけた(追記2013/6/10)
$ emacs /etc/default/grub
以下に修正
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"
$ sudo update-grub
$ sudo sh -c "echo 'blacklist ideapad_laptop' >> /etc/modprobe.d/blacklist.conf"
$ reboot

これで輝度調節が可能となる。

Wifiドライバー
デフォルトでドライバーが当たらないのでダウンロードしてドライバーを当てる。
$ git clone http://github.com/lwfinger/rtl8723au.git
$ cd rtl8723au
$ make && sudo make install

git はインストールしておくこと。sudo apt-get install git

日本語入力の問題(英字キーボードのみ)

unityとCompizの設定の問題でAlt+Graveがキーバインドが衝突している。
次の作業が必要となる。
作業1。
右上のログイン名が書いてあるところをクリック
System Settingsを選択
Hardware -> Keyboardを選択
Shortcutsタブを選択
Navigationを選択
Switch windows of an applicationのショートカットをなんか適当に割り当て、再度無効化*3
あと、Compizの設定を変更する。

作業2
設定マネージャーより、Ubuntu Unity PluginのSwitcherの中の Key to flip throgh windows in the switcherで一度適当なキーバインドを割り当ててもう一度なくす。

ランチャーを自動的に隠す。
[外観] - [挙動]
Launcher を自動的に隠す → ON


フォントの変更

Terminalのフォントを変えるにはunity-tweakからフォントを選択して一度適当なフォントにした後、ターミナル上からフォントを変更しないと読み込んでくれない。


株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house