× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
1.
linuxサーバなら、perlは最初から入っている $ which perl /usr/bin/perl 2. CPANをいれる $ sudo yum install cpan CPAN自体はyumでいれるわけだ さらに続けて $ perl -MCPAN -e shell > Would you like me to configure as much as possible automatically? [yes] cpan[1]> o conf prerequisites_policy follow cpan[2]> o conf commit cpan[3]> q とすると完了。これが何をしてるのかは分からん 参考http://cloudbb.jp/book1/Perl_Install.htm 3. パッケージをいろいろ入れる… まず、すでに持っているか確認 $ perl -e 'use List::Util' 何も表示されなければ持っている $ perl -e 'use List::MoreUtils' Can't locate List/MoreUtils.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at -e line 1. BEGIN failed--compilation aborted at -e line 1. って言われたら持ってない。 で、CPANでインストール $ sudo perl -MCPAN -e 'install List::MoreUtils' …なんだけど、やってみたら、'YAML'や'make'が見つからないとか言われた。 まずはmakeをインストール $ sudo yum install make 次いでYAML $ sudo cpan YAML ちなみに…「YAML(YAML Ain't Markup Language)とは、人間にとって読みやすいデータ直列化フォーマットである。」だって。http://d.hatena.ne.jp/keyword/YAML そしたらcpanで取って来れるようになる。sudo忘れずに!(sudoじゃなくてもできる方法あるらしいけどhttp://iandeth.dyndns.org/mt/ian/archives/000623.html) 改めて $ sudo perl -MCPAN -e 'install List::MoreUtils' あるいは $ sudo perl -MCPAN -e shell cpan[1]> install List::MoreUtils でもよい。 入ったか確認 $ perl -e 'use List::MoreUtils' 何も表示されなかったらOK。 PR |
1.
まずはamazonのアカウントを作る。買い物したことがあればそのアカウントでOK。ここは省略。 2. AWS作るときはここが参考になった。 http://www.slideshare.net/satoshi1977/aws-ec2-20111124 セキュリティグループ作るところだけは、注意が必要で、 ポート22(SSH)とポート80(HTTP)を開いておくこと。 なお、そのインスタンスに適用するセキュリティグループは、別の物に変えられないので注意。(ただしセキュリティグループの内容自体を変えることはできる。) 3. インスタンスを作って起動したら、SSHで接続しよう。 macのターミナルを開き、 % ssh -i XXX.pem ec2-user@XXXXX.compute.amazonaws.com pemは、インスタンス作成時に作った秘密鍵ファイル。必ずchmod 400 を先にしておくこと。 ちゃんとポートを開いていれば、接続できますよ。できなければ、セキュリティグループを見直してみよう。 なお、毎回このsshコマンドを打つのは面倒なので、 ~/.ssh/configに以下のように書いておく と、以下のコマンドを打てば接続できるようになる % ssh aws 4. Webサーバとして動かすために、以下のコマンドを打っていく $ sudo yum update -y (-yは、たぶん途中プロンプトで聞かれるときに y (yes) で応えるっていうオプション) $ sudo yum install httpd-devel -y $ sudo service httpd start $ sudo chkconfig httpd on $ chkconfig --list httpd 2~5がonになっている ちなみにyumはapt_getみたいなもん。 参考 http://d.hatena.ne.jp/inouetakuya/20111006/1317900802 5. htmlを置いてみる。 場所は /var/www/html root さんでしか書き込めないのでsudo使用。 適当にindex.htmlを作ってみると、ちゃんとブラウザから見える!(XXXXX.compute.amazonaws.com/index.html) 見えない人は、セキュリティグループを見直してみよう。ポート80開いてる? |
MacだとiMovieを使う。
○素材集め YouTubeやニコニコの動画をダウンロードしたいときは ゲッター1 というフリーソフトが便利なようだ。 http://solidbluesky.com/youtubedownload.html インストールして、実行。画面は以下の感じ。 ここにURLを入れるとダウンロードできる。 ダウンロードする動画は自己責任で。 YouTubeの動画は.flv形式になっている。 http://www.xucker.jpn.org/extension/flv.html これをQuickTimePlayerで再生するには、Perianというコンポーネントをインストールする必要がある。 解説記事 ダウンロード場所 これで、たいていの動画はQuickTimePlayerで再生できる。 動画を開いた状態で、ファイル→書き出しを選択すれば、mov形式に変換することもできる。 ○iMovie使い方 静止画を並べるだけなら、iMovieを起動して、クリップ画面にどんどん静止画をドラッグ&ドロップしていけばいい。紙芝居ならこれですむ。 動画を入れたいときは、イベントライブラリから選択。movとかm4vとかなら可能。 ニコニコにあった解説動画 さらにもう一つ SnowLeopardでの画面撮影、画面の拡大縮小、PCで鳴っている音の録音とかいろいろ便利な技を教えてくれてる。 PCで鳴る音を録画するには、 - SoundFlowerをインストール - 環境設定→サウンドで、サウンド出力先をSoundFlower(2ch)に変更 - QuickTimePlayer起動、ファイル→新規画面撮影開始で、三角記号からマイク→Soundflower(2ch)を選択。これで、PCで鳴る音をSoundflowerに出力し、その音をQuickTimePlayerで録音できるというわけ - ただし、これだとPC自体から音が鳴らなくなっちゃう。ので、LineInというソフトをインストール。 - LineInを起動し、InputFromをSoundflower(2ch)に、OutputToを DefaultSystemOutputにする。すると、Soundflowerの出力を分岐して通常のサウンド出力もするようになる。(環境設定→サウンド出力の設定はSoundflower(2ch)にしておくこと) 公式の解説動画 |
警告を出すには
- 実行時引数で指定する場合 $ perl -w test.pl - コードに埋め込む方法 #! /usr/bin/perl -w Unix以外なら、パスを書く必要がないので #!perl -w - プラグマを使う方法(Perl5.6以降) use warnings; より詳しいメッセージが見たいときは use diagnostics; |
リャマ本を読んで知ったことをつらつらと。
数値は内部ですべて倍精度浮動小数点数で扱われる。 その型は、PerlをコンパイルしたCのコンパイラのdouble型。 頭に0をつけると8進数、 0xだと16進数、 0bだと2進数。このあたりはCと同じ。 アンダースコアをカンマ代わりに入れられる。 バイナリデータも文字列として扱える。なぜならPerlは文字列にあらゆる文字が使えるから。そこに「組み込まれた制限は存在しない」。 シングルクォート文字列は、文字列をそのまま出す。例外はシングルクォート自身とバックスラッシュのみで、それらは2つ続けて書くことで表す。 ダブルクォート文字列は、バックスラッシュがエスケープになり、また変数展開が行われる。$の前にバックスラッシュをつけると展開されない。 @の前にもつけておく。でないと配列変数と見なそうとして警告が出る。 また、配列の添字と思われないように、[の前にもつけておく。 文字列の足し算はドット。+ ではない。型がないので、数値としての加算なのか文字列としての加算なのかを区別するために演算子が別になっていると思われる。 小文字のxだと文字列の乗算(文字列の繰り返し)。"a" x 3 が "aaa"になる。 文字列の比較演算子は eq, ne, lt, le, gt, ge, を使う。>や==を使うと、文字列を数値に変換して比較した結果を出す。このとき警告が出る(use warnings;のとき)。 末尾の改行を削除するには chomp($text); chomp $text; #でもいい chomp($text = 末尾以外の改行は削除しない。 未初期化変数には undef が格納されている。 これは数値とも文字列とも違うスカラー値であるが、数値では0、文字列では空文字列として振る舞う。初期化せずに使える(それがPerlのプラクティスとしてどうなのかは知らない) defined関数を使うとundefかどうか判別できる。 |
LAMP
Linux (OS) Apache HTTP Server (Webサーバ) MySQL (データベース) Perl, PHP, Python (スクリプト言語) の略。 動的ウェブコンテンツを含むウェブサイトの作成に適した、オープンソースのソフトウェア群のこと。 (Wikipediaから) MacでLinusを動かす方法 VMware Fusionを使うらしい。インストールの方法が書いてある。 その2。OSを選択し、仮想HD割り当て。 その3。Ubuntuをインストールしている。 Apache Wikipedia 商用から自宅サーバまで。 自宅サーバではNASをファイルサーバとして使うことが多い。また、httpsやsftpも使える。容量も自由でCGIやPHPなどサーバサイドコンテンツも好きなだけ使える。 NAS=Network Attached Storage。補助記憶装置であり、コンピュータ(コントローラ+ハードディスク)でもある。Wikipedia |
入力引数は
<> で表せる。これは、 を省略したもの。 入力引数がファイル名であれば、<> はそのファイルの中身になる。 以下のようにプログラミングし、
以下のコマンドで実行すると、data.txtの中身が出力される。 % perl test.pl data.txt ファイルを開くには
INFILEがファイルハンドル。 "<***" で入力とするファイル名を指定。">***"だと書き込み、">>***"だと追加書き込み。 使うときは とする。各行を表示するには
となる。 |
アニメーションクリップに入っているカーブを取得する方法。
とても発見しにくいが、AnimationUtilityというクラスにある。 AnimationClipCurveData[] curveData = AnimationUtility.GetAllCurves(srcClip); foreach (AnimationClipCurveData curveDatum in curveData) { AnimationCurve newCurve = curveDatum.curve; print("CURVE: " + curveDatum.type + "," + curveDatum.propertyName); という感じで使う。 |
DrawCallを減らすために、いくつかのメッシュ(ひとまずキューブ)をまとめて1つのオブジェクトにするスクリプトを作ってみる。
キューブその他のオブジェクトを作ると(GameObject->Create Others -> Cubeとか)、 コンポーネントとしては - Transform - Cube(Mesh filter) - Cube Collider - Mesh Renderer の4つがついたゲームオブジェクトが生成される。 TransformとColliderは置いといて、MeshFilterにまず注目。 見ると、Meshというプロパティがあり、Cubeというメッシュが入っている。 ここをクリックすると、プロジェクト内にあるメッシュの一覧が別画面で出る。ここから選んだメッシュがこのゲームオブジェクトになるわけ。 最初はたぶん、Cube,Sphere,Capsule,Plane,Cylinder の5つがある。 ここからメッシュを選んだらゲームに映るわけ。 公式のリファレンスを見てみる。 http://unity3d.com/support/documentation/ScriptReference/Mesh.html Meshクラスには、vertex配列がある。 同じ長さのnormal, tex coords0, tex coords1, color, tangent配列がある。(これらは任意) で、三角形はvertex配列へのインデックスとして表現する。 コンバインすること自体は、便利なことに関数が用意されてる。 http://unity3d.com/support/documentation/ScriptReference/Mesh.CombineMeshes.html もうこのサンプルをコピーして書くだけ。 マテリアルさえ一緒なら、見た目はまったくそのまま変わらないし、DrawCallも1回になるはずだ。 |