画像のサイズについて

また女子アナ特集に戻ります。
弘中綾香アナです。幼さを清廉無垢でちょっと小悪魔的な存在が魅力的です。
f:id:linesnova:20150219110854j:plain
f:id:linesnova:20150219114026j:plain

さて、最近の自分はといえば、unityをさわるようになりました。
そこで、意外だったのが思った以上に画像の容量とかがメモリに与える影響が大きいと言うことです。

そこでまず基本的なサイズの求め方を記載したいと思います。

画像のサイズを求める

仮に対象の画像が「1024X1024」だった場合、

1024sizeX1024size=1048576ピクセル

色の表現に必要なビット数

色はRGBの3色で表現されます。Aというアルファがある場合にまた変わりますが、
今回は単純な例とします。
色の1色を表現するのは、一色256パターン=2^8 = 8bitなので

 8bit X 3色 = 24bit

これをサイズと掛け合わせてbitを求めます。

 1048576 X 24bit = 25,165,824bit

さらにここから、バイト単位に変換します

 25165824 / 8 = 3,145,728byte = 約3Mbyte

いかがだったでしょうか?
自分自身もまずこの計算がなにも考えずにできるようになるぐらいになりたいですね (・ω<)

unityでterrainにコライダを設定する

AKB特集をしてきましたが、今回で一度区切りをいれます。
少しは詳しくなったのでないでしょうか?
(5回しかしてませんが。。)

そして、今回は締めなので卒業生から、前田敦子さんです。
f:id:linesnova:20140917033042j:plain
いまさらですが、よさがわかってきた気がします。
最近ではCMなどで大活躍で、これからも活躍を期待したいです。

では、本題

最近はunityをやってます。今後メインになるでしょう。
こんな機会が得られたことをとても幸せなことだと思います。

思う存分やって生きたいと思います。

そして、今回はzenrinから提供されたotakucityというアセットについて、
語ります。

単純にunitychanを配置したい場合です。

この地形はコライダがないため突き抜けてしまいます。
なので「Mesh Collider」をつけてみようとおもいます。
このコライダは地形に合わせコライダをくっつけてくれるというものらしいです。

現在、試せる状況にはないため、また、試せそうなとき実行してみたいと思います。

ではでは

centos6でpythonを仮想空間で動かす

そろそろakbも未開の地になってきました。
特に現役ともなるとなおさら(ry

そんな中でも、増田有華さんです。歌唱力が高いらしいです。
f:id:linesnova:20140723172404j:plain

以前、centos5でいれたことがあるのですが、それに比べると非常に簡単です。
なぜなら、pythonが2.6以上でもともと入っているからです。

さて、それでは早速行きます。

まず、依存ライブラリーをインストールします。

yum install gcc gcc-c++ automake autoconf
yum install zlib-devel bzip2-devel ncurses-devel

その後、インストールしたいユーザにて、ライブラリーをがんがんインストールします。

curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
sudo easy_install pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper
vim .bashrc
>export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
>export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv
>export WORKON_HOME=$HOME/.virtualenvs
>source /usr/bin/virtualenvwrapper.sh
mkdir .virtualenvs

ここまでやったら、対象のversionのpythonを割り当てます。これでおわりです。

 pythonz install 3.2.2
 cd /home/<user>/.pythonz/bin/pythonz
 mkvirtualenv -p /home/<user>/.pythonz/pythons/CPython-3.2.2/bin/python py

lcync on centos6系

川栄李奈、バカキャラですが、一生懸命なところが好感もてます。
f:id:linesnova:20140716150959j:plain:h400]

今回は、centos6系のlsyncについて話そうと思います。

いつぞやlsync2.0系を使ってましたが、今回は2.1.4を使います。
微妙にoption設定や、その他変わっている箇所のみ説明します。

2.1系はyumでも最新なので、yumでフツーにインストールします。

yum install -y lsyncd

次に、lsync側の設定ファイルです
/etc/lsyncd.conf
ここでは、targetdirがポイントとなります。
送り先のhostのrsyncの設定を読みたい場合は、「:<識別子>」と記載する必要があるそうです。
これをしないと、permissionエラーがでたり、「Terminating since "insist" is not set」などよくわからないエラーがでてしまいます。

settings {
        logfile = "/var/log/lsyncd/lsyncd.log",
        statsfile = "/var/run/lsyncd.status",
        statusInterval = 1
}
sync{default.rsyncssh, source="/var/upload", host="xx.xx.xx.xx",targetdir=":data",rsync  = {
        _extra = {
            "-av",
            "--delete"
        }
    }}

次に受け側の設定ですが、portの指定をしてます。自分の場合ですが、「unable to bind any inbound sockets on port 873」こんなエラーがでてしまい、起動すらままならなかったので。。

log file = /var/log/rsyncd.log
port=874
[data]
path = /var/upload
read only = false
hosts allow = xx.xx.xx.xx

かなりざっくり書いたので、伝わるかふあんです。。

logの解析-特定列カウント編

AKB48特集
北原里英さんです。
たしか家族ゲームというドラマにでていて、自分はそのドラマが好きで、
感想板にかきこんじゃったりしちゃいました。

その中でも、けつの軽そうな女子高生役をやってて、しっくりきてました。か?
(最終的には、そこまでrya

ブスとか言われてますが、ぼてっと唇いいと思います。

f:id:linesnova:20140711143144j:plain


今回は、log解析です
いままで自分

  grep "error" hoge.log

とか書いていましたが、もっと便利なのがありました。

その前にちょいテクとして、タブ区切りの場合

  grep "error<tab>2014" hoge.log

みたいな場合、「control-V+tab」になります。

では、本題です。
awk(オーク)です。
やりたいことは、特定列に登場する同一文字列のカウントをするです。

less hoge.txt | awk '{ h[$8]++ } END { for(k in h) print h[k], k }' | sort -nr

このようなログがあったとするとhhxxの列=$8をカウント対象とします。

aa bb cc dd ee ff gg hh0 ii jj kk
aa bb cc dd ee ff gg hh2 ii jj kk
aa bb cc dd ee ff gg hh1 ii jj kk
aa bb cc dd ee ff gg hh1 ii jj kk

では、これを実行してみましょう。今回は、ヒアドキュメントをつかって、ファイルがなくてもできるやり方で試します。

cat <<EOT | awk '{ h[$8]++ } END { for(k in h) print h[k], k }' | sort -nr
> aa bb cc dd ee ff gg hh0 ii jj kk
> aa bb cc dd ee ff gg hh2 ii jj kk
> aa bb cc dd ee ff gg hh1 ii jj kk
> aa bb cc dd ee ff gg hh1 ii jj kk
> EOT
2 hh1
1 hh2
1 hh0
#下3行は出力結果です。

python よく使う基本操作

最近AKBの総選挙をきっかけに、そういえば、AKBは知ってるけど、象徴として捉えていて、
誰が所属しているのかはすでにわからなくなってましたorz

なので、即席ですが、オシメンを特集していこうと思います。

山本彩さんです。まー正統派でしょうか。こんな子がいたのかと思わされました。
f:id:linesnova:20140612162942j:plain
f:id:linesnova:20140612165527j:plain



小数点以下の丸め(四捨五入)

  round(<数値>,<丸め桁数>)
  ex)round(567 * 0.3,0)
  


date操作 
日本時間で比較

entry_time = dateutil.parser.parse("2014-06-12T10:34:27Z”) .replace(tzinfo=dateutil.tz.tzutc()).astimezone(dateutil.zoneinfo.gettz("Asia/Tokyo"))                          
line_time = datetime.datetime(2014, 6, 12, 11, 00, 00, tzinfo=dateutil.zoneinfo.gettz("Asia/Tokyo"))
if line_time < entry_time :
  ・・

番外
marvericksに変えたら、pythonインタラクティブモードで「Segmentation fault: 11」の
エラーがでるようになってしまいましたので、その対策として以下があるそうです。
readline.soを無効にすればよいのですが、履歴機能が使えなくなってしまうので、
自分にあった方で使う必要があるかもしれません。

http://bugs.python.org/issue18458#msg193470

git 特定のファイルを特定のコミットに戻す

ハイタニさんです。ラスカルです。まこと使いで、心の隙間を縫ってきます。
本能のまま、まるで獲物を捕獲するかのごとくプレーします。
大会などでは、盛り上がるプレーをよくしてくれるので盛り上がります。

f:id:linesnova:20140610164421j:plain

本編はかなり極小的な事なので、短いです。

正しいかわかりませんが、こんなときに使いました。

すでにリリース済みだが、一部ソースを前回のversionに戻したい、且つ本当に一部ソースなので
全戻しできない場合です。

別ブランチをcheck out状態でこのコマンドを叩くと、以前のソースに戻せます。

git checkout <commit id sha1> <file path/file name>