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からつぶやけるようにしておく

PHP経由でTwitterからつぶやく

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も基本はこのソースを使っていけるようだ

Word pressでコメントに通し番号を付ける

コメント番号を取得するにはウィジェットを使う方法もあるが
どうもうまく行かなかったので自己流で解決

ここで示す方法の特徴は

ブログ全体で通し番号
コメントを削除しても番号を繰り上げない
外観→テーマ編集→コメント(comments.php)を編集する
番号を入れたい部分に

No.<?php echo $comment->comment_ID; ?>

と書くだけ。書き入れる場所は

<?php foreach ($comments as $comment) : ?>

の下ならどこでも大丈夫なはず

WordPress コメント表示をカスタマイズする

WordPressの場合、サイドバーに表示されるコメント履歴は

「○○○ ×××より」のような感じでイマイチ

自分で好きなようにカスタマイズする

プラグインを使用

「Recent Comments」

インストール後、設定->Recent Commentsで設定画面に入る

表示のカスタマイズは「Output」から行う

様々なタグが使えるので自分の好みに合わせる
例↓

<li><a href="{commenturl}">{commenter} : {title}</a></li>

outputのフォーマットを設定したら、外観->ウィジェット
Recent Commentsを表示するように変更する