アーカイブ » 2010 » 4月

携帯3キャリアの絵文字コンバータをつくった

Written in 2010年04月28日 by | コメントする( 0件 )

うちのフレームワークの絵文字コンバータ機能を再作成しました。3キャリアのSJISのページから送られてくる絵文字をmbstring.encoding_translationで、内部エンコードのUTF-8に変換したのちに、絵文字を [emoji:E123] のような内部で扱う形式に変換し、DBに保存する。PCサイトの出力時には、<img>で絵文字画像を出力し、各携帯キャリアに出力する際には、各キャリアの絵文字に変換して出力する機能です。

絵文字のバイナリと絵文字タグの相互変換をするための変換テーブルをどのような形式にしようかとだいぶ模索しました。

■フォームからやってくる絵文字を内部用の絵文字タグに変換する実装

DoCoMo

フォームからのSJIS絵文字=>UTF-8に変換=>※置換実行※<=UTF-8に変換<=unicodeの16進数をpack

EzWeb

フォームからのSJIS絵文字=>UTF-8に変換=>※置換実行※<=UTF-8に変換<=Shift-JISの16進数をpack

Softbank

フォームからのSJIS絵文字=>UTF-8に変換=>※置換実行※<=UTF-8に変換<=Shift-JISの16進数をpack

■内部用絵文字タグを絵文字に変換して携帯に出力する実装

DoCoMo

絵文字タグ=>※置換実行※<=UTF-8に変換<=unicodeの16進数をpack
※置換実行※=>SJIS-winに変換

EzWeb

絵文字タグ=>※置換実行※<=UTF-8に変換<=Shift-JISの16進数をpack
※置換実行※=>SJIS-winに変換

Softbank

絵文字タグ=>※置換実行※<=UTF-8に変換<=Shift-JISの16進数をpack
※置換実行※=>SJIS-winに変換

■実装する中でわかったこと

ドコモ絵文字は、mb_encoding_translationで、unicodeからSJIS-winや、UTF-8に変換して、それぞれの文字コードで表示できる。しかし、EzWebやSoftbankの絵文字では、unicodeから、SJIS-winや、UTF-8に変換しても、各エンコードの絵文字配列が異なるせいか、各エンコードで同じ絵文字を表示させることができない、というより文字化けとなる。したがって、サイトのHTML出力で使うエンコードの16進数を使ってバイナリを作り、それをmb_encoding_translationで変換してやる必要がある。(フォームからやってくる絵文字は、mbstring.encoding_translationで変換されているので。)


XREAやCORESERVERのsession_start()でエラー

Written in 2010年04月12日 by | コメントする( 0件 )

XREAやCORESRVERのPHPで、モジュール版とCGI版のPHPを合わせて使って、セッションが引き継がれると以下のようなエラーが出る。

Warning: session_start() [function.session-start]: open(/tmp/sess_xxxxxxxxxxxxxxxxxxxxxx, O_RDWR) failed: Permission denied (13) in /virtual/xxxx/public_html/index.php on line xx

これはCGI版では、セッションファイルが、/tmp/にて、FTPユーザー権限で書きこまれ、一方モジュール版ではApacheユーザー権限で書きこまれるからだ。それで、CGI版PHPで作成されたセッションファイルをモジュール版PHPから読み込む際にパーミッションエラーとなるのだ。逆もまたしかり。

  • カテゴリー:
  • PHP

烏骨鶏のたまごでカルボナーラ

Written in 2010年04月07日 by | コメントする( 0件 )

カルボナーラ

カルボナーラ

友人から烏骨鶏の卵をもらったので、カルボナーラにしてみた。日本式に生クリームを加える方式です。ベーコンと玉ねぎでスタンダードに作りました。

イタリアでは生クリームは入れない。たまごとチーズをたっぷり使って、日本で言うたまごかけごはんの勢いだね。なんだかんだ、日本人は生クリーム加えたバージョンの方が好きなようです。

烏骨鶏のたまごで作ったカルボナーラ、濃厚でした。また食べたい。(それにしても、なんかいつも同じお皿だね。。。)

やぎがいた

Written in 2010年04月07日 by | コメントする( 0件 )

やぎ

やぎ

庭先でヤギを飼っている家を発見。3,4匹いた。ヤギは草を食べてくれるからいいのだとか。うちも飼おうかなぁ。で、ヤギ乳でチーズを作る。楽しそう。

TeraTermのマクロ。adminでログインして、rootにsu-。

Written in 2010年04月02日 by | コメントする( 0件 )

TeraTermのマクロはとても便利だ。ログイン時の処理から、ログイン後のシェル実行までいろいろ使える。今回は、adminでログインして、rootにsu-してパスワード入力するマクロだ。

以下のようなフォルダを作り、そこをTeraTermのマクロを格納することにする。

C:\TTmacro

まずはそこにSSHログイン用の処理を記述したマクロを「ssh_login.ttl」という名前で作り、それを環境ごとのマクロからincludeする。

strcompare conn_method ‘ssh’
ssh_method = !result
strcompare conn_method ‘ssh1’
ssh1_method = !result
strcompare conn_method ‘ssh2’
ssh2_method = !result

if ssh_method then
conn_str = ‘/ssh’
elseif ssh1_method then
conn_str = ‘/ssh /1’
elseif ssh2_method then
conn_str = ‘/ssh /2’
endif

strlen key_file
exist_key_file = result

if exist_key_file then
sprintf ‘%s:%s %s /LA=%s /KT=%s /KR=%s /auth=publickey /user=%s /passwd=%s /keyfile=”%s%s”‘ hostname conn_port conn_str language kanji_transmit kanji_receive username password work_dir key_file
else
sprintf ‘%s:%s %s /LA=%s /KT=%s /KR=%s /auth=password /user=%s /passwd=%s’ hostname conn_port conn_str language kanji_transmit kanji_receive username password
endif

conn_param = inputstr
connect conn_param

次に、各ログイン先ごとのマクロを書く。例として192.168.1.5のサーバに公開鍵方式でadminでログイン後、rootにsu-するマクロ「root@192.168.1.5.ttl」を示す。秘密キー「id_rsa」をマクロ格納フォルダにおく。

; 設定
work_dir = ‘C:\TTmacro\’
hostname = ‘192.168.1.5’
username = ‘admin’
password = ‘adminpassword’
root_password = ‘rootpassword’
key_file = ‘id_rsa’

; 言語 E:英語 J:日本語 K:韓国語 R:ロシア語 U:UTF-8
language = ‘J’
; 漢字コード受信 SJIS EUC JIS UTF8 UTF8m KS5601
kanji_transmit = ‘UTF8’
; 漢字コード送信 SJIS EUC JIS UTF8 KS5601
kanji_receive = ‘UTF8’
; SSHバージョン。 ssh or ssh1 or ssh2
conn_method = ‘ssh’
conn_port = ’22’

; SSHログインを実行する
ssh_login_ttl = ‘ssh_login.ttl’
ssh_login_ttl_path = work_dir
strconcat ssh_login_ttl_path ssh_login_ttl
include ssh_login_ttl_path

; ここからはログイン後の処理
wait username
sendln ‘su -‘
wait ‘Password:’
sendln root_password

秘密キーのファイル指定「key_file」を空にすると通常のパスワード認証になる。

.ttlファイルがTTPMACRO.EXEに関連付けられていなければ、

マクロファイルを右クリック => 「プロパティ」 => プログラムの「変更」ボタン => TTPMACRO.EXEを選択

とする。これで、マクロファイルをダブルクリックするだけで、TeraTermの自動ログインができるようになった。

LogMeTTや、TeraTerm Menuなどで、こうしたマクロを利用するとさらに便利である。

パソコンの遠隔操作にいいね

Written in 2010年04月01日 by | コメントする( 0件 )

PCの遠隔操作にTeamViewerというソフトがよさそうだ。

http://www.teamviewer.com/ja/index.aspx

インストールしたPC同士、IDとパスワードで遠隔操作できる。
ファイル転送もできちゃう。商用利用でなければ無料。
商用利用の場合はライセンスを購入する。

http://www.teamviewer.com/ja/licensing/index.aspx

上手に利用したい。