2011年11月12日土曜日

rpmのマクロの定義

rpmとかつくってると、あんまり考えずにBuildRootとかに、%{_tmppath}とか書いちゃうんですけど、じゃあいったいこの辺りの組み込みマクロってどこで定義されてるのよっていうのとちょっと調べたメモ。
rpmbuildのmanより

FILES
rpmrc Configuration
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
/etc/rpmrc
~/.rpmrc

Macro Configuration
/usr/lib/rpm/macros
/usr/lib/rpm/redhat/macros
/etc/rpm/macros
~/.rpmmacros

つまり、/usr/lib/rpm/macros とかにずらーっとありましたとさ。

2011年11月7日月曜日

MySQLでの制約メモ

制約あれこれ



  • 主キー制約(primary key制約)

  • 外部キー制約(Forein key制約)

  • 一意制約(Unique key制約)

  • 検査制約(check制約)


MySQLならでは



制約作成時の動作(oracleとの対比)

























種類MySQLOracle
PrimaryKey制約一意なインデックスを作成する既存のインデックスを使用するか、新しいインデックスを作成する
ForeinKey制約インデックスを生成するインデックスを生成しない
UniqueKey制約一意なインデックスを生成する既存のインデックスを使用するか、新しいインデックスを生成する

上記の表はオライリー初めてのSQLによっています。

2011年10月30日日曜日

iphone4s買ってしまいました

送信者 ドロップ ボックス

わたし、今までNexus oneメインだったのですがついに買ってしまいました。あいぽん。。。

いくつか思うところあるのですが、「スマホの基準が相変わらずあいぽん寄りなこと」がでかいです。直接的では無いにしろ、仕事上なんかAndroidとiphoneの違い知ってなきゃいけないかな、と思ってしまう私がいます。ユーザとしてですけどね。

とか言ってますが、一番はモンハン買ったときと一緒で、「みんないいなー」だと思います。

ただ、DocomoのXiとかも興味あるのでガラスマも買ってしまうかも。。。ま、それはそれということでw

2011年9月15日木曜日

redisコマンドチートシート

俺いっつも忘れるので。主にredis-cliの話です。
でも、これ書こうと思っていろいろ見てたら、さすがにだいたい覚えた感じ・・・。

redis 2.2 later想定です。

(なにはさておき)コマンドリファレンス


基本はこれを見ろよって話
コマンドリファレンス — redis v2.0.3 documentation

コマンドhelp


[bash]
$ redis-cli -h
redis-cli 2.3.9

Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h Server hostname (default: 127.0.0.1)
-p Server port (default: 6379)
-s Server socket (overrides hostname and port)
-a Password to use when connecting to the server
-r Execute specified command N times
-i When -r is used, waits seconds per command.
It is possible to specify sub-second times like -i 0.1.
-n Database number
-x Read last argument from STDIN
-d Multi-bulk delimiter in for raw formatting (default: \n)
--raw Use raw formatting for replies (default when STDOUT is not a tty)
--help Output this help and exit
--version Output version and exit

Examples:
cat /etc/passwd | redis-cli -x set mypasswd
redis-cli get mypasswd
redis-cli -r 100 lpush mylist x
redis-cli -r 100 -i 1 info | grep used_memory_human:

When no command is given, redis-cli starts in interactive mode.
Type "help" in interactive mode for information on available commands.
[/bash]

主なコマンド類



db切替


接続時に指定
[bash]
$ redis-cli -n 0
[/bash]
コンソール中で切替(mysqlでいうところのuse)
[bash]
redis> select 0
[/bash]

flushall:データ全部削除


[bash]
$ redis-cli flushall
[/bash]

monitor:動作監視


[bash]
$ redis-cli monitor
[/bash]

keys:key一覧


[bash]
$ redis-cli keys *
[/bash]

type:型の確認


[bash]
$ redis-cli type [key]
[/bash]

info:統計情報


memcacheのstatsみたいな感じっすね。confで有効化してないと出てこない値も多いです。
[bash]
$ redis-cli info
redis_version:2.2.13
redis_git_sha1:00000000
redis_git_dirty:0
arch_bits:64
multiplexing_api:epoll
process_id:9117
uptime_in_seconds:400
uptime_in_days:0
lru_clock:1575027
used_cpu_sys:0.00
used_cpu_user:0.00
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
connected_clients:2
connected_slaves:0
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
used_memory:807112
used_memory_human:788.20K
used_memory_rss:1503232
mem_fragmentation_ratio:1.86
use_tcmalloc:0
loading:0
aof_enabled:1
changes_since_last_save:1
bgsave_in_progress:0
last_save_time:1315984259
bgrewriteaof_in_progress:0
total_connections_received:6
total_commands_processed:42
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
hash_max_zipmap_entries:512
hash_max_zipmap_value:64
pubsub_channels:0
pubsub_patterns:0
vm_enabled:0
role:slave
master_host:172.28.238.160
master_port:6380
master_link_status:up
master_last_io_seconds_ago:5
master_sync_in_progress:0
[/bash]

参考になるリンク




おまけ


データ詰めたりして遊んでます。
[python]
#!/usr/bin/python2.6

import redis

if __name__=="__main__":

rpool = redis.ConnectionPool(host='xxx.xxx.xxx.xxx',port=6379,db=0)
r = redis.Redis(connection_pool=rpool)

cnt = 0
y = 0
while cnt < 70000:
y = str(y) + '0'
cnt += 1

for i in range(0,10000):
r.set('foo' + str(i),str(y) + str(i))
[/python]

2011年9月13日火曜日

MySQLでrootのパスワードをnullに戻すメモ

環境はmysql 5.5 GA

my.cnfに下記を追加してmysqlをrestart
[bash]
skip-grant-tables
[/bash]

mysqlにログイン
[bash]
$ mysql -uroot
[/bash]

下記のSQLを発行
[SQL]
> use mysql;
> update user set Password=null where Host='localhost' and User='root';
> FLUSH PRIVILEGES;
>\q
[/SQL]

その後SET PASSWORD~とかすればよいです

2011年9月6日火曜日

perlのハッシュ備忘録

メモ



  • 重複キーは上書きされる



基本形


[perl]
#!/usr/bin/perl

use strict;
use warnings;
use utf8;

#キーは文字列、値はスカラー
my %sample_hash = (
'hoge01' => 11,
'hoge02' => 12,
'hoge03' => 13,
);

#値の追加
$sample_hash{'hoge04'} = 14;

#値の削除
delete $sample_hash{'hoge01'};

#値の取り出し
foreach my $i (keys(%sample_hash)){
print $i.":".$sample_hash{$i}."\n";
}


[/perl]

以下書きかけ…

ハッシュスライス


多次元ハッシュエミュレーション

2011年8月28日日曜日

word press設置してみたよ

使い方よくわかんないけどね><
とりあえずデフォルトテンプレートというやる気のない俺。