C# 配列コピーの速度比較
C#の配列コピーには何種類か関数があり、速度も異なる。
UnityではunsafeなMarshal.Copyを使うのは一般的ではないため割愛
Unityでunsafeを使って直接メモリ制御を行う - テラシュールブログ
関数 | 処理時間[msec] |
---|---|
CopyTo | 511 |
System.Array.Copy | 436 |
System.Buffer.BlockCopy | 402 |
テストコード
const int DATA_SIZE = 10000; const int TRY_COUNT = 1000000; void TestRunt() { byte[] byte1 = new byte[DATA_SIZE]; byte[] byte2 = new byte[DATA_SIZE]; for (int i = 0; i < DATA_SIZE; i++) { byte1 [i] = (byte)Random.Range (0, 256); } System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start (); for (int i = 0; i < TRY_COUNT; i++) { byte1.CopyTo (byte2, 0); } sw.Stop (); Debug.Log ("CopyTo:"+sw.ElapsedMilliseconds + " ave:" + sw.ElapsedMilliseconds / (float)TRY_COUNT); sw.Reset (); sw.Start (); for (int i = 0; i < TRY_COUNT; i++) { System.Array.Copy (byte1, byte2, byte1.Length); } sw.Stop (); Debug.Log ("System.Array.Copy:"+sw.ElapsedMilliseconds + " ave:" + sw.ElapsedMilliseconds / (float)TRY_COUNT); sw.Reset (); sw.Start (); for (int i = 0; i < TRY_COUNT; i++) { System.Buffer.BlockCopy (byte1, 0, byte2, 0, byte1.Length); } sw.Stop (); Debug.Log ("System.Buffer.BlockCopy:"+sw.ElapsedMilliseconds + " ave:" + sw.ElapsedMilliseconds / (float)TRY_COUNT); }
Fedora 19 Samba設定
Fedora 19をインストールしてみる on VMwarePlayer 4.0.5
http://itneko.blogspot.jp/2013/07/fedora-19-on-vmwareplayer-405.html
ファイアウォール・SELinuxを無効にする
以下すべてrootで行う
# systemctl stop firewalld.service
# systemctl disable firewalld.service
# vi /etc/sysconfig/selinux
「SELINUX=disabled」 に修正する
# reboot
sambaのインストール
# yum -y install samba samba-client
# mkdir /share
# chmod 777 /share
# vi /etc/samba/smb.conf
「workgroup = WORKGROUP」 に修正
security = user
map to guest = Bad User ←追加
[share]
comment = share
path = /share
public = Yes
writable = Yes
browseable = Yes
guest ok = Yes
guest only = Yes
create mode = 0777
directory mode = 0777
# systemctl start smb.service
# systemctl start nmb.service
# systemctl enable smb.service
# systemctl enable nmb.service
security = shareは廃止されているので
そのまま使おうとするとWARNINGが出てアクセスできない
WARNING: Ignoring invalid value 'share' for parameter 'security'
http://www.davekb.com/browse_computer_tips:samba4_warning_ignoring_invalid_value_share_for_parameter_security:txt
WordPressでページ上部にフリーエリアを追加する
FC2やlivedoorブログによくあるページ上部にあるフリーエリア
WordPressだと一工夫必要
3カラムのテーマをベースに編集していきます
wp-content/themes/テーマ名/functions.php を編集
register_sidebarsを2から3に変更
<?php if ( function_exists('register_sidebars') ) register_sidebars(3); ?>
すると、外観→ウィジェットにサイドバー3が現れる
そしたら、外観→テーマ編集からindex.phpとsingle.phpを編集する
<div class="content-area"> <div id="header3"> <div class="header3-waku"> <?php dynamic_sidebar(3) ?> </div> </div> <!-- header3 --> <?php if (have_posts()) : ?>
フリーエリアを入れたい位置にを挿入すればOK
これでサイドバーと同じように上部のフリーエリアもウィジェットが使えるようになる
cronを使ったTwitter bot作成
さくらサーバでの設定方法
1. 以下で作成したソースを使ってPHPからつぶやけるようにしておく
2. さくらサーバの設定にログインする
メニューからcronの設定を選ぶ
3.新規項目の追加を選択し、パラメータを設定する
実行コマンドがやや特殊
例えば、実行したいphpのファイルが「/home/hogehoge/www/test.php」にあったとする
その場合の実行コマンドは「cd /home/hogehoge/www/ ; /usr/local/bin/php test.php 1> /dev/null」
「1> /dev/null」は付けると、cron実行時のログメールが来ないようになる
実行日時の設定方法は設定ページ下部に詳しく書かれていて親切
4.あとはcronが実行されてつぶやかれるのを待つだけ
PHP経由でTwitterからつぶやく
ほとんど
http://www.sdn-project.net/labo/oauth.html
そのままで、行ける。
特に躓くような場所はない。
Twitterに登録して、"twitteroauth"をダウンロードしてくる
そして、サーバ上に置いてやる
ソースが書けたら、直接phpにアクセスすると
「OAuth経由のツイートテスト」が表示される。
"false"がたくさんdumpされるが成功しているようだった
cronを使ったbotも基本はこのソースを使っていけるようだ