2011-01-01から1年間の記事一覧

XenServerのxeコマンドのtips

XenServerを使い始めてどれ位経ったか定かじゃないけど、使い始めた頃と今とでネットに転がってるXenServerの情報量が対して増えていない事に絶望した! 知っている事を抱え込んでいても仕方ないから、書き溜めたxeコマンドの実用的?な使い方を公開。 これ…

CentOSにKVMをインストールしてゲストOSをLVMで管理する

KVM

HP ProLiant N40L MicroServerに入れる。 ホストOSは、CentOS 6.1。 筐体内部にあるUSBポートにUSBメモリを挿して、そこにインストールした。 ゲストOSは、LVMで管理する。 bridge-utilsインストール [root@kvm ~]# yum install bridge-utils /etc/sysconfig…

RubyのIPAddrをPHPに移植した

何か必要に駆られて作ったと思ったんだけど、何に使おうとしたんだっけ。 今回、PHPUnit + Phing + JenkinsでCI環境を整えた。 カバレッジ解析もしたかったけど、Xdebugが必須らしく、面倒だったからやらなかった。 64bitを超える数値を扱う為にPear/Math_Bi…

Python用プロファイラPyXdebugを作った

PHPのXdebugみたいな感じ。 PyPIに登録した。 今のところ、1.2.2が最新。 pyxdebug 1.2.2 : Python Package Index http://pypi.python.org/pypi/pyxdebug インストール # easy_install pyxdebug メソッド実行をプロファイルする example_call_func.py #!/usr…

PythonでPHPのXdebugみたいなプロファイラ作った

作ってみたのはいいけど、WSGIで正しく動かない。 あと動作が遅い。 xdebug.py # set encoding=utf-8 import inspect import types from time import time import re import traceback import logging classname_reg = re.compile(r"<class '([^']+)'>") class Xdebug(object)</class>…

ハードディスクを追加する

久々にやって忘れてたからメモ。 パーティション作成 [root@localhost ~]# fdisk /dev/xvdb デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも 含んでいません 新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するま…

GAE/Pでスレッドの排他制御(synchronized)をする

Javaのsynchronized修飾子みたいなのを、デコレータで出来るようにした。 Memcacheを使ってる。 デコレートしたメソッドごとに排他制御出来るようにした。 synchronizedの引数でオプション指定が出来る。 オプションは、key / key_prefix / sleep_time / ret…

GAEでPython2.7を使ってthreadsafeを有効にする

なんだか解りづらいからメモ。 目的 本番サーバで、マルチスレッドで動かす。 開発サーバでも動くようにする。(残念ながらシングルスレッド) データストアはHigh Replication datastore必須 Python2.7を使う場合、データストアはHigh Replication datastor…

ReflectionMethod::invoke()が自由じゃない

PHP

ReflectionMethodクラスに定義されている、invokeメソッドとinvokeArgsメソッドについて。 第1引数は必ず$method->classのインスタンスでなければならない 第1引数は、$method->classもしくは$method->classを継承したクラスのインスタンスじゃなきゃ駄目。 …

PHPで無名クラスっぽいもの定義するAnonymousClassを作った

JavaScriptのfunctionにインスパイアされたようなようなものになった。 AnonymousClass \ パッケージ \ Openpear http://openpear.org/package/AnonymousClass AnonymousClassの特徴・制限 ・メソッドは全てClosure Objectで、インスタンス変数として格納す…

Xcode3とXcode4でInterface Builder(xib)と決別する

iPhoneとiPad用のプロジェクトテンプレートを作った。 xibを使わない方法でしかiPhoneアプリ作ってないから、Interface Builderの使い方をさっぱり知らずにここまで来てしまった。 それはそれで問題な気がする。(特にXcode4) Xcode3 設定方法 Empty iPhone…

GAEでセッションを管理するライブラリ作った

gaeutilitiesとかを使うのが一般的なんだろうけど、なんとなく気に食わなかったから作りなおした。 機能 memcacheだけを使う。 速い。 db.Modelは、遅いから使いたくなかった。 特にStorage SchemaがHigh Replicationの場合、めちゃくちゃ遅いて無理だった。…

日神住宅サポート(日神不動産)のサービスが非常に悪かった

6月に引っ越した。 その物件の管理を日神住宅サポートがしていて、そのサービスが非常に悪かった。 その件に関して会社に直接問い合わせた時の話。 随分と前の話だけど、誰かの参考になるかも知れないから書いておく。 問い合わせ内容 日神不動産株式会社 様…

PHP Extensionのスタブ生成ツール「PHPH」を作った

PHP

PHPファイルからPHP Extensionの雛形を生成するツール「PHPH」を作った。 CodeGen_PECLは、 ・実装するクラスのプロトタイプを、CodeGen_PECLの形式に沿ったXMLで作成。 ・メソッドの中身をXMLファイル内で実装。 ・PHP Extensionソースに変換。 PHPHは、 ・…

クラスCのプライベートネットワークアドレスの検索ヒット数一覧

世の中で(よく使われている|あまり使われていない)、192.168.xx.xxのネットワークって何なんだろう? と思って調べてみた。 結果 世の中で最も使われているのは、192.168.1.0/24。 世の中で最も使われていないのは、192.168.229.0/24。 この辺りが人気っぽく…

C言語でCRC32を計算してみた

バイナリデータから、4バイトのハッシュを生成する。 MD5やSHA1に比べてアルゴリズムが単純で速い。 データベースに文字列を入れる時に、その文字列のCRC32ハッシュをindexにすると検索が速い! って記事を見ていつかやってみようと思ってるけど、まだ実践投…

JavaのGenericsっぽいのをPHPで作ってみた

PHP

JavaのGenericsっぽいのをPHPでも使いたいなーと思って作ってみた。 PHPでは配列のKeyにObjectを指定出来ないから、とりあえずValueだけにした。 32bitで表現出来る数値と64bit必要な数値を共存させるならfloatに合わせる必要あり。 PHPの配列、使いづらい。…

Rubyで2Legged OAuthリクエストを行う

TwitterのAPIを叩くサンプルは見つかったけど、純粋な2Legged OAuthのやり方が見つからなかった。 だからメモ。 リクエストボディを指定して、リクエストを送る前にoauth!メソッドを呼ぶだけ。 #!/usr/bin/ruby require 'rubygems' require 'net/http' requi…

ASIHTTPRequestはPOSTメソッドの場合はキャッシュされない

リクエストメソッドがGET以外の時、downloadCacheにnilが代入されていた。 APIを叩く場合、どんな内容でもPOSTメソッドを使う事はよくある。 何かデータを取得する時にいちいちリクエストを送られても困る。 それで、POSTでもキャッシュしたい場合がある。 …

RubyのIPAddrクラスが使いにくい

使いにくいというか、ネットワーク向きではない? だからいくつかメソッドを追加してみた。 追加したメソッド bit_count selfのIPのビット数を返す。 IPv4なら32、IPv6なら128を返す。 cidr selfのCIDRを返す。 なんでこれが取得出来ないのか不思議な位。 ho…

Objective-Cで2Legged OAuthリクエストを行う

TwitterのAPIを叩くサンプルは見つかったけど、純粋な2Legged OAuthのやり方が見つからなかった。 だからメモ。 2Legged OAuthリクエスト OAuthConsumerライブラリを使う。 OAMutableURLRequestは、NSMutableURLRequestを継承したクラス。 OAConsumerは、コ…

CentOS用にRubyのRPMを作った

CentOSのYumリポジトリにあるRubyは古過ぎて、gemの依存で引っかかる事が多い。 だから自分でCentOS5用のRPM作った。 現在安定版とされている2つのバージョンのRubyと、最新のRubyGems。 ruby-1.8.7.p334-1.i386.rpm ruby-1.9.2.p180-1.i386.rpm rubygems-1.…

Objective-Cでmultipart/form-data形式でPOSTする

せっかく作ったけど、残念ながら使わなそう。 Randomクラスは前回作った物。 使い方 // multipart Multipart *multi = [[Multipart alloc] init]; [multi addString:@"aaaaaaaaaaaaaaaaaaaa" forKey:@"aaa"]; [multi addString:@"bbbbbbbbbbbbbbbbbbbb" forK…

Objective-Cで乱数を生成する

擬似乱数の生成はC言語。 全部Static。 JavaみたいにStatic initializerがあれば少しはマシになりそう。 出来る事 ランダムな整数を生成。 上限/下限を指定したランダムな整数を生成。 0.0〜1.0のランダムな小数を生成。 長さと使用する文字を指定して、ラン…

RubyでApacheのVirtualHostの設定ファイルを生成する

前に似たようなものをPHPで作ったけど、それより綺麗に書けた。 def main内を適宜書き換えて、rootで実行。 def config内で、CustomLog/ErrorLogの指定もした方がよさそう。 #!/usr/bin/ruby class VirtualHost def initialize(conffile, domains=[], hosts=…

ActionScriptでPunycode変換

これを移植した。 Punycode変換のコードを書いてみました - Operaの備忘録のぺえじ - チーム俺等 http://orera.g.hatena.ne.jp/misttrap/20080518/p1 jp/eth0/Punycode.as package jp.eth0 { public class Punycode { protected static const BASE:int = 36;…

地震のエネルギー量を計算する

PHP

マグニチュード(M)と別単位を相互変換をしてみた。 あと、強い地震を複数の弱い地震に分散した場合に何回地震を発生する必要があるか計算してみた。 これだけの莫大なエネルギー、どうにか有効活用出来ないのかな…。 マグニチュードと地震のエネルギー 地…

C言語で可変長配列を作った

JavaのArrayListを参考にしつつ、2種類作った。 mallocしたメモリの先頭アドレスの配列を保持するパターン voidポインタの配列。 配列の個数+1回mallocする。 charとか小さいものだと無駄がありそう。(特に64bitOSの場合) 配列の数が足らなくなったら、voi…

FedoraのCrontabの動きを調べてみた

CentOSでは、/etc/crontabは、こうなっている。 時間が来たら、run-partsでディレクトリ内のファイルを実行する単純な仕組み。 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.ho…

Advanced/W-ZERO3[es]からHYBRID W-ZERO3に機種変更した

料金について、納得して機種変したはずだけど、なんとなく解らなかったから、再度まとめた。 機種変更前 機種 : Advanced/W-ZERO3[es] 料金プラン : ウィルコム定額プラン オプション : リアルインターネットプラス オプション : W-VALUE SELECT 機種変更後 …