連休中にギターをタダで貰ったので久しぶりに(10年ぶりぐらい)触りたくなって、オーディオインターフェースやスコアを買いにチャリで御茶ノ水に行ってきました・・・

         ,. -‐'''''""¨¨¨ヽ
         (.___,,,... -ァァフ| 
          |i i|    }! }} //|
         |l、{   j} /,,ィ//|       『と思ったらいつのまにか
        i|:!ヾ、_ノ/ u {:}//ヘ        液晶ディスプレイを買っていた』 
        |リ u' }  ,ノ _,!V,ハ |
       /´fト、_{ル{,ィ'eラ , タ人 
     /'   ヾ|宀| {´,)⌒`/ |<ヽトiゝ
    ,゙  / )ヽ iLレ  u' | | ヾlトハ〉
     |/_/  ハ !ニ⊇ '/:}  V:::::ヽ 
    // 二二二7'T'' /u' __ /:::::::/`ヽ
   /'´r -―一ァ‐゙T´ '"´ /::::/-‐  \ 
   / //   广¨´  /'   /:::::/´ ̄`ヽ ⌒ヽ 
  ノ ' /  ノ:::::`ー-、___/::::://       ヽ  }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::...       イ

22インチワイドで35000円とは液晶って安くなってるんですなあ・・・。

電話は以前、まさかのMNPで購入したX01HTっていうスマートフォンを使ってます。

これ使ってる人には常識なんですが、基本携帯サイトアクセス、携帯メールが使えません。携帯というより電話もできるPDAといった雰囲気。まあGmail使えるしいいかなと思ってたんですが、

「普通、携帯だとPCからのメールって拒否してるよ」

とあっさり終了。

OSがWindows Mobileなので以前から携帯メールを受信するソフトなどが公開されてたんですが、Softbankからも公式にリリースされたのでちゃんとインストールしてみました。

しかし、ここでもかなり面倒臭い。携帯関係の設定とかは普通に、「My Softbankからやって下さい」的なことが書いてある。携帯サイトなどアクセスできない上に、PCからだと設定は郵送。

こちらを参考にして携帯サイトにアクセスできるようにして何とか、自分のメールアドレスを変更できました。(元のはハッシュ値みたいな無機質なアドレス)

フルブラウザのNetFrontを使って、UserAgentを携帯の物に偽装し、携帯用のProxyを経由して無事My Softbankにアクセス。設定も無事済んで携帯メールで絵文字も使えるようになりました。うれしー。

netfront_ua.png

でも、よく考えるとこれって単にセキュリティーホールを利用してるだけなような・・・。全然詳しくないんですが、Softbankって端末IDみたいのってUserAgentに入ってるんですよね?Webアプリとか大丈夫なのかな?

鈴木先生 1 (1)
  • 鈴木先生 1 (1)
  • 双葉社(2006-08-11)
  • 双葉社
  • (著)武富 健治
  • 定価:¥ 860
  • 新品価格:¥ 860
  • 中古価格:¥ 500
  • ASIN:4575940232

やっと1巻を発見して購入。

これはたしかにおもしろいー。みみっちくて、バカで、真剣で、謎の緊張感が!

作品集の掃除当番を見ると作者のここまでの実験というか試行錯誤がわかって更におもしろい!

掃除当番―武富健治作品集

plnet.jpのサーバ移行が完了しましたー。

以前はレンタルサーバーで借りていたんですが、アクトインディ株式会社さんが社内サーバー設置をすることを機に社内の片隅にPlnetのサーバーも置かせてもらえることになりました。

ハードも好きに選んでということだったのでキャンペーン中につき半額で24,800円というお買い得なHP ProLiant ML110 G4にしました。

社内にお邪魔して、リリースされたばかりのDebian etchを速攻でインスコして外から接続できる状態にしてきました。その後、家からなんだかんだ設定して先日DNSの移行も完了したとこです。

一時期はやばかったCPU負荷もアプリケーションのチューニングでかなり良い状態。24800円のサーバ1台でどのくらいいけるのか、今後も全ての情報を晒しつつ頑張ってみようと思います。

大失敗という結果情報を晒すことになるかもしれませんが、どちらにしろ個人でWebサービスをやろうと思ってる方の参考になれば幸いです。

Yet another Cybozu Labs: ニコニコ動画勉強会に行ってきました

複数テーブルにまたがるJOINは避ける 非正規化ロジックで対応

すごい気になる。

今のところの考えでは、これってOracleやPostgresなんかの1テーブル1インデックス制限が無いDBMSなら避けなくてもいいんじゃないかと思うんですがどうなんだろう。えらい人に聞いてみたい。

create_functionが気になったのでもうちょっと実験。

$ cat lambda.php
&lt;?php
$lambda = create_function('', 'echo "foo\n";');
var_dump($lambda);
var_dump('lambda_1');
call_user_func($lambda);
call_user_func('lambda_1');
$ php lambda.php
string(9) "lambda_1" 
string(8) "lambda_1" 
foo

Warning: call_user_func(lambda_1): First argument is expected to be a valid callback in /home/komagata/works/example/php/lambda.php on line 6

怪しい。その1byteは何なんだと。

create_functionは関数名に使えない名前で関数定義してるだけってのはホントっぽいっすね。

PHPでクロージャ

$ cat closure.php
&lt;?php
function get_adder() {
    static $count = 0;
    return create_function('', 'return ++$count;');
}

$adder = get_adder();
echo call_user_func($adder);
echo call_user_func($adder);
echo call_user_func($adder);
$ php closure.php
111

・・・に、失敗!

Plnetのコード整理とバグ潰し。

ダブっちゃいけないURLをtext型の255byteのINDEXで管理してたので長いやつはダブる状態になってた。しかもINDEX長いので速度も糞。

urlのmd5を作ってそちらを見るのが常識だということを知りました・・・。これならINDEXも32byteで雲泥の差。

t-kawaduが変換して重複も消してくれるバッチを書いてくれたのでスッキリ。

コードの方はあまりにもDRYじゃない部分を2つ変更。もはやオリジナルMojaviのコードにこだわってもしょうがないので本体に手を入れました。ひとつはViewが無くてもOKにしたのと、Railsのlayoutみたいにして大枠をひとつにまとめました。

&lt;?php
class FooAction extends Action {
    var $layout = 'Public'
    (略)
}
?&gt;

Public.html:

ヘッダー
{$partial}
フッター

実装はどうでもいいとして、重複コードを減らすとその分細部に時間をかけられて嬉しい。テンプレの共通化が進むと、適当なCSSとかHTMLだったのを、ちゃんと書こうかな!って気になります。

最低限のFastCGIが動いたのでRackを試してみました。

Ruby版WSGIと呼ばれてるとのこと。WSGIって何だろう。

TokuLog 改め Perl を極めて結婚するブログ – What’s WSGI? その1

WSGI は、Web Server Gateway Interface の略です。

WSGI は、Web Server と、Web Application/Web Framework の間のやりとりを規定するPythonプロトコルです。

なるほど、Web Server Geteway Interfaceって言われるとわかりやすい。Web ServerとWebアプリは色々あるから共通のインターフェース決めようっていうのはまったく真っ当なお話ですな。

こちらを参考に最低限のFastCGI版のRackを使ったコードを書いてみました。

#!/usr/bin/env ruby
require 'rubygems'
require 'rack'
include Rack

hello_rack = Proc.new do |env|
  Response.new.finish do |res|
    res.write "Hello, Rack" 
  end
end

Handler::FastCGI.run hello_rack

hello rack

うごいたー。

Handlerを変えるだけでMongrelやWEBrickなんかでも動くポータブルなコードになって嬉しい。今後はこれで書いてこう。

Amazonから本が届いたー。

rubyistmagazine

そうそう、待ってたんだよ、

Rubyist Magazine出張版と、実践ハイパフォーマンスMySQLと、・・・Rubyist Magazine出張版

だれかほしい人あげます・・・。

Rubyist Magazine出張版正しいRubyコードの―RubyistのRubyistによる、Rubyistとそうでない人のための