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

XenServerのドメインUにシングルユーザモードでログインする

オープンソースのXenではpyGrubの起動カーネル選択画面が出たような気がするけど、XenServerだと起動する前に起動モードを指定しておくらしい。 UUID=d2508607-85a8-4af8-db80-d0023a4ffbf3 # シングルユーザモードに設定 xe vm-param-set uuid=$UUID PV-arg…

HipHop for PHPをインストールしてみた

PHP

Facebookが開発したPHPからC++に変換するツール「HipHop for PHP」をインストールしてみた。 インストール 極力yumで入れる。 # install php 5.2 yum -y install apr apr-util gmp yum -y install --enablerepo=c5-testing --disablerepo=base,updates php p…

Class.cast()について調べてみた

ジェネリクスと同じくJDK1.5で導入された、Class.cast()について調べてみた。 Class.cast()とは うまい事型を変換してくれる便利機能かと思ったら、全然違った。 Objectで表されているけど実は中身はInteger、とかそういう時に使う。 キャスト演算子。 impor…

ジェネリクスを使ってClassを渡してClassのインスタンスを返す

クラス全体でKとかVとか指定するのは前にやったけど、メソッド1つだけで有効なKとかVとかを指定する方法を知った。 スタティックメソッドとかの時に便利そう。 Class.forName()でClassを取ってくる方法だと、キャストしなきゃいけなそう。 Class.cast()とい…

HttpServletRequestのラッパークラス作った

ClassCastExceptionに嫌気が差した。 ぬるぽにも嫌気が差した。 使う側でキャストせず、リターン型の決まったメソッドを使って取得。 Pythonみたいに、nullだった場合のデフォルト値も指定出来る。 型は今回必要なものだけ作った。 Pythonは最初から便利なメ…

MacでDropbox Folder Locationを変更する

Dropbox Folder Locationを変えても、必ず"Dropbox"というディレクトリは作られてしまう。 これはなかなか邪魔臭い。 で、変更するスクリプトをPythonで作った。 使い方。 $ change_dropbox_folder_location.py '/Users/eth0jp/Documents/files' ソース。 #!…

MacとiPhoneでアニメーションGIFを表示する方法まとめ

まとまってるページがなさそうだったから、調べた事をメモ。 Macの場合 AppKitのNSImageを使えば勝手に動く。 サイズ17x17、コマ数3、描画時間1コマ辺り0.1秒、のGIFを表示させるのに、CPUを1.5%位使い続ける。 どうやらアニメーションGIFの描画は重いらしい…

Net::UPnPを使ってポートマッピング(ポートフォワーディング)する

どこかで見つけたもののほぼコピー。 本当はRubyでやりたかったけど、やり方が解らなかったからPerlで。 外側からTCPの22040ポートにアクセスが来たら、192.168.0.40の22ポートにフォワードする。 こんな感じのを各サーバに入れておいて、サーバ起動時とかに…

Javaのジェネリクスとやらを試してみた

今まで古いバージョンのJavaしか使った事がなかったのか、ジェネリクスというものの存在すら知らなかった。 よく解らないから、とりあえずPythonのListっぽいものを作ってみた。(中身はArrayListだけど) JavaのCollectionインターフェイスの文化が崩壊したけ…

Perlのオブジェクト指向辺りの事を調べてみた

なかなか興味深い。 モジュールを定義する時のルール ファイルの拡張子は"pm"。 pmじゃないと、useしたときに見つからなくてエラーが出る。 Can't locate TestClass1.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /u…

Ruby on RailsでMySQL Clusterの使えるようにするプラグインを作ってみた

似たようなプラグインもいくつかあったけど、どれもしっくり来なかったから自分で作った。 その名も「Mysql Cluster Adapter」。 eth0jp's activerecord-mysql_cluster_adapter at master - GitHub http://github.com/eth0jp/activerecord-mysql_cluster_ada…

テントモンをカブテリモンに進化させるプログラムを作ってみた

デジモンアドベンチャー5話「電光!カブテリモン」で光子郎がX-Basic(と思われる言語)でテントモンをカブテリモンに進化させていた。 これが何をするものなのか気になって、JavaScriptに移植してみた。 fractalっていう再帰的関数を定義してあるからどんなか…

rake db:migrateでcreate_tableする時のストレージエンジンを指定するプラグイン作った

データベースをrakeで管理する場合、ストレージエンジンを指定してテーブルを作る時は、いちいちこんなのを書かなきゃいけない。 ちょっとした事なんだけど、非常に面倒くさい。 create_table :table_name, :options => "engine=MyISAM" 何かいい方法はない…

ソートアルゴリズムについて調べてみた

結構な量のソートアルゴリズムをやってみた。 ここら辺を参考に。 ソート - Wikipedia http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%BC%E3%83%88 ヒープソートは、かなり短くした。 可読性は酷いもんだ。 気が向いたら他のアルゴリズムも追記するかも知れ…

PHPで二分探索木やってみた

二分木構造で二分探索を行う。 多分こんな感じ。 削除が面倒臭いなぁ。 ソース data = $data; $this->left = null; $this->right = null; } } class BinaryTree { private $_root; // コンストラクタ public function __construct() { $this->_root…

PHPのMath関数を再発明してみた

言うまでもなくdankogai氏の1ヶ月位前のブログに触発されて。 普段から使うMath系の関数もあるけど、中で何をやってるのか知らなかったから再発明してみた。 乱数とX進数からX進数へ変換以外の関数は全て。 四角い車輪。 極力よく見かける公式とかに合わせた…

NagiosでCPU使用率を調べるプラグインを作ってみた

CPU使用率を調べるプラグインは世の中にいろいろ出回ってるっぽいけど、何が重いかを調べられるのが見つからなかったので、自分で作った。 $SERVICEOUTPUT$がプラグインの出力に置き換えられるっぽいけど、なぜか1行目しかメールで来ない。 Webからはちゃん…

PHPでハッシュ探索やってみた

PHPでハッシュ探索(ハッシュ法)やってみた。 配列と連想配列の区別がないPHPでやっても意味ない気がするけど、とりあえずアルゴリズムが知りたかった。 ハッシュ関数はsha1を使用。 数字がでか過ぎたからgmp使った。 オープンアドレス法で、初期状態と削除済…

IPsec(L2TPD)でVPNサーバを立ててみた

IPsec(L2TPD)でVPNサーバを立ててみた。 OpenVPNで言う所の、ブリッジモード。 クライアントはサーバと同じネットワークに追加される。 必要なファイル全部記載。 詳しくは参考URLを。 サーバはCentOS。 XL2TPD インストール yum -y install --enablerepo=ep…

CoreDataを扱いやすくするライブラリを作ってみた

CoreDataの基本的な使い方が解るまでに1週間位かかった。 で、とりあえずライブラリにした。 殆どコピーだけど。 概念を理解するのに時間がかかった。 大したことはやってない。 こんな感じのが最初から用意されてたら解りやすかっただろう、という概念理解…

MySQL Clusterのエラーについて調べてみた

設定自体は結構前に終わってたんだけど、改めてエラーについて調べてみた。 どうしてエラーが出るのか、何をどうすればエラーが出なくなるのか、の辺り。 運用中のエラーはまだ出た事がない。 今まで見た事のあるエラーはこれで全部。 あとは設定の確認方法…

Pearにパッケージ提案のドラフトを作成してみた

Openpearで登録してあったHTTP_OAuthProviderをPearにパッケージの提案をしてみようかと。 今回は、とりあえずドラフトの作成まで。 HTTP_OAuthProvider - Openpear http://openpear.org/package/HTTP_OAuthProvider アカウント発行 待たされた。 Your accou…

HTTP_OAuthProviderにSAP用のSignature検証機能を追加してみた

コンシューマのライブラリに追加した方が自然なのかなと思ったけど、機能的にはプロバイダだから、HTTP_OAuthProviderに追加。 mixiではSAPという呼び方をしてるけど、この用語はOpenSocial共通の言葉なんだろうか…? Social Application Providerの略らしい…

XenServerのライセンス期限が近づいたらメールで通知するようにしてみた

XenAPIでライセンスの期限を調べて、期限が近づいてたらメールで通知する。 コマンドラインだと、このコマンド。 xe host-license-view メールは、普段ならPostfixを入れるけど、XenServerのホストマシンには殆ど何も入れられないから、元々入ってるPythonで…

XenServerのライセンスが切れたらどうなるのか調べてみた

XenServerのライセンスが切れたらどうなるのか調べてみよう! …と思い立ったのが、確か3ヶ月位前。 気づいたらとっくに切れてた。 ライセンスが切れてるのに気づいた サーバのハードディスクのランプが光っていた。 何ヶ月もつけっぱなしにしてたし、XenServ…

Dropboxの仕様を調べてみた

セキュリティ部分について調べるつもりが、何か別の所まで調べてしまった気がする。 C:\Documents and Settings\USERNAME\Application Data\Dropbox\host.db 1行目 16進数表記の文字列。 16進数表記で40バイト。 バイナリ表記で20バイト。 2行目 Base64エン…

UIScrollViewで縦にドラッグしたか横にドラッグしたかで挙動を変える

縦長のビューを作って、縦にドラッグした時と横にドラッグした時で挙動を変えたい。 例えば、こんなUIScrollViewがあったとする。 frame => CGRectMake(0,20,320,460) contentSize => CGSizeMake(320, 800) これなら通常なら横にドラッグしても何も起こらな…

HTTP_OAuthProviderのトークン保持にMemcachedとMemcacheを追加した

HTTP_OAuthProviderのトークン保持は今までCache_Liteしか使えなかった。 流石にそれだけじゃあ寂しかったので追加。 Pecl::MemcachedとPecl::Memcacheを追加。 世の中の流れとしては、Pecl::Memcached推奨らしい…。 トークンの保持するクラスは、ストアドラ…

HTTP_OAuthConsumerに3Legged系のメソッドを追加した

以下メソッドを追加した。 ・getRequestToken ・getAuthorizeURL ・getAccessToken メソッド名は、HTTP_OAuth_Consumerと同じにした。 ただ、引数はちょっと違う。 example 前回と同じく、以下ソースを修正。 HTTP_OAuthを利用してTwitterのOAuth認証を行う …

OpenpearでHTTP_OAuthProviderを公開してみた

公開した。 Openpearでパッケージを公開するとメールアドレスも公開されるという事をさっき知った。 もういいやと思って、文中のPear準拠のコメント部分で本名も晒した。 プログラムは去年書いたものをベースにしたんだけど、結構書き方も変わった。 なかな…