MySQLで1677万7千2百16件のレコード

16,777,216という数字は256の3乗


"0";"0,0,0";"000000"
"1";"0,0,1";"000001"
"2";"0,0,2";"000002"



"16777213";"255,255,253";"FFFFFD"
"16777214";"255,255,254";"FFFFFE"
"16777215";"255,255,255";"FFFFFF"

というtest.txtファイルを作り
/var/www/phpmyadmin/upload/
へ置く。

fullcolorというテーブルを作り、id(UNSIGNED INT(10)),rgb_number(char(11)),hexadecimal_number(char(6))というフィールドを作る。

データのインポート前に主キーやUNIQUE 制約を外す。

LOAD DATA INFILE "/var/www/phpmyadmin/upload/test.txt" INTO TABLE fullcolor FIELDS TERMINATED BY ';' ENCLOSED BY '"'
16777216 行挿入しました。 ( クエリの実行時間 275.6740)
ALTER TABLE `fullcolor` ADD PRIMARY KEY (`id`) 
id に主キーを追加しました ( クエリの実行時間 491.7823)
ALTER TABLE `fullcolor` ADD UNIQUE ( `rgb_number` )
rgb_number にインデックスを追加しました ( クエリの実行時間 232.1061)
ALTER TABLE `fullcolor` ADD UNIQUE ( `hexadecimal_number` )
hexadecimal_number にインデックスを追加しました ( クエリの実行時間 184.1452)

データのインポート前に主キーやUNIQUE 制約をつけた場合、
7時間かかった(*´ェ`)

カテゴリー: Server | コメントをどうぞ

OpenTKでアプリ ぴくせるぶろっく(仮)

OpenTKを使って何かアプリを作ろう(*´ェ`)

2Dの画像を読み取り3Dデータにして書き出してみよう(*´ェ`)

ぴくせるぶろっく(仮)

書き出された3DデータはWavefront OBJ形式でLightWave3Dに読み込んでアニメーションさせてみた(*゚ェ゚*)

2D画像のピクセルを正方形の3Dのブロック状にするだけで
アプリに表示される3DビューはX-Y-Z軸回転と視野角、拡大縮小機能が付いてる、おまけみたいなもの(*´ェ`)

その3DビューにOpenGLを使って3Dモデルを表示させているのだ(*´ェ`)

書き出されたWavefront OBJ形式のファイルはPhotoShopでも読み込めたりする(*´ェ`)

カテゴリー: もふもふ, プログラミング | タグ: , , , , | コメントをどうぞ

Apacheログを指定の日数で取り出すシェルスクリプト 2

“今日を含まない”指定した日数で取り出すか
“今日を含む”指定した日数で取り出すか指定できるようにした(*´ェ`)

-t オプションを付けると today で“今日を含む”
-y オプションを付けると yesterday で“今日を含まない”

#!/bin/bash
 
######################
#
# option  : -t[--today]|-y[--yesterday]
#
# version : Charlie
# author  : foloro
#
######################
 
#使用方法
function usage() {
	echo "使用方法 : $0 -t|-y 日数" 1>&2
}
 
#引数の数をチェック
if [ $# -ne 2 ]; then
	usage
	exit 1
fi
 
#引数のオプションをチェック
if ! [ $1 == "-t" -o $1 == "-y" -o $1 == "--today" -o $1 == "--yesterday" ]; then
	usage
	exit 1
fi
 
#引数の日数が数字かチェック
if [ `expr "$2" : '[[:digit:]]*'` -eq 0 ] > /dev/null ; then
	usage
	exit 1
fi
 
#引数の過去の日数をチェック
if [ $2 -lt 1 ]; then
	echo "日数は1以上の値で指定してください" 1>&2
	exit 1
fi
 
#日付を配列に格納する
DAYNUM=$2
 
case $1 in
  "-t" | "--today" )
	for (( i = 0; i < $DAYNUM; i++ ))
	do
		DAYS[i]=`LANG=C date -d "$i days ago" +"%d/%b/%Y"`
	done
	;;
  "-y" | "--yesterday" )
	for (( i = 1; i <= $DAYNUM; i++ ))
	do
		DAYS[i-1]=`LANG=C date -d "$i days ago" +"%d/%b/%Y"`
	done
	;;
  * )
	usage
	exit 1
	;;
esac
 
searchQuery=${DAYS[0]}
 
for (( i = 1; i < $DAYNUM; i++ ))
do
	searchQuery="$searchQuery""|""${DAYS[$i]}"
done
 
grep -E $searchQuery

使い方
シェルスクリプトをcutlogday.shという名前で作成して
Apacheのアクセスログがspecial-forces.jp-access_log-yyyymmddで“今日を含む”過去10日間のログが欲しい場合

cat /var/log/httpd/special-forces.jp-access_log* | ./cutlogday.sh -t 10 > matometa.log

もしこのシェルスクリプトをパイプなしで実行した場合

./cutlogday.sh -t 10

標準入力となる(*´ェ`)

Version Delta へ続く。

カテゴリー: プログラミング | タグ: , , | コメントをどうぞ

Apacheログを指定の日数で取り出すシェルスクリプト

Apacheのアクセスログから“今日[実行日]を含まない”指定した日数分を取り出すシェルスクリプトがあれば便利だなと思って作ってみた(*´ェ`)
というより必要だったのだ(*´ェ`)>

イメージにするとこんな感じ
Apacheのアクセスログは月別に保存されている。
cutlogday

#!/bin/bash
 
######################
#
# version : Alpha
# author  : foloro
#
######################
 
#引数の数をチェック
if [ $# -ne 3 ]; then
	echo "使用方法 : $0 過去の日数 入力ファイル 出力ファイル"
	exit 1
fi
 
#引数の過去の日数をチェック
if [ $1 -lt 1 ]; then
	echo "日数は1以上の値で指定してください"
	exit 1
fi
 
#引数の入力ファイルが存在するか
if [ -f $2 ]; then
	echo "ファイルが存在しません"
	exit 1
fi
 
#変数に引数の日数、入力ファイル、出力ファイルのパスを格納する
DAYNUM=$1
INPUTFILE=$2
OUTPUTFILE=$3
 
for (( i = 1; i <= $DAYNUM; i++ ))
do
	DAYS[i-1]=`LANG=C date -d "$i days ago" +"%d/%b/%Y"`
done
 
searchQuery=${DAYS[0]}
 
for (( i = 1; i < $DAYNUM; i++ ))
do
	searchQuery="$searchQuery""|""${DAYS[$i]}"
done
 
echo $searchQuery
 
cat $INPUTFILE | grep -E $searchQuery > $OUTPUTFILE

使い方
シェルスクリプトをcutlogday.shという名前で作成して
Apacheのアクセスログがspecial-forces.jp-access_log-yyyymmddで過去100日間のログが欲しい場合

./cutlogday.sh 100 /var/log/httpd/special-forces.jp-access_log* matometa.log

とすれば、matometa.logに指定した今日を含めない過去100日分のログが書き出されている(*´ェ`)

という風に使おうと思っていたらどうもスマートじゃない気がする(*´ェ`)
友達から“UNIXという考え方”という本を薦められて買って読んだらピンと来た∑(*゚ェ゚*)ピコン!

そして書き直したコードがこっち

#!/bin/bash
 
######################
#
# version : Bravo
# author  : foloro
#
######################
 
#引数の数をチェック
if [ $# -ne 1 ]; then
	echo "使用方法 : $0 過去の日数"
	exit 1
fi
 
#引数の過去の日数をチェック
if [ $1 -lt 1 ]; then
	echo "日数は1以上の値で指定してください"
	exit 1
fi
 
#日付を配列に格納する
DAYNUM=$1
 
for (( i = 1; i <= $DAYNUM; i++ ))
do
	DAYS[i-1]=`LANG=C date -d "$i days ago" +"%d/%b/%Y"`
done
 
searchQuery=${DAYS[0]}
 
for (( i = 1; i < $DAYNUM; i++ ))
do
	searchQuery="$searchQuery""|""${DAYS[$i]}"
done
 
grep -E $searchQuery

使い方
シェルスクリプトをcutlogday.shという名前で作成して
Apacheのアクセスログがspecial-forces.jp-access_log-yyyymmddで過去10日間のログが欲しい場合

cat /var/log/httpd/special-forces.jp-access_log* | ./cutlogday.sh 10 > matometa.log

こうゆうことなのだ∑(*゚ェ゚*)

でも過去2日間のログを取り出すだけで過去何ヶ月ものログを開いているのは無駄な気がする(*´ェ`)

Version Charlie へ続く。

カテゴリー: Server, プログラミング | タグ: , , | コメントをどうぞ

Size of Rounded Rectangle

角丸のサイズってすぐに忘れてしまうので(*´ェ`)

カテゴリー: もふもふ, デザイン | タグ: | コメントをどうぞ

グラデーションとノイズ

グラデーションにノイズが乗ると存在感が増す(*´ェ`)

グラデーション+ノイズ

ちょっとザラザラした感じが好き(*´ェ`)

しばらく多用していこう(*´ェ`)

カテゴリー: デザイン | タグ: | コメントをどうぞ

Adobe 製品のアップグレードポリシーが変更されたので

Adobe Master Collection CS5.5 のアップグレード版を購入(*´ェ`)

今ならキャッシュバックキャンペーンをしているので結構お得(*´ェ`)

カテゴリー: もふもふ | 2件のコメント

PLEXTOR PX-128M2P 買った

メインパソコンのシステムドライブをSSDにしようと思い PLEXTOR PX-128M2P を購入(*´ェ`)

 

SSD PLEXTOR SSD M2Pシリーズ PX-128M2P

P6X58D-EのSATA3のポートに繋げてWindows7 をインストール(*´ェ`)

単体でシステムが入ってこの読み込み速度、書き込み速度なら満足満足(*´ェ`)

※2011/12/04 追記
P6X58D-EのSATA3は外部チップの Marvell 9128 controller なので、このあたりが限界値のよう(*´ェ`)
Marvell 9128 ではなくMarvell 9182 であればもう少し読み書きが速くなるはず(*´ェ`)
X58マザーでMarvell 9182 controller を積んでるのはGIGABYTE の G1-KillerシリーズとGA-X58A-OC
それとASUSのRampage III Black Edition があるみたい(*゚ェ゚*)

カテゴリー: もふもふ | タグ: | コメントをどうぞ

FOR_EasilyLinesを64bit対応

昔作ったFOR_EasilyLinesを64bit版 LightWaveに対応させてみた(*´ェ`)

32bit版との違いは、Pluginの名前、

FOR_EasilyLines → FLR_EasilyLines

と、ソースコードを少しだけ保守性を高めて、機能に変わりはない(*´ェ`)

カテゴリー: CG, プログラミング | タグ: , | コメントをどうぞ

MuninでHDDの使用量と空き容量を監視

MuninでHDDの使用量と空き容量を表示してみよう(*´ェ`)

まーずーは
Munin Exchange | freedisk plugin
からプラグインをダウンロード。
作者さんのサイトはこちら

ダウンロードしたプラグインを
/usr/share/munin/plugins/
ディレクトリに入れる。
実行権限を付加するのを忘れないように!d(゚ー゚*)o

df
コマンドで監視したいHDDを調べる

私が監視したいのは rootfs と home なので
ln -s /usr/share/munin/plugins/freedisk /etc/munin/plugins/freedisk_roots


ln -s /usr/share/munin/plugins/freedisk /etc/munin/plugins/freedisk_home

にした(*´ェ`)

sda1の場合は
ln -s /usr/share/munin/plugins/freedisk /etc/munin/plugins/freedisk_sda1

そしてmunin-node を再起動
/etc/rc.d/init.d/munin-node restart

5分ほど待った後・・・

ハイ、表示された(*゚ェ゚*)
munin-freedisk

んがしかし、このままでは空き容量のラインがディスク容量の裏に描画されており見難いというか見えないなので表にだしてやる(*´ェ`)

ついでに使用量も表示するようにプラグインを改変する(*´ェ`)
改変したコードを公開していいか分からないので公開しません <(_ _)>

うん見やすい(*゚ェ゚*)
munin-freedisk

カテゴリー: Server | タグ: , , , | コメントをどうぞ