忍者ブログ
  • 2024.10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 2024.12
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【2024/11/25 07:56 】 |
perl環境設定
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
【2013/01/03 16:54 】 | サーバ | 有り難いご意見(0)
AWS使う
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に以下のように書いておく

Host aws
HostName XXXX.compute.amazonaws.com
IdentityFile ~/path/to/XXX.pem
User ec2-user
と、以下のコマンドを打てば接続できるようになる
% 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開いてる?


【2013/01/03 16:26 】 | サーバ | 有り難いご意見(0)
動画
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)にしておくこと)



公式の解説動画

【2012/03/23 17:14 】 | 未選択 | 有り難いご意見(0)
Perlの配列
「リスト」とは、スカラーの集合のこと。データ。
「配列(array)」とは、リストを格納する変数のこと。

$fred
$fred[0]
$fred[1]
はすべて別物。紛らわしいけど。

インデックスが末尾より大きいときは、undefを返す。(未初期化スカラー変数にアクセスしたのと同じと考えればよい)
末尾のインデックス値は、$#fred で取得できる。(サイズ100の配列なら、$#fredは99)
インデックスは負値も指定できる。-1 は$#fredと同じ位置を指す。インデックスが負の方向にはみ出すとundefを返す。値を格納しようとすると致命的エラーになる。

リストリテラルの書き方は
(0, 1, 2)
("a", "b", "c")
qw (a b c) #上と同じ意味。シングルクォート文字列扱いであることに注意。
qw #これも同じ。デリミタは何の記号文字でもいい
qw !a b c! #これも同じ。

代入には
($a, $b, $c) = qw(a b c);
とする。
($lhs, $rhs) = ($rhs, $lhs);
とすればswapできる。
左右の要素数が合わないときは、黙って捨てられるか、undefが代入される。(元々値が入っていても、undefで上書きされる)

@記号を使うと、配列全体を表す。
($ary[0], $ary[1], $ary[2]) = qw(x y z);
@ary = qw(x y z); #上と同じ
@ary2 = (@ary, 3, @ary); #こんな書き方も

ただし、スカラーコンテキストでは、@ary は配列の要素数を返す。

インデックスを使わない書き方。
末尾に追加、削除する
@ary = (1, 2, 3);
push @ary, 0 # @ary == (1,2,3,0)
push @ary, @ary #@ary==(1,2,3,0,1,2,3,0)
push @ary, 5..7 #@ary == (1,2,3,0,1,2,3,0,5,6,7)
pop @ary #@ary == (1,2,3,0,1,2,3,0,5,6)

先頭に追加、削除する。shift(=pop),unshift(=push)

ソートする
@ary = sort @ary;
これはスカラーコンテキストはない(常にundefを返す)

要素を逆順にする
@ary = reverse @ary;
スカラーコンテキストでは、文字列の全文字を逆に並べる
$rev = reverse @ary; #@ary == (10,20,30) なら $rev = "030201"
どっちとも取れるコンテキストだと、リストコンテキストと見なすようだ
print reverse @ary; # 302010 と表示される
print scalar reverse @ary; # 030201 になる。スカラーコンテキストを強制
$rev = reverse @ary; #030201
@rev = reverse @ary; #30 20 10

リストコンテキストを強制するには、カッコをつける。
($a) = reverse @ary; # 実際reverseはリストコンテキストなので不要だが

その他の例

スカラーコンテキストでは、次の1行を返す
while () {...}
リストコンテキストでは、残りの行を配列にして返す
@lines = ;
【2012/03/10 23:28 】 | perl | 有り難いご意見(0)
Perlの実行
警告を出すには

- 実行時引数で指定する場合
$ perl -w test.pl

- コードに埋め込む方法
#! /usr/bin/perl -w
Unix以外なら、パスを書く必要がないので
#!perl -w

- プラグマを使う方法(Perl5.6以降)
use warnings;


より詳しいメッセージが見たいときは
use diagnostics;


【2012/03/10 22:26 】 | perl | 有り難いご意見(0)
Perlのスカラー変数
リャマ本を読んで知ったことをつらつらと。

数値は内部ですべて倍精度浮動小数点数で扱われる。
その型は、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かどうか判別できる。


【2012/03/10 22:20 】 | perl | 有り難いご意見(0)
LAMP
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

【2012/03/10 21:46 】 | サーバ | 有り難いご意見(0)
perlで入出力
入力引数は
<>
で表せる。これは、

を省略したもの。

入力引数がファイル名であれば、<> はそのファイルの中身になる。

以下のようにプログラミングし、

print <>;


以下のコマンドで実行すると、data.txtの中身が出力される。
% perl test.pl data.txt


ファイルを開くには

my $ret = open INFILE, "


INFILEがファイルハンドル。 "<***" で入力とするファイル名を指定。">***"だと書き込み、">>***"だと追加書き込み。
使うときは

とする。各行を表示するには

while () {
print $_;
}

となる。

【2012/03/10 20:47 】 | perl | 有り難いご意見(0)
アニメーションカーブを取得する
アニメーションクリップに入っているカーブを取得する方法。
とても発見しにくいが、AnimationUtilityというクラスにある。

AnimationClipCurveData[] curveData = AnimationUtility.GetAllCurves(srcClip);
foreach (AnimationClipCurveData curveDatum in curveData) {
AnimationCurve newCurve = curveDatum.curve;
print("CURVE: " + curveDatum.type + "," + curveDatum.propertyName);

という感じで使う。

【2012/03/02 03:17 】 | UNITY | 有り難いご意見(0)
メッシュコンバイン
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回になるはずだ。

【2012/02/29 15:20 】 | UNITY | 有り難いご意見(0)
<<前ページ | ホーム | 次ページ>>