「あなくつ」のおもちゃばこ

Blog

MT4で同じ名前のカテゴリにおけるパスのナンバリングを阻止

ナンバリングされてしまう!さっきの記事はこれを調べていたから故の内容なんですね。

Movable Type 5ではわかりませんが、Movable Type 4では同じ名前のカテゴリやフォルダを追加すると、パスのディレクトリ名が勝手に「_1」とナンバリングされてしまいます。親カテゴリが共通でなくてもそうなります。

まぁカテゴリを登録したあとに、ひとつひとつパスを変更すればいいのですが、追加するたびに修正しなければならないのは面倒だ!!どうにかしろ!!、とのことです(デザイナいわく。いや、そんなこと言ってないですけども)。

で、MTのソースをざーっと追っていってパスを設定しているところを突き止めたのでゴニョゴニョしました。同じことでお悩みのかたは、追記を御覧くださいませ。

ホントはMT本体のプログラムは変更したくない(カスタマイズはプラグインから行うべき!というスタンス)のですが、cms_pre_saveコールバックだと、まだbasenameが設定されておらず、cms_post_saveコールバックだとすでにナンバリングされちゃってるんで、面倒だからしょうがない、という感じです。

MT4で同じ名前のカテゴリにおけるパスのナンバリングを阻止」の続きを読む

タグ : Movable Type,MT,カテゴリ,パス,フォルダ

2011/03/01 20:08:11 | Trackbacks (0) | Comments (0) | Technology

Movable Type の管理画面のプログラムコードを追う (私的メモ)

一時期プラグインを幾つか作ったときに、だいたい大枠を理解していたつもりなんだけど、改めてのぞいてみたらチンプンカンプンだったので、自分で分かる程度にメモ。

Movable Type の管理画面のプログラムコードを追う (私的メモ)」の続きを読む

タグ : Movable Type,MT,プラグイン

2011/03/01 19:11:14 | Trackbacks (0) | Comments (0) | Technology

Apacheモジュールを404型ブートストラップで起動することを考える

オリジナルなApacheモジュールを呼びだそうとするとき、設定ファイルの記述方法としては2種類あります。

  1. Locationディレクティブで特定のリクエストURIに対してハンドラを指定する
  2. AddTypeディレクティブで独自のコンテンツタイプに対してハンドラを指定する

ところで、世の中のウェブアプリケーションフレームワークにはステータスコード404(Not Found)のときに起動するものがあります。これはつまり、サーバーのドキュメントルート配下にファイルが無かったときにアプリケーションを起動するというものです。(ほんとよく考えたなぁ)

そこで、この考え方をApacheモジュールでも利用することを考えます。まず、エラードキュメントはApacheの設定で指定できますので、適当なURIを指定します。そして、そのURIに対して、Locationディレクティブでハンドラを登録します。こうすると、エラードキュメントが呼び出されるときにモジュールを呼び出してくれるわけですね。httpd.confの記述例としては下記のようになるでしょう。

ErrorDocument 404 /bootstrap/

<Location "/bootstrap/">
    SetHandler handler_of_application
</Location>

これでばんばんざい、というわけにいきません。404で起動するということは、Apacheとしてはエラー状態なわけです。これがどういう問題を起こすかというと、

  • ステータスコードとして、404がクライアントに伝達されてしまう
  • ファイルサイズが小さいと、IEなどで「やさしい」エラーメッセージ(Apacheドキュメント風に(笑))が表示されてしまう
  • CookieやLocationなど、モジュールでheaders_outに設定したヘッダを出力してくれない

というようなことがあります。

これらの問題を解決するためには、Apacheの状態をエラー状態から通常の状態に戻してあげます。具体的には、request_rec構造体のstatus変数にHTTP_OK定数を設定してあげればいいようです。

これはまったくもって予想ですが、モジュールが最初呼び出されるとき、statusには404が入っていることから、Apacheがあちこちのモジュールを駆けまわる時に状態を伝達する変数となっているのでしょう。最終的にコアプロセスへもどってきたときに、statusにより出力処理を切り替えるのだと思います。

さぁこれでフレームワークっぽくモジュールができる!と思いきや、まだダメなんですね。フレームワークとして動作させるには、リクエストURIによって処理やレスポンスを切り替える、という動作が必要です。通常のリクエストによる呼び出しなら、request_rec構造体のuri変数やfilename変数などを使えばどこから呼び出されているかわかります。ところが、404駆動の場合、前出の変数は404に指定したの値(上記のhttpd.confの設定だと/bootstrap/がセットされてやってくる)になるのです。

そこで必要になってくるのが、request_rec構造体のprev変数です。Apacheには内部リダイレクトという機能(要は、ブラウザに表示されているURLは変わらないのだけれど、同じサーバー内の別の場所にあるコンテンツを読んでいる状態、たぶん。詳しくは、このあたりが参考になる。)があり、ErrorDocumentによって設定されているページはこの機能により呼び出されています。そして、内部リダイレクトを呼び出した元が、prev変数によって指し示されているのです。つまり、クライアントがリクエストしたURIを取得するためには、prev変数をたどって、呼び出し元のuri変数やfilename変数を取得してくればいいわけですね。

さて、これで404駆動でもモジュールが使えるようになりました。あとそこから先は、ディベロッパーの根性で開発してください!

タグ : 404,Apache,Bootstrap,Module,ブートストラップ,モジュール

2011/02/25 04:34:22 | Trackbacks (0) | Comments (0) | Technology

Shift_JISからUnicodeへの変換

  • 変換式はないので、変換テーブルを用いる
  • 変換テーブルはShift-JIS to Unicode(Unicode Consortiumのもの)を用いる
  1. 1バイト取ってくる
  2. 0x00から0x7Dまたは0x7Fなら、単純に2バイト(16ビット)に拡張(ASCII文字)
  3. 0x7Eなら、0x203E(チルダ)
  4. 0xA1から0xDFなら、0xFEC0を加える(半角カタカナ)
  5. 0x81から0x9Fまたは0xE0から0xFCなら、後続1バイトを取ってきて、変換テーブルを用いて文字コードを得る
  6. その他のビット列が来たら知らん(笑)
    REPLACEMENT CHARACTER(0xFFFD)に置換するらしい

UnicodeからShift_JISは真逆の処理をしてあげれば良い。ただし、UnicodeとShift_JISは完全に可換ではないので、欠損する可能性あり。

タグ : Shift_JIS,Unicode,UTF-16,シフトJIS

2011/02/13 17:32:21 | Trackbacks (0) | Comments (0) | Technology

文字コードの正式名称・エイリアス

いざ、調べようと思うとなかなか見つからなかったのでメモ。

インターネットで使える文字コードの定義ね。

何気に最近更新されていたみたいだ。「last updated 2010-11-04」とかになってる。csCP51932ってなんぞ...。

一応、列挙されているキャラクタセット名以外は使うべきではない(もちろん大文字・小文字も区別される)んだけど、たまに変なキャラクタセット名が送られてくるよね。特にスパムメールとか。

逆にこれに従っておけば、一般的なアプリケーションに読み取ってもらえることを期待できる。

タグ : キャラクタセット,文字コード

2011/02/13 17:06:54 | Trackbacks (0) | Comments (0) | Technology

FreePascal での httpd の優先順位

FreePascalでApacheモジュールを開発するときに利用するユニットにhttpdがあります。このhttpdユニットはApacheのバージョンに合わせて、1.3用・2.0用・2.2用が用意されています。

普通にhttpdをusesするとファイル名の順番から1.3用が利用されてしまいます。いまどきは2.2以上なので、2.2用を使ってコンパイルしなければなりません。

今まではコンパイラオプションのユニット検索パスで、2.2用が入っている/units/$FPCTARGET/httpd22のディレクトリを指定することで回避していました。

が、先ほどfpc.cfgを見ていたらhttpdの振り分けが記述してありまして...。シンボルとして「FPCAPACHE_2_2」を設定してあげれば2.2用を読みに行ってくれるようです。Lazarusなら、プロジェクト>コンパイラオプション>その他タブ>カスタムオプションで「-dFPCAPACHE_2_2」を追記しておけばオッケーです。

まぁ自分でパスを追加しても問題はおこらないのですが、シンボル定義して勝手に切り替えてもらったほうがエレガントだとおもうので。ってゆーか、fpc.cfgとか読まないし、ドキュメント皆無みたいなもんだし、マイナーな言語は大変ですね(笑)

タグ : Apache,FreePascal,モジュール

2010/12/16 00:22:37 | Trackbacks (0) | Comments (0) | Technology

FreePascalでクロスコンパイル (その後)

はい、またやってました、クロスコンパイル。ってかこれ今やるべきことじゃないんだけど、FreePascalのメーリングリストで同じように悩みを持っている人がいて、それ見たらなんかやってた(笑)。

過去の戦歴

今回は64bitのLinuxがターゲット。過去の失敗経験をもとにCygwinBinutilsのコンパイルからやってみたら、なんとかうまく行ったので手順を書き記しておく。

binutilsをつくる

  1. Cygwin入っていなければインストールする。インストール方法はネット上にいっぱいあるのでググッてね。
  2. Binutilsのコンパイルに必要と思われるCygwinのパッケージは、「make」「gcc」「cpp」「libiconv」かな。他にもあるような気もするけれど、覚えていないのでエラーになったら適宜追加する感じで。
  3. Cygwinのコンソール立ち上げて、コンパイルで使うディレクトリへ移動
    mkdir -p /usr/local/src/
    cd /usr/local/src/
    
  4. Binutilsのソースを拝借してきて、展開、移動
    wget ftp://ftp.gnu.org/gnu/binutils/binutils-2.20.1.tar.gz
    tar xvzf binutils-2.20.1.tar.gz
    cd binutils-2.20.1
    
  5. x86_64-linuxをターゲットにしてconfigureする
    ./configure --target=x86_64-linux
    
  6. お決まりのコマンドを実行する。ま、これが大体エラーになるから大変なんだけどね。
    make clean
    make all
    make install
    
  7. うまくコンパイルできれば「[Cygwin Dir]\usr\local\bin」においしそうなファイルが!

エラーが起こるとすればconfigureとmakeなので、エラー内容をよく見て必要なパッケージやライブラリを入れていけばいずれはコンパイルできるようになると思われる。

Free Pascalコンパイラを64bit用にコンパイル

コンパイラをコンパイルするんです。(じゃぁそのコンパイラは何でコンパイルされたんでしょう。コンパイラ?じゃぁそのコンパイラは...なんてね)

  1. 「[Cygwin Dir]\usr\local\bin」に生成された下記のファイルを「[Lazarus Dir]\fpc\[FPC Ver]\bin\i386-win32」へコピー
    • x86_64-linux-ar.exe
    • x86_64-linux-as.exe
    • x86_64-linux-ld.exe
    • x86_64-linux-objdump.exe
    • x86_64-linux-strip.exe
  2. 「[Lazarus Dir]\fpc\[FPC Ver]\bin\i386-win32」にパスを通す
  3. FPCのリポジトリからソースコードをダウンロードして適当に展開
  4. コンソールを起動し、展開したフォルダに入る
  5. コンパイルしてインストール
    make clean
    make OS_TARGET=linux CPU_TARGET=x86_64 all
    make OS_TARGET=linux CPU_TARGET=x86_64 \
    	INSTALL_PREFIX=[Lazarus Dir]\fpc\[FPC Ver] install
    
  6. 64bitコンパイラがうまく作成できれば、LazarusのコンパイラオプションからOSとCPUを64bit Linuxにしてコンパイルできるはず

これでWindowsで作成したHello Worldが64bit CentOSで動くようになった! 今回のステップを踏めば別のプラットフォーム向けもできそうだね。

あ、ちなみにLCL(Lazarus Component Library)のクロスコンパイルは試してません。とりあえず今のところ使ってないから、なくていっかな。過去の経験より手をつけるとはまるので。

タグ : 64bit,Binutils,Cygwin,FreePascal,Linux

2010/11/04 06:20:21 | Trackbacks (0) | Comments (0) | Technology

Redmineをセットアップしてみた

会社でRedmineを使いたくてセットアップしてみた。一応バグトラッキングはMantis使っていたんだけど、リポジトリのビュアーなど便利な機能が付いていたので乗り換え。

今回の設定項目は下記の通り

  • Redmineを使えるようにする。
  • Google AppsのOpenID機能を使ってRedmineにログインできるようにする。

Redmineのセットアップ方法はいろいろなところに書いてあるので、それを参考にすればいいでしょう。ただし気をつけたい点として、Ruby 1.9.2ではうまく動かなかったので、一世代前の安定版1.8.7を使うことでしょうか。1.9.2だと日本語のデフォルトデータを読めなかったり、一部のページでエラーになります。

OpenIDはRedmine 0.9から標準対応しているようですが、OpenID用のRubyモジュールが必要です。ま、gemで一発です。

gem install ruby-openid

これでOpenIDでログインできるかと思いきや、Google AppsのOpenID URLではログイン出来ないようです。調べてみるとGoogle Appsに対応するには少し手を加えないといけないようです。具体的には、「/app/controllers/account_controller.rb」と「/config/environment.rb」を修正します。修正内容はこちらのチケットを参照してくださいな。

requireしている「gapps_openid」はプロジェクトのページにあります。ダウンロードページからパッケージを取得して、下記のコマンドで取り込みます。

gem install -l ruby-openid-apps-discovery-x.x.x.gem

これで一通りセットアップおっけー。OpenIDを使う際には「管理」-「設定」-「認証」から「OpenIDによるログインと登録」をチェック入れて許可しておきましょう。また、ユーザーごとにユニークなOpenID URLが必要なので、ユーザー編集ページでURLを指定しておきます。URLは下記の方法で取得できます。

  1. Redmineへの登録がオープンの時は、ログインフォームの「OpenID URL」に下記のURLを入力してログインボタンをクリック。
  2. Googleからもどってきたときに、ユーザー登録フォームの「OpenID URL」にすでにユニークなURLが入った状態になるので、そのまま登録。
  1. Redmineへの登録がクローズの時は、ログインフォームの「OpenID URL」に下記のURLを入力してログインボタンをクリック。
  2. Googleからもどってきたときに、ログインフォームが表示されますが、その時アドレスバーのURLの「openid.identity」パラメータをURLデコード。
  3. デコードしたURLがユニークなURLなので、ユーザー編集ページから設定。
https://www.google.com/accounts/o8/site-xrds?hd=example.com

ログイン時は、ログインフォームの「OpenID URL」に上記のURLを入力してログインボタンをクリックするだけ(他は空で良い)。これでシングルサインオンでRedmineが使えます。

ちなみに、普通のGoogleアカウントでOpenID使うときは下記のURLで上記と同じことができます。

https://www.google.com/accounts/o8/id

タグ : Google Apps,OpenID,Redmine,シングルサインオン

2010/10/28 00:54:41 | Trackbacks (0) | Comments (0) | Technology

ブラザー複合機のフルパッケージドライバをWindows 2003に使う

ブラザー複合機のホームユース向けの製品ってプリンタのドライバがWindows 2003用に提供されていなようなんですよ。一応通常の印刷向けに「プリンタのインストール」から使えるドライバファイルは提供されているんだけれど、PC-FAX用のドライバが提供されていない。それとネットワークスキャン用のアプリケーションも提供されていない。まぁつまりはWindows 2003で全機能をホストして共有できないわけです。

そこで、考えられる対策としては

  1. Windows XPのマシンを用意して、それをプリンタサーバーにする
  2. Windows 2003の中にVMを立てて、その中にXPを用意してプリンタサーバーにする

これまでは1の方法で対処してきたわけですが、どうせ2003もサーバーとして常時電源が入っているのに、プリンタごときでもう一台電気を使わせるのもったいない。なんとかして2003でプリンタ共有させたいとだいぶ前から思っていました。

ところで、2003はXPと多くの部分でファイルが共通だったはずです。ということは、無理やりフルパッケージ版のドライバをインストールしても動く可能性が高いですよね。

無理やりインストールするためにはインストーラーのOSチェックを回避または騙す必要があります。ブラザーの場合は、InstallShieldでインストーラーがつくられているわけですが、どうやらInstallShieldは実行ファイルとは別にスクリプト的なもの(.inx)があって、それを元にインストール作業を行うようです。ってことは...、ゴニョゴニョすればOSチェックをすっ飛ばすことができそうです。

で、それをやったかどうかは書けないんだなぁ、これが。ソフトウェアの使用許諾にリバース・エンジニアリングしちゃだめって書いてあるからさ(笑)。

ま、一応調べたことメモはしておくけど、自己責任だよねー。なんかInstallShield 2010までイケルらしいよ。いろいろおかしくなっても知らないよー。

タグ : brother,InstallShield,Windows 2003,ドライバ,フルパッケージ,ブラザー,複合機

2010/10/27 03:48:01 | Trackbacks (0) | Comments (0) | Technology

request_rec の content_type

前の記事でこれ書こうと思っていたんだよね。

Apacheのモジュール開発するとき、絶対というほど使う「request_rec」構造体。これの中にある「content_type」変数はHTTPリクエストヘッダの「Content-Type」じゃないので注意。これはApacheの設定(httpd.confなど)でAddTypeされている値です。たとえばPHPだと「AddType application/x-httpd-php」を設定するので、「content_type」変数には「application/x-httpd-php」が入ってきます。フォームの送信などではリクエストヘッダに「Content-Type: application/x-www-form-urlencoded」などを送ってくるはずですが、これの「Content-Type」を得る場合は、同じ構造体内の「headers_in」変数から拾ってくる必要があります。

逆に、「content_type」変数からフックするモジュールができます。独自の拡張子にAddTypeして、モジュール内で自分の「content_type」かどうか判別して処理してあげればいいわけです。ネットでApacheモジュールを開発する方法を見ると、SetHandlerでハンドラを登録する方法で解説されているものを多く見るけれど、こんな処理方法もあるということで。

タグ : Apache,モジュール

2010/08/14 07:40:10 | Trackbacks (0) | Comments (0) | Technology

Apacheモジュール開発

Free Pascal最近はPHPをやめて、ウェブシステムをネイティブコードのApacheモジュールで開発しています。

まぁネイティブコードと言ってもPascalですけどね!! しかもFree Pascal (笑)。みんなにバカにされるんだろうなぁ、そんなもんで開発すんな!ってね。まぁほら、使わないと発展しないどころか廃れちゃうじゃん? 世の中ネイティブコードがC/C++だけとか面白くないし。ちゃんとメジャーなプラットフォームでコンパイルできるし、64bitも吐けますから。Object Pascalって軽く使うだけならメモリとか意識しないですむし、オブジェクトとかスコープの概念が理解しやすいなど、メリットもあると思うんだよね。このあたりは言語宗教だね。

ま、いずれにせよ、もうかなりの時間かけて環境とかライブラリ作っちゃってるし、後戻りできないよねー。

で、肝心の性能。単純にHello World返すだけならPHPとネイティブコードだとあまり動作スピード変わらないんだけど、オブジェクトとかガリガリ使ってくるとやっぱりネイティブの方が速いみたい。

個人的にはメモリ管理が出来るのがよい。どこでメモリを開放する/されるか知っているのでなんか安心。開放し忘れのリスクはあるけれど、try..finally使ったり生成と破棄のコードを同時に書くなど注意するようにしている。あ、そうそう、文字列処理とかリストの処理はメモリ管理ができたほうが実行速度速いね。基本的に文字列やリストの操作ってのは内部的にはメモリの再確保なんで、ネイティブなら先にガバッとメモリ確保するなどそのあたりでメリットがある。

あとは、変数の宣言と型指定があるのが良い。PHPのようにどこでも変数が現れて、何でも入るってのはなんか気持ち悪い。Integerの変数ならDBに問い合わせるときにエスケープする必要がないって保証できるじゃん? コードや変数は必然的に長くなるけどねぇ、個人的精神衛生のために我慢。

あれ、Apacheのモジュール作るときの覚え書き書こうと思っていたのに、思ったことを適当に書いちゃったな。マネージドやインタプリタもいいけれど、それのベース作ってるのはだれ?ネイティブじゃないの?と思う。プログラムが全部ネイティブである必要はないけれど、ネイティブも操れるくらいの方ができることの幅も広がると思うんだよね。

タグ : Apache,Free Pascal

2010/08/14 06:45:42 | Trackbacks (0) | Comments (0) | Technology

FreePascalでクロスコンパイル (再来)

いやぁ結局Linuxはダメだったんだけどね。書いておかないと忘れちゃうので。

FreePascalでクロスコンパイル (再来)」の続きを読む

タグ : 32bit,64bit,FreePascal,Lazarus,Linux,クロスコンパイル

2010/07/26 05:45:52 | Trackbacks (0) | Comments (0) | Technology

このブログを

いや、閉鎖はしませんよ。

以前ブログでもチラッと触れたSaaSes VPSに移しました。だいぶ前だけれど。これで自宅サーバーともおさらばかと思いきや、自宅PCに入り込むためにSSHサーバーのみで稼働中です。

なんか電気代とかスペックとか考えると、ここまで安いVPSにはかなわんです。そのうちSSHサーバーの機能をFONに移して稼働中の自宅サーバーは火を落とすつもり。

自宅サーバーはなんだかんだで3台くらい乗り継いできたんだよね。自宅からサーバーがなくなると思うと、なぜかさみしくなっちゃう。昼夜ともにしたあのファン音がなくなると思うと(笑)

さ、現実逃避終わり。作業にもどるかね。

タグ : SaaSes,SSH,VPS,サーバー

2010/06/24 02:40:27 | Trackbacks (0) | Comments (0) | Technology

SaaSes VPS の不要アプリケーションを削除する

この前申込んだSaaSesのVPSが開通したので、ちょこっといじってみた。とりあえずまぁユーザーの設定と不要なアプリケーションの削除をやっておいた。

ざーっと確認して削除出来そうなヤツだけ削除したんだけれど、あんまり削除できなかったなぁ。ちゃんと調べればもっと削除出来そうな気はする。参考までに追記で削除したものを列挙しておく。(他にもX系のファイルを消したかったけど依存が多くて諦めた)

SaaSes VPS の不要アプリケーションを削除する」の続きを読む

タグ : SaaSes,VPS,アプリケーション,サービス

2010/05/01 03:50:48 | Trackbacks (0) | Comments (0) | Technology

開発コンテスト 24に参加しました

クックパッド主催の「開発コンテスト 24」ってヤツにトライしてみました。お題は「朝起きてから学校や会社に行くまでの時間をより便利にするためには」でした。あまりいいアイデアがでなかったので、自分だったらどんなモノが有ると便利かなぁと思って、思いついたものを作りました。

で、作ったものはこちら。内容としては設定した時間にアラートメールが送られてくるんだけれど、タスクを完了して完了リンクをクリックしないとひたすらアラートメールが来るもの。自分がどうも時間にルーズという悪いクセがあるので、朝決まった時間に必要なタスクを時間内にこなすのを、アラートメールにおしりペンペンされながらやろうという作戦です。

タスクが完了しないと1分毎にメールが来るのですが、実際使ってみるとこれ結構ウザいです。逆に時間を守らなければ!というときは結構使えそうだなぁと思いました。

時間制限は24時間でしたが、途中仕事したり睡眠とったりで、実質使えたのは12時間に満たなかったですかね。すぐ終わるように簡単なシステムのつもりだったんですが、なんだかんだで提出はギリギリになってました。最後の方とかは一の矢宿舎でクソ寒いなか手を震わせながら、しかも時間の迫るドッキドキな状態でコード書いてました。ま、これもいい経験ですね。今回の開発スピードを仕事にも行かせたらいいなと思います。

タグ : クックパッド,開発コンテスト 24

2010/04/24 22:54:00 | Trackbacks (0) | Comments (0) | Technology

PRODIGY 7.1XT 64bit正式対応ドライバ

デバイスマネージャパソコンのオーディオボードにはPRODIGY 7.1XTという製品を使っているのですが、これの64bit版Windowsに正式対応したドライバが出ていました。

PCを組み立てる当時、64bitに対応していてそれなりの価格でマトモなサウンドカードがこれくらいしかなかったのでBetaドライバでも使用していたのですが、2年越しでやっとこさ正式に対応してくれたみたいです。

Betaドライバの時はマスタボリュームがWindowsのMMEとバッティングしていることや、このサウンドボードのひとつのウリであるASIOが使えないなどいくつかの問題があったのですが、今回のドライバで一通り修正されているようです。

このサウンドカードはかなりオススメなのですが、価格.comでは掲載がなくなっていますね。もう販売していないのかな。性能対コストのパフォーマンスは非常に良い製品と思います。

タグ : 64bit,ASIO,PRODIGY,ドライバ

2010/02/21 21:20:18 | Trackbacks (0) | Comments (0) | Technology

ついにネットでラジオを聞ける時代が来た

まだ数は少ないですが、民放13のラジオ局がネットで同時配信を始めるようだ。

と喜ぶのもつかの間、首都圏は東京、神奈川、千葉、埼玉だけらしい。しかもお気に入りのNack5はまだ始めないようだ。残念。

IPベースでエリアを判別しているということは、視聴可能エリアのIPさえあれば良いわけだ。東京にありそうな激安VPSとかにSoftether入れて、配信元IPだけroute addすればなんとかなりそうだな、とごにゃごにゃ考えてみた。

タグ : IP,Softether,VPS,ネット,ラジオ

2010/02/13 18:08:29 | Trackbacks (0) | Comments (0) | Technology

文字コードマニア

もう3日くらい文字コードと戯れています。おかげで文字コードにだいぶ詳しくなってきました。

ISO-2022-JPについて

  • JISコードはエスケープシーケンスでASCII文字のコードか漢字のコードか切り替える
  • 一言にJISコードといっても策定されたバージョンがいくつかある
  • メールなどの普通のJIS文字を扱うなら、1997年のJIS X 0208を相手にしていればOK。
  • 第3水準、第4水準の漢字を含めたJISなら、JIS X 0213(通称:JIS2004、ISO-2022-JP-2004)を使う。
  • JIS X 0213はIANAに登録されていない(Wikipedia調べ)らしいのでメールの標準エンコードとしては使えない。
  • JIS X 0213は下位互換(JIS X 0208を包括)
  • JIS X 0213でエスケープシーケンスが増える。

Unicode(UTF-16)について

  • Unicodeも何回もバージョンアップしているんですね
  • Unicodeへの変換はアルゴリズムではできず、変換テーブルを使う必要がある
  • 変換テーブルは、Unicode Consortiumとかこちらとかにある。
  • JIS X 0213の変換テーブルはこちらなんかがヒットした
  • JIS X 0213の文字までUTF-16に変換しようものならサロゲートペアを考慮しなければならない
  • Windows VistaからサロゲートペアのUTF-16も扱っているから、プログラム書くときは結局このあたりも考慮しなければならない
  • サロゲートペアってのは4バイト(UTF-16文字*2文字)使って1文字を表す方法。Ansi文字における2バイト文字みたいなものか?(ってか結局2文字かよ!Unicodeになっても後続文字かどうかを判別しなければならないなんて...)
  • ちなみにDelphiでサロゲートペアを考慮するときはEmbarcaderoのページが役立つと思う

タグ : ISO-2022-JP,JIS,Unicode,UTF-16,サロゲートペア

2009/11/07 07:28:41 | Trackbacks (0) | Comments (0) | Technology

Delphiについていろいろ考え中

最近はLazarus使ってFreePascalでプログラム書いているのだけれど、せっかくクラスとか書いたら公開したいなぁと思うわけです。ところで、時代はDelphi 2010なわけで、Delphiで扱う文字列がUnicodeになっているわけです。そこで気にしたいのは、バイト単位で文字列を操作する部分はUnicodeとAnsiどちらでも動くようにするということ。

まぁぶっちゃけるとMIMEの処理を行いたいわけだけど、ISO-2022-JPの文字列をstringに突っ込むとどうなるんだろうとか、Base64のエンコード・デコードをしたときにデータを格納すべき変数のデータ型は?とかが、いろいろ分からないのです。データを全部TStream系とかarra of Byteか何かで処理すれば気にしなくていいんだけれど、そうすると文字列検索なんかが面倒になる。ちなみにIndyとかはarray of ByteをTBytesとして宣言して使っているっぽい。

まぁこんな感じで悶々と考えたわけだけれど、結論としてDelphi 2009以降がないとわからん!ってことであきらめました。とりあえずstringはすべてAnsiStringとして考えておくことにします。

タグ : Base64,Delphi,FreePascal,Lazarus,MIME,Unicode

2009/11/05 03:21:01 | Trackbacks (0) | Comments (0) | Technology

RARの圧縮で感動

会社のサーバーのアクセスログをずっとローカルPCへ保存し続けていたのですが、いい加減ディスクを圧迫してきたので、少し圧縮して整理してみました。

圧縮すごい!圧縮しながら思ったのですが、圧縮ってすばらしいですね!!アクセスログみたいに単調なテキストファイルの場合、元のサイズの5%くらいになります。例えば写真の例だと、最高圧縮・リカバリレコード5%で、1.2GBくらいのファイルが49MBになっちゃいます。

テキストを圧縮すればZIPやRARなど何使っても10%以下にはなるということはふつーに知っていたのですが、実際にここまで圧縮されるとちょっと感動しますね。

タグ : RAR,ZIP,圧縮

2009/11/01 22:00:27 | Trackbacks (0) | Comments (0) | Technology

CentOS5でLazarusを動かす時

Indyなどの静的リンクのコンポーネントをインストールするときLazarusの再構築が必要になりますが、そのときにいくつかライブラリが必要だったのでメモ。

  • libX11-devel
  • gdk-pixbuf-devel
  • gtk2-devel

全部yumで入るからかんたんだね!

タグ : CentOS,Indy,Lazarus

2009/10/24 02:32:21 | Trackbacks (0) | Comments (0) | Technology

FreePascalがMySQLでLIMITするとき

MySQLはSELECT文にLIMITが入っていればどんな時も結果件数を制御できた気がするんだが。例えばこんなSQL文は実行できるはず。

SELECT user_name WHERE user LIMIT 5

この文をphpMyAdminから発行してもちゃんと結果が返ってくるのに、FreePascalからデータベースドライバ経由でこれを発行しても結果が返ってこない。ってかエラーをRaisすらしない。こういう場合はどうするか。

SELECT user_name WHERE user ORDER BY user_id LIMIT 5

ORDER BY句をつけなければいけないらしい。まぁ普通はLIMITを使うときは何らか並べ替えがあって、それを一定数取り出したいときだから特に問題になることでもない。しかしながら、並び順はなんでもいいから(普通はMySQLのデータ格納順)、とりあえず一定数取り出したいなんて時はそれが使えないことになる。

タグ : FreePascal,LIMIT,MySQL

2009/10/22 17:38:51 | Trackbacks (0) | Comments (0) | Technology

現在進行中の開発案件

いま、こんな感じです。

画面

完成したら見せてもいいのだけれど、まだ見せれない部分もあるので。ぼかしつつ...。

やっとExtJSにも慣れてきた感じ。ExtJSのドキュメント見たり、ExtPascalのヘルプ見たりとあっちこっちを見ながら実装するという結構大変な作業だわ。サーバー側をPHPにしておけばよかったと何度思ったことか(笑)。

しかーし、その代わりレスポンスはめっちゃ早い!まだローカルでの接続しかしていないけれど、データベース接続してデータ読みだしたりしながらインターフェースのJavaScriptを構築してブラウザに送出するまで20msくらい(Core2 Duo 2.66Ghz / Memory 4GB / Windows Vista)。ext-all.jsを読みだすのでも10msくらいかかっているから、それの倍ちょっとで処理できている感じかな。

まだ若干マスターしきれていないのがDataStoreのあたりかな。ExtPascalでラッピングされているので、DataStoreの非同期通信をどう受け取ればいいのか調査中。

タグ : ExtJS,ExtPascal

2009/10/21 21:53:34 | Trackbacks (0) | Comments (0) | Technology

ExtPascalでオブジェクトの属性を変更するとき

ずっと2週間くらい悩まされてきたことがやっと分かりましたよ。

ExtPascal内で動的にオブジェクトの属性を設定するときは、プロパティを参照するのではなく、メソッドで設定を行わなければならない。例えばボタンの有効状態を無効にしたければ、Button.Disabled := Trueではなく、Button.disable()を呼ばなければならないということです。

まぁよく考えてみれば、純粋にJavaScriptでExtJSを使うときもメソッド経由にしないと状態を設定することができないから当然と言えば当然なんです。Delphiのようにプロパティが暗黙にセッター・ゲッター関数になったりしていないから、動的に属性を変更するときはメソッドを呼ばなければいけないんですね。

基本的にExtPascalでは生成したオブジェクトのJavaScript内での名前しか覚えていないようです。そのためExtPascal内でpublicな変数でも、直接属性を設定するとアクセスエラーになるようです。

それにしてもコードでコンポーネントを配置していくのは面倒だなぁ。DelphiのフォームビルダがどれだけUIを設計する作業を簡便化しているかよく実感できる。

タグ : Delphi,ExtJS,ExtPascal,JavaScript

2009/10/20 20:48:24 | Trackbacks (0) | Comments (0) | Technology

ExtJS 3.0のAPIドキュメント日本語版が公開されたらしい

今ハマり中のExtJS3.0の日本語APIドキュメントが公開されたようです。いやぁ本当助かります。

公開したのはxenophyという会社で、xFrameworkPXというPHPのフレームワークを開発した会社でもあります。この会社のしゃちょーさんは、僕がPHPの高速化について調べているときにたまたま見つけたブログの執筆者で、PHPやDelphiなど似たような言語を使っているというだけで、(勝手に)ちょっと注目している方です。

ということで引き続きExtPascalがんばって使い倒しますか。

タグ : API,ExtJS,ExtPascal

2009/10/17 23:55:51 | Trackbacks (0) | Comments (2) | Technology

クロスコンパイルあきらめモード

もう諦めて、ターゲットOSにLazarusインストールしちゃった。あぁ結構いいところまで行っていたと思うんだけどなぁ...。

FPCのライブラリで完結するプログラムなら前回の記事までの方法でコンパイル可能。デバッグをWindowsでやってLinux向けにコンパイルってことも可能なわけです。が、Lazarusのライブラリがうまくクロスコンパイルできないので、IndyやMySQLなどの便利なコンポーネントが使えないわけです。

コンパイル中にエラーが出るんだけれど、単純にリンクエラーとしか出ないから何のライブラリが足りなくてエラーになっているのかがわからん。コンパイラのメッセージを全部出力してみても、Linuxライブラリを読み込んでいるプログラムの内部でエラーが起こっているようで、具体的なエラーが分かんなかった。

とりあえず今回は納期があるので、クロスコンパイルはまた後日チャレンジしてみよう。本家のコミュニティー関係で質問でもしてみようか...。

タグ : FreePascal,Indy,Lazarus,MySQL,クロスコンパイル

2009/10/15 20:54:33 | Trackbacks (0) | Comments (0) | Technology

FreePascalでクロスコンパイル(続)

FreePascalは日本語の資料が非常に少ないから大変。

この前できなかったクロスコンパイルができるようになったー。これでDelphianがLinuxを制する日も近くなる。参考にしたのは公式サイトからリンクされているBuildFAQとググってでてきたBuildFAQ。後者の方がどちらかというと分かりやすい。

  • FPCのFTPサイトからbinutilsを取ってくる
  • 取ってきたファイルを展開し、fpc\[Version]\bin\i386-win32にコピー(これであっていた!)
  • fpc\[Version]\bin\i386-win32フォルダにPathを通す(Rad Studioなどの製品をインストールしている場合は、製品に付属しているmakeを使用しないように順序に注意)
  • FPCのCVSからFreePascalのソースコードをダウンロードして適当に展開
  • コンソールを起動し、展開したフォルダに入る
  • make clean
  • make OS_TARGET=linux all
  • make OS_TARGET=linux install INSTALL_PREFIX=<fpcbindir (fpc\[Version]\binなど)>

とりあえずこれでWindowsでコンパイルしたHello WorldがLinux上で動くようになった。LCLは試していないので分からないけれど、こちらもクロスコンパイル用にコンパイルが必要になりそうな予感。

タグ : FreePascal,Linux,クロスコンパイル

2009/10/14 23:05:17 | Trackbacks (0) | Comments (0) | Technology

FreePascalでクロスコンパイル

をどうやればできるのかわからん!

とりあえずBuildFAQ(リファレンス)から分かったこと。

  • FPCのFTPサイトからbinutilsを取ってくる
  • 取ってきたファイルを展開し、中身をppc386コンパイラライブラリのあるフォルダ(これがまずよくわからん、fpc\[Version]\bin\i386-win32でいいのかな?)にコピー
  • クロスコンパイル用のコンパイラをコンパイル(ココから未知の領域)

ん~、いい線まで来ていると思うんだけどなぁ。もう少しからかってみます。

タグ : FreePascal,クロスコンパイル

2009/10/09 03:25:59 | Trackbacks (0) | Comments (0) | Technology

FreePascalでSkRegExpを使う

正規表現が使えないと文字列処理が面倒です。Perl・PHPを使っていると当たり前のように正規表現を使うので、それに慣れてしまっていますね。

Delphiでプログラム書いていたころ、SkRegExpという正規表現コンポーネントを使っていたので、それをFreePascalで使えるようにしてみました。FreePascalの方が文法が厳格なので、ポインタ関連の処理で少々修正が必要です。具体的には、オブジェクトの代入時にはクラスのキャストを行う、関数変数の代入時には関数へのポインタを代入するようにする、で動くようになります。あ、あとUnitファイルをUTF8で保存し直しておかないと日本語が文字化けします。

コンパイルしながらエラーになったところ(ほとんどポインタ関連)を修正していけばいいと思います。MPLなので修正したものを再配布しようかと思いましたが、そんなに難しいことではないので自力でガンバ!ってことで。

タグ : Delphi,FreePascal,正規表現

2009/10/09 03:01:47 | Trackbacks (0) | Comments (0) | Technology

明日は学園祭準備日

学園祭当日より、準備日でしょう。

ということで、勝手に(一応企画申請はしてあるよ)学園祭企画を検索するシステムを設置しました。
http://campus.tsukuba.ch/

はい、明らかに会社資産の私的利用ですね(と言っても多少のお金はもらうけれど)。某ショップ検索システムをそのまま使って、学園祭企画の検索ができるようになっています。テンプレートはやんじゅん作。途中でシステムの仕様変更などがあったにもかかわらず、がんばってテンプレートを作ってくれました。拍手。

初の試みとして、GPSを企画の検索や目的地・現在地の表示に使用するようになっています。カーナビの簡易版みたいに使えるわけです。GoogleMapを使用しているので学内が詳細に出ているわけではないですが、初めて大学へ来る人でも大体の位置関係は分かるのではないでしょうか。

とりあえず、筑波大学の学園祭に来る方は使っていただいて、感想なんかを教えていただけると嬉しいかな。

タグ : 企画,学園祭,検索,筑波大学

2009/10/08 22:35:47 | Trackbacks (0) | Comments (0) | Pastime,Technology

FreePascal + MySQL

今日はFreePascalからMySQLへの接続をがんばってみた。

MySQLへの接続は、データベースドライバをラッピングしているコンポーネントがLazarusに付属しているので、それを利用することにする。簡単な使用方法は公式Wikiに載っているので、それ通りに実装すれば最低限は動作する。以下は若干気をつけなければいけない点。

  • 現在サポートされているのはMySQL 5.0.x。現状最新の5.1.xは接続してくれない。
  • 実行ファイルと同じディレクトリに(パスが通っているディレクトリもOKかも)libmysql.dll(Linux系ではlibmysql.soかな)をコピー
  • 日本人ならSET NAMESをしないと文字化けする。

とりあえず昨日のExtPascalと今日のMySQLを組み合わせてExtJS-FreePascal-MySQLがつながった。あとはプログラムを組んでいくだけだが、この先は世界的に見ても明らかに資料が少ない...。

と、とりあえずここまでやって、夜28時から作業し始めて(←そもそもこれが大間違い)朝が来た。

タグ : ExtJS,ExtPascal,FreePascal,Lazarus,MySQL

2009/10/05 06:10:05 | Trackbacks (0) | Comments (0) | Technology

ExtPascalへの道のり

ExtJS + FreePascalを使うためのメモ。環境はWindows Vista 64bit + FPC 2.2.2 + Lazarus 0.9.26.2 beta + ExtJS 3.0.0。

基本はオフィシャルページのGettingStartedページWebServer_Embeddedページを参考にしている。

  • lazarusをインストール(Free Pascalもインストールされる)
  • とりあえずApacheをインストールして、適当に設定
  • ExtJSをダウンロードして遊んでみる
  • [ドキュメントルート]/extディレクトリを作成し、その中へダウンロード及び展開したExtJSのファイルをコピー
  • サーバー統合型ExtPascalを構築するならIndy10をインストール
    • ダウンロード及び展開したIndyのファイルのうち、fpcディレクトリの中身をlazarusディレクトリにコピー
    • [Lazarusルート]/components/indyディレクトリを作成し、lazarusディレクトリ内のファイルをコピー
    • indylaz.lpkをダブルクリックでLazarusを起動
    • 「Package」ウィンドウの「Compiler Option」ボタンをクリックして「Other Unit Files」項目に「./」を追加(良く分からないけど、これしないとコンパイルエラーになる)
    • 「Install」ボタンをクリックしてコンパイル&インストール
    • コンポーネントタブにIndyが追加されていればOK
  • ExtPascalをダウンロードし、適当に展開
  • ExtToPascal.dprをコンパイル(このときコード内で定数(const)に代入しようとしているコードがあるので、これを変数(var)に置き換える)。コンソールアプリケーションとしてExtToPascal.exeができる
  • ExtToPascal.exeにコマンドライン引数として「[ドキュメントルート]/ext/docs/output」を渡して実行(ここでExtJSのバージョンにあったUnitファイルが作られるのかな)
  • ExtPascalSamples3.dprをコンパイルしてみる(embeddedの場合はリポジトリにあるExtPascalSamples3_embedded.lpiをダウンロードしてdprと同じフォルダにコピー&コンパイル)。
    • embeddedの場合はTIdExtApplication.Createをしているところで待ち受けポートを変更できる
  • コンパイルして出力されたExtPascalSamples3.exeを[ドキュメントルート]ディレクトリ内(extディレクトリと同じ階層)へコピーして実行してみる(embeddedの場合はhttp://[サーバー]/Home)
  • ExtJSのサンプルが表示されればOK

と、とりあえずここまでやって、夜11時から作業し始めて朝が来た。

タグ : ExtJS,ExtPascal,FreePascal,Indy

2009/10/04 07:25:17 | Trackbacks (0) | Comments (0) | Technology

MovableTypeのメモリリークが激しい

このブログはMovableTypeで動いているわけですが、これをFastCGIで使っているとメモリリークしまくりです。どうもオブジェクト内で相互参照しているみたいで、ガベージコレクションが不要なメモリを捨てられないようです。

非力なサーバーでしかもメモリも256MBしかないので、Apacheのプロセスで150MBもメモリ使われると、他のプロセスに影響が。しかもHDDになんちゃってSSDを使っているのでスワップすると余計に遅くなってしまうという。

どうするかなー、FastCGI使うのやめるか、1日に1度Apacheを再起動するか。

タグ : Apache,FastCGI,HDD,MovableType,SSD,メモリリーク

2009/09/29 15:26:10 | Trackbacks (0) | Comments (2) | Technology

プログラムの理解に自信のある人

コードレビューハンズオンというのがあるので、プログラムの読解に自信のある人は腕試しをしてみるといいかもしれません。

一応僕もどんなもんかなと思ってやり始めたのですが、30分くらいして「こんなことしている場合ではない」と正気に戻ったので途中でやめました。やるべきことをやってからじゃないと...。

ちなみに30分で差分情報 01までやりました。そこで先の長さに気が付いてやめたわけです。僕はJavaは大学でチョロっと触った程度で、Appletは無知識です。

僕の場合、プログラムの修正・カスタマイズが必要になったとき、人のプログラムはトライ&エラーで都度コンパイルしながら動作確認なので、このテストのようにコードベースだとちょっと苦手ですね。途中までやった感想を書いておくと、何を実装しているか・何をしたいのかというのは理解できるけれど、問題があるコードか否かは判断しづらそう。

10月12日まで回答を受け付けているそうなので、それまでに時間があればまたやってみよう(たぶんそんな時間ないと思うけど)。週末暇な開発者の方はぜひどうぞ。

タグ : コードレビューハンズオン,プログラム

2009/09/24 22:05:55 | Trackbacks (0) | Comments (0) | Pastime,Technology

PHP4でAjaXplorerを使う

ちょいとやぼようで、ファイルマネージャを使ってみた。

で、AjaXplorerがインタフェース機能的に優れていたので、これを使用したんだけれど、PHP4の環境ではうまく動作せず、少しプログラムを修正したので、そのおぼえがき。

動作確認環境は、PHP4.3.11とAjaXplorer2.5.2。

  • /server/classes/class.AbstractDriver.php
    ・106行目コメントアウト
    ・108-110行目コメントアウト
  • /server/classes/class.Utils.php
    ・433行目コメントアウト
    ・434行目から以下を追記
    
    		$fp = fopen(TESTS_RESULT_FILE, 'w');
    		if ($fp) {
    			if (flock($fp, LOCK_EX)) {
    				fwrite($fp, $content);
    			}
    			fclose($fp);
    		}
    
  • /plugins/access.fs/class.fsAccessDriver.php
    ・113行目コメントアウト
    ・1311行目コメントアウト

まぁ要はPHP5なコードを削除したり変更しただけなんですけどね。エラーになったところだけ修正しているから、たぶんもっと変更箇所はあると思う。とりあえず、参考までに。

タグ : AjaXplorer,PHP,プログラム

2009/08/08 21:07:20 | Trackbacks (0) | Comments (0) | Technology

mod_fcgiを入れてみた

これだいぶいいね!MTは管理画面が重いからかなり体感的にスピードアップ。検索とかもそれなりに早くなった様子。会社のサーバーでPerl使っているサーバーにも入れようかね。

タグ : MT,Perl,サーバー

2009/08/08 19:28:04 | Trackbacks (0) | Comments (0) | Technology

ということで、サーバーを回生させてみた

サーバーが死ぬ前の最後のエントリーで死ぬかもといっていましたが、やっぱり死にました。

今回は予兆を先に発見でき、最新状態をバックアップしておけたので、再セットアップもそれほど大変じゃありませんでした。

ちなみに取り出したHDDは振ってみるとカタカタ音がします(笑)。おそらく、ヘッドがディスクに着地しているんじゃないかと。

タグ : HDD,インストール,サーバー

2009/08/08 18:22:55 | Trackbacks (0) | Comments (0) | Technology

Windows Media Playerのライブラリデータベースが壊れた

Windows Media Playerのライブラリ機能を使用しているのですが、これのデータベースが壊れた模様。ライブラリには評価の項目があり、再生回数によって自動的に星の数で評価してくれるのですが、これが機能しなくなりました。僕は基本的にアルバム丸ごと再生するので、自動評価しておいてくれると、前回どこまで再生したかわかりやすいんですよね。

壊れちゃったのは仕方がない。削除してしまいましょう。%AppData%内のMicrosoft\Media Playerフォルダを削除します。

ライブラリがスッキリ消えます。評価もリセット。上記を実行する場合は自己責任で。

タグ : Media,Player,Windows,ライブラリ

2009/07/05 17:28:38 | Trackbacks (0) | Comments (0) | Technology

La Fonera 2.0販売開始したらしい

今日はFONいろいろいじっていたのですが、その途中でLa Fonera 2.0が販売開始したことを知りました。だいーぶ前にUSBポートがついたものができそうだ、ということは知っていたのですが、その後すっかり忘れていました。

今回は機能盛りだくさんですね。NAS、USBカメラ、プリントサーバーなどUSBがついてだいぶいろいろな使い方ができるようになりました。FONのWikiによると将来的にはリピーターモードも実装されそうな予感で、前の記事に書いた悩みも解決してくれそうですね。

だがしかし、お値段的に手が出ませんね(笑)。6,980円じゃぁ普通のルーターと変わらないし。普通のFONでもいじれば機能つけられるからあえて2.0を買う必要もないな・・・。7月9日までは5,980円の割引価格で買えるようなので、気になる人はチェックしてみるといいかもしれません。
FON LA FONERA 2.0 (ラ・フォネラ2.0) FON機能搭載 無線LANルータ FON2202E

タグ : FON,USB,リピーター

2009/06/27 01:49:56 | Trackbacks (0) | Comments (0) | Technology

FreeWLANでリピーターモードを使うときのおぼえ書き

FON機能を残しつつリピーターモードを入れたかったので、FONをごにょごにょしてFreeWLANを入れてみた。気をつけるべき点があったのでおぼえ書き。

  • 上流側のネットワークをブリッジするわけではない。よって、DHCPで配布するIPを上流側のネットワークアドレスと重複しないよう指定する。
  • リピーターモードにすると、WAN側のインターフェースが上流側の無線インターフェースに付け変わる模様。よって、アクセス制限を「Public>WAN」「Private>WAN」ともに「allow」に変更する。
  • リピーターモードはAdvanced>Internet Connectionで「Mode」を「WLAN(QRM)」を選択する。
  • リピーターからFON_APの電波は出ない(FON機能残せない?でもFONがアクティブなのは通知している)。FON_APの無線インターフェースを上流側に使用しているのかな?(詳細は調べていない)[2009/06/27 00:05追記] FON_APの電波も出てました。しかしながら、どうもDNS関係の不具合で認証画面にアクセスできず。下の項目でも書いているが、FONのDNSサーバーうまく機能していないためと思われる。nslookup使っても名前解決できないことを確認。なにか設定が違うのだろうか・・・、わかるひと通りかからないかなぁ。
  • DHCPで配布されるDNSサーバーはデフォルトでFON自身のIPだが、それを使用しても名前解決ができない(どこか設定が違うのだろうか)。面倒なので、/etc/dnsmasq.confの最終行に以下を追加。OpenDNSのサーバーIPをDNSで配布するように指定。
    dhcp-option=6,208.67.222.222,208.67.220.220

タグ : FON,FreeWLAN,QRM,リピーター

2009/06/26 19:54:52 | Trackbacks (0) | Comments (0) | Technology

ついでだから携帯回線について

Softbank回線はくそ。ほんと使えないヤツ。

電話している途中に会話が切れることは普通。電波が非常に不安定。

Docomoは他のキャリアに比べて少し高い部分もあるけれど、お金払っているだけのことはある。Docomoのサービス品質になれてしまうと、Softbankとか回線事業者としてどうなの?って思ってしまう。

値段はウソつかない。特にインフラに関しては。

タグ : Docomo,Softbank,品質,回線,携帯

2009/06/21 18:31:43 | Trackbacks (0) | Comments (0) | Technology

Google Developer Day 2009へ行ってきた

もう2週間近く前のおはなしですが。

で、早速戦利品。
タオル・Android・マスク

  • Android端末(!)
  • タオル
  • マスク(ネタ?)

一番の目玉は、Google Androidの端末でしょう。サプライズプレゼントがあることは聞いていましたが、まさかケータイくれるなんて。太っ腹だねGoogle。スマートフォンとかあまり興味がなかったけれど、もらっちゃったら何か開発してみたくなるよね。さすがGoogle、開発者の心理読んでます(笑)。

このAndroidはSIMロックがかかっていないので、どこのキャリアのSIMカードも使えるようです。日本ではDocomoとSoftbankの回線が使えるようです。ちょうど、Developer Dayの前日に会社用のSoftbank携帯が支給された(なんてタイムリー)ので、そのSIMカード指して使ってます。
Softbankの回線

ちなみに、支給された携帯は社員との無線用途(笑)なので、電話専用。スマートフォンのネットは高いので、無線LAN拾えるところじゃないとAndroidの恩恵を受けられません(笑)。

それでも、無線LAN使えるところでは便利だね。IMAPとか使ってメール受信できるので、ちょこっと会社のメールチェックしたり、またはGoogleカレンダーで予定をチェックしたりするのに便利。インターネットブラウジングも携帯にしてはスムーズなのでなかなか使いやすい。ただ少し何点なのは文字が打ちにくいこと。やはりタッチパネルは文字打つのには不向きだね。あと、僕みたいに手汗がひどい人はすぐタッチパネルが汚れます。

ということで、Developer Day(の戦利品)のお話でした。こんな豪華なプレゼント貰えるならまた来年も行こうっと。来年は参加の競争率も高まりそうだね。

タグ : Android,Docomo,Google,SIMカード,Softbank,無線LAN

2009/06/21 17:12:58 | Trackbacks (0) | Comments (0) | Technology

第3回 Web2.0マーケティング フェアへ行ってきた

昨日は「第3回 Web2.0マーケティング フェア」を見に行くために、ビッグサイトへ行ってきた。

最近のウェブサービスのトレンドはクチコミ・CMS・モバイルなのかな。それ関連の出展社が多かった気がする。ウェブマーケティングではメール配信と顧客データベースの提供が多いかな。

目だった革新的なサービスはあまり無かったかなぁ。ほしいと思っているサービス・仕組みもフリーのモノを組み合わせればできてしまうものが多かったような気が・・・。もしくは買うまでもなくつくってしまえるものとか。まぁ各社どのような商品を売りたいのかという思考が伺えて、アイデアはマネできるのでその点では勉強になったな。

タグ : CMS,Web,クチコミ,ビッグサイト,マーケティング,モバイル

2009/05/16 15:23:16 | Trackbacks (0) | Comments (0) | Technology

つくばの電子パーツショップ

抵抗1本のためにアキバへは行ってられないでしょー。

最近の機械は抵抗が全部チップ抵抗になっちゃって、分解してもふつーの抵抗は見当たらない・・・。つか、トランジスタもひらべったいチップになっていて感動した(いつの時代の人だよ)。

で、どうにかつくば周辺で電子部品が手に入らないかなぁと思ってネットを調べてみたんだけれど、それらしい情報はなし。1件だけブログで昔石丸のあたりにあったお店が、篠崎にあるということを書いていたんだけれど、それも何年か前の情報で、今お店があるのか・・・。ダメ元で行ってみたら電子部品売ってました。

お店(というか会社)は株式会社キットさん。場所はつくば市篠崎962-3です。昔は「とむ's」という名前でお店をやっていたそうですが、今はそのお店は閉鎖し、本業の会社だけになっているようです。昔お店に置いていた部品は会社横のコンテナの中にしまわれてあり、会社の事務所に声をかけるとコンテナを開けてくれます。本業はハーネス・ケーブルの製造のようで、電子パーツ製造元とのかかわりもあるため、取り寄せにも対応(送料はかかるよ)してもらえるようです。

自分が行ったときは社長の奥さんと思われるおばちゃんが対応してくれたのだけれど、お話し好きな人でした。最近は部品を買いに来る人がめっきりいなくなってさみしいよ、と言ってました。研究の部品集めに利用されてみては。

タグ : つくば,パーツ,部品,電子

2009/04/14 00:38:11 | Trackbacks (0) | Comments (0) | Technology

キワモノはドライバ探しが大変

ちょいと必要があってヤフオクでUSB-Serial変換器を買ったのですが、64bit環境のドライバが添付されていなかったため、ドライバ探しが大変でした。

結論としては以下のURLのドライバが使えました。

USBデバイスのドライバはVID(ベンダーID)とPID(プロダクトID)が一致するものを探せば良いです。デバイスマネージャの詳細タブのどこかにVIDとかPIDって文字列があるので、該当する値を手掛かりにすることができます。

タグ : PID,Serial,USB,VID,ドライバ,変換器

2009/02/24 04:38:57 | Trackbacks (0) | Comments (0) | Technology

腐ってもSeagate

HDD買いました。1TB。
HDD

会社のサーバーのアクセスログなどはすべてローカルのPCに移動しておくのですが、毎月1GBくらいづつ増えるのでHDDが足らんくなってきちゃいました。ちなみに、残り3GB(笑)。古いの消したり圧縮したりすればいいのですが、いずれにせよデータが増えていくことに変わりないので、ストレージを増やしておくことにしました。

メーカーはちょいと前に問題になったSeagateです。思うに、いくらアクセス不能になるとは言えデータがなくなるわけではないし、ファームウェアのアップデートで解決するんだから、以前と変わらない品質が期待できるのではないかと。Seagate以外のHDDはあまり使ったことがありませんが、それでもSeagateが一番安心できる気がする。何せ7年前に買ったSeagateの40GBはいまだに問題なく稼働しているからね。同時期くらいのMaxtorとかは何台か逝っているし。

とりあえず取り付けは明日でいいや。取り付けたらデータ整理しないと・・・。

タグ : HDD,Seagate

2009/02/09 01:55:42 | Trackbacks (0) | Comments (2) | Technology

Googleを支える技術

Googleを支える技術 - 巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ)
西田 圭介
4774134325

6seseさんに借りた本なんだけれど、何ヵ月借りているんだよ!ってくらいずっと読んでいなかった本。2章くらいまでその後忙しくなって数ヵ月、やっと読み終えました。ってか読み終わらせました。

Googleを支える技術」の続きを読む

タグ : App,Google

2009/01/17 22:00:43 | Trackbacks (0) | Comments (0) | Book,Technology

KNOPPIXにOpera

一個前の記事で書いたUSBのKNOPPIXですが、その中にOperaを入れました。やっぱりブラウザは使いなれたものが一番なので。

KNOPPIXはDebian系なのでDebianのインストーラパッケージがそのまま使えるのですが、KNOPPIXへ普通にインストールしてもメモリディスク上にインストールされるだけなので、再起動するときれいになくなります。

再起動しても残るようにしたい場合は、/home内にインストールする必要があります(もちろん「継続的なKNOPPIXディスクイメージの作成」をやってないと残りませんよ)。Operaのダウンロードページに「TAR.GZ形式でダウンロード」というオプションがあるので、これをダウンロード。インストールスクリプトで「./install.sh --prefix=/home/knoppix」とオプションを付ければOK。

インストールすれば普通に使えるんだけれど、フォントがきたないのでフォントも変更してあげます。フォント設定ウィンドウに「文字別フォントボタン」があるのでそれをクリックして、CJK記号と日本語のフォントをIPA Pゴシックとかに変更すればキレイな文字に。

こんな感じで快適なOpera on USB-KNOPPIXライフが楽しめます。

タグ : KNOPPIX,Linux,Opera,USB

2009/01/17 21:42:40 | Trackbacks (0) | Comments (0) | Technology

USBメモリにLinuxをインストールしてみた

USBメモリにLinuxをインストールしてみました。ブラッディ・マンデイに触発されたとか、そんなハズありません。きっと。
USBメモリにLinux

4GBのUSBメモリを2GB(Windowsからも参照できる通常のメモリとして)+1GB(Linuxインストール用として)+1GB(/home用として)にパーティション切ってみました。使ったUSBメモリはハギワラシスコムの黒いヤツ。LinuxはベーシックなKNOPPIXを採用。ネットにある解説を適当に見ながらインストールしてみました。

インストールは非常に簡単でした。しかもWindowsなんかより格段に早いし。ま、ほとんどファイルコピーするだけだから当然っちゃー当然なんだけど。

ちょっとハマった点として、ASUSのマザーボードでUSBメモリからブートするようにBIOSを設定するときは、Boot Device Priority項目でRemovable Deviceを優先順位上げるのではなくHard Disk Drive項目でUSBメモリを既存のHDDより優先順位上げるように設定してあげないといけないみたいです(わかりにくい説明だな・・・)。要はUSBメモリもHDDの一つとして扱われているということです。

これで他人のパソコン使い放題・覗き放題だな(実際にやってはいけません)。どうせみんなBIOSにパスワードとかかけていないから、ブート順位変えればUSBメモリから起動し放題だぜ。

久々に熱中することやった気がする。昔はこんな風にパソコンいじったりプログラム書くことに熱中したりしたのになぁ。仕事になっちゃうとだめですな。

タグ : KNOPPIX,Linux,USB

2009/01/17 20:23:34 | Trackbacks (0) | Comments (2) | Technology

カニ飯・カニ刺・カニ汁

カニ飯・カニ刺・カニ汁を食べました。

材料費1,000円くらいのご飯。まぁたまにはそんな贅沢もいいでしょ。
カニ飯・カニ刺

タグ : カニ刺,カニ汁,カニ飯

2008/12/20 22:52:26 | Trackbacks (0) | Comments (0) | Technology

qmailで自ドメインのGoogle Appsへメール送信

今までPHPで送信したメールのエラーとか全く考えていなかった(ぉぃ!)んだけど、いざエラーメールを受け取ろうと思ったときにハマったのでメモ。環境は、メールサーバーにGoogle Apps、ウェブサーバーのMTAにqmail。

メールエージェントはデフォルトで自分のドメインのメールは自分のサーバーの中で処理しようとします。つまり、hoge.comのサーバーはsomeone@hoge.comのメール配送はそのサーバーないで完結させようとするわけですね。自宅サーバーなんかだと1台で全部ウェブもメールも処理すると思われるのでこれでいいのだと思うのですが、メールサーバー切り分けていたりGoogle Appsとかでホスティングしていると問題が起こってくるわけですね。

で、どうするかというと、qmailの設定で内部で処理するドメインを解除します。qmailの設定はデフォルトなら/var/qmail/controlかな?この中のlocalsというファイルを編集して内部で処理してほしくないドメインを削除します。

これでエラーメールもGoogle Appsで受け取れます。めでたしめでたし。メールの設定とか何度もすることではないからわからんなぁ。

タグ : Apps,Google,PHP,qmail,ウェブ,サーバー,メール

2008/12/14 21:12:22 | Trackbacks (0) | Comments (0) | Technology

メモリを有効活用(?)

たまにはブログ書かないとね。生きているしるしを(笑)。

Linuxのイメージファイルをダウンロードしたときの図。
メモリを使いまくっている

OperaのBitTorrent機能を使ってダウンロードしたんだけれど、ダウンロード開始前のメモリの使い方が半端ない。こいつはダウンロードを開始する前にファイルサイズ分の領域をメモリに確保しようとするのだろうか。

タグ : BitTorrent,Linux,Opera,メモリ

2008/12/08 00:42:57 | Trackbacks (0) | Comments (2) | Technology

SSHのログがひどいことに

サーバーのハードディスクの音がいつもより多いなぁと思って、調べてみたらSSHのアクセスが大量に・・・。そういえば最近外からSSHアクセスできるようにルーター設定したなぁ。1日で20MBのログファイルが出来上がってました(笑)。

rootで直接ログインはできないし、ユーザーも僕のだけだから突破されることはないと思うけれど、かなりウザイ。ということで、ルーターのポートフォワーディングつかって22番以外のポートを使うようにしました。

効果てきめん、すげー静かになった。っていってもポートスキャンされたらどのポート使っているかわかっちゃうな・・・。

タグ : SSH,ルーター

2008/11/17 01:10:28 | Trackbacks (0) | Comments (0) | Technology

Opera Software The Web Seminarへ行ってきた

戦利品。赤いTシャツはなかなかきれないなぁ。情シスTシャツと同じ場所に収納したら赤と青のコントラストが(笑)
戦利品

話の半分はWeb標準化だったかな。Operaは機能やスピードだけで他のブラウザにブラウザに対抗するのではなく、Web標準ということをちゃんと視野に入れて開発されているということがよくわかった。講演者も言っていたけれど、Webページ作成するときはOperaかFireFoxで先に作成して、あとでIEでも動くように修正するのが良いね。

新しく知った機能としては、Opera XML StoreとDragonflyかな。DragonflyはFireFoxのFireBugみたいなもの。存在は知っていたんだけど、使い方がいまいちわからなかったので使っていなかった。が、いつの間にか日本語にも対応していて、今後はHTTPパーサー(プログラム開発の時に便利!)も搭載されるようで、今後はデバッグにDragonflyが使えそうだ。Opera XML Storeはウィジェット用のオンラインストレージなんだけど、自分でウィジェット書けば好きなデータを保存できるらしい。これでプロファイルをコピーするウィジェットでも作るか。

Operaの中の人にも会えたし、なんかプレゼントももらえたし良いイベントだったと思う。

タグ : Dragonfly,Opera,Web標準

2008/11/05 19:18:29 | Trackbacks (0) | Comments (0) | Technology

Opera Software The Web Seminar

というイベントが大学で開かれるようです。一応学生向けのセミナーのようですが、社会人も参加できるようなので行きます。

考えてみればOperaを使い始めて5年くらい経つんだなぁ。使い始めたころはバージョンが7だったような気がします。当時はまだシェアウェアで、フリーで使うためには右上にバナー広告が出ていましたからね。IEとは比べ物にならないくらい描画速度が速くて、非力なPCでは重宝してました。

最近はいろいろなブラウザが高速化してきて、Operaの速度がダントツとはならなくなってきましたが、これだけ高機能でカスタマイズができるのに、処理速度を落とさないでいられるのもすごいなと思う。

ま、とりあえずどんな話が聞けるのか楽しみですね。

タグ : Opera,セミナー

2008/11/04 01:54:48 | Trackbacks (0) | Comments (0) | Technology

64bit は難しい

Vista 64bit版を使っているのですが、64bitというのはなかなかくせ者ですね・・・。

  1. ドライバの関係でVistaにしてから昔使っていたUSBラジオチューナーが使えなくなる。
  2. チューナー放置。ネットラジオに乗り換え。
  3. ラヂオつくばが開局。仕事の関係もあるので聞きたくなる。
  4. ドライバを何とかしてみようかと考える。
  5. 本を読んでみた。ネットを散策してみた。
  6. 挫折。
  7. User Mode Driverなるものがあることを知る。
  8. ネットを散策してみる。お、これならいけそうかも!
  9. WDK(Windows Driver Kit)をダウンロード。
  10. 「64bitでは動きません」
  11. そうですか、すいませんでした。
    1. タグ : 64bit,umdf,vista,wdk,ラヂオつくば

      2008/11/03 18:15:36 | Trackbacks (0) | Comments (0) | Technology

地デジチューナーも進化

いやぁ素晴らしい製品が出ますよ。PT1。今後のアプリケーション類の発展に期待。個人的には署名付きの64bitドライバとFriioUtilのようなシンプルなビュアーを求む。

Friioもいつの間にやら進化していたんですね。最近のビュアーだとB-CASカードがなくてもネットワーク上のB-CASカードから複合化できるようです。それと署名付きの64bitドライバも出たようです。早速インストールしてみたら、署名の強制を解除しなくてもFriio使えるようになったよ。

PT1の今後の発展次第では乗り換えだなぁ。パソコンでデジタルWOWOWが見れるようになる日もそう遠くないかも。

タグ : B-CAS,Friio,PT1,地デジ

2008/10/24 17:26:15 | Trackbacks (0) | Comments (0) | Technology

1眼レフ

今年の学園祭は主にカメラマンやってました。1眼レフ難しいねぇ。昼間だとキレイな写真撮れるんだけどね。夜はピント合わせるのと手ぶれ押えるのが大変。コンパクトデジカメに比べればいい写真が撮れたなぁと思っていたけれど、ちうちうの写真と見比べてへたっぴなのを実感。まだオートピクチャーモード多用なので、しぼりやシャッタースピードを調節できるようになりたいです。

がんばったビデオカメラの図。
ビデオカメラ

なお、撮影した写真はダウンロードできるようにしますので、近々MLへ流します。

タグ : 1眼レフ,ピント,手ぶれ

2008/10/15 02:28:13 | Trackbacks (0) | Comments (2) | Technology

これはよい教科書

LPI-JapanというところがLinux標準教科書というのを出したみたいです。

情報学類の1年生で習う範囲くらいですかね。途中コマンドの説明ばかりだけれど、よく使うコマンドが並んでいるのでまぁアリか。

LinuxやMac触り始めの人はサクッと目を通してみる価値はあるかもしれません。

タグ : Linux,LPI-Japan,Mac,教科書

2008/09/24 21:52:15 | Trackbacks (0) | Comments (2) | Technology

「Delphi 6 プログラミングバイブル」が安くなっている

Delphi 6 プログラミングバイブル
篠原 慶 光田 秀
4844316346

中古で6,000円。いや、決して安い金額ではないのだけれど、絶版になってからプレミアがついて値上がりしっぱなしだったのが、最近安いのが出品されたようです。2年くらい前に買ったときでさえ9,000円でしたから・・・。

Delphi使いならこの本は持っていて損はないと思います。だいたいプログラミングで困ったらネットで検索するか、この本を読みます。すでに2009の話題が出てますが、この本でも十分事足りると思います。Delphi 6以降IDE中身の革新はあるかもしれませんが、プログラミングスタイルというか概念というか、できることは大幅に変わっていないように感じているからです(Delphi 6から使い始めたのであいまいですが)。実際Rad Studio 2007を使っていますが、いまだにこの本は手放せないですね。

ちょっと本の内容に触れておくと、対象はDelphiの基礎をそれなりにおさえている人。初心者向けのように手とり足とりではないです。その代わりDelphiでできることがまんべんなく書かれています。VCL、DB、COMなど。

Delphiってなにさ!?とかこれからDelphiでプログラミング始めるって人は「はじめてのDelphi」がお勧め。ま、僕がDelphiを始めたときの本なんですけどね。Hello, world!にぴったりの本。プログラムってifやループでつくるんでしょー?ってくらいの知識があれば、この本を通して基本的なWindowsアプリは作れるようになっちゃいます。Delphi 6 Personalがフリーで配布されてダウンロードしたけれど、どう使っていいやらって時にこの本に助けられましたねぇ。

とりあえずDelphianなら「Delphi 6 プログラミングバイブル」買え。他の言語使っているならDelphiつかえ!.netもいいかも知れないけど、やっぱりネイティブアプリが作れた方がいいしね。

タグ : Delphi,プログラミング

2008/09/16 02:15:08 | Trackbacks (0) | Comments (0) | Book,Technology

サーバー交換について

おうちが静かになったよ!

サーバーが液晶が壊れたIBMのThinkPadになりました。スペックは前使っていたのとほとんど変わらないんですが、何より静かさがケタ違い。布団に入ったときのファンのノイズが聞こえなくなった!そとの虫の鳴き声がよく聞こえるよ!

タグ : IBM,ThinkPad,サーバー

2008/09/08 14:58:35 | Trackbacks (0) | Comments (0) | Technology

モデム交換について

Yahoo!BBの対応かなり良くなったね。むかーし、Yahoo!BBの提供エリアになってすぐのころ、実家でYahoo!BBを申し込んだとき、ADSLが使えずカスタマーセンターに電話した時はオペレータが出るまで30分もかかったものです(遠い目)。それに比べて今は休日でも10分ほどの待ち時間になりました(ええ10分待つんです・・・)。それと、モデムが壊れていそうだってことですぐモデムの交換に対応してくれて、休日発送もやってくれるんだから昔に比べれば、かなりのサービス向上ですよ。

とりあえず今回の件でYahoo!BBの昔の悪い印象は緩和されたかな。あとは電話の待ち時間がなくなるといいよね。

タグ : ADSL,Yahoo!BB,対応

2008/09/08 14:49:04 | Trackbacks (0) | Comments (0) | Technology

モデム交換・サーバー交換・サイト再構築

なんぞをやっていました。

ちょいと前からサーバーを交換することは考えていたんですが、ついでならMovableTypeも最新にして、そうするとテンプレートも使えなくなりそうだからサイト再構築して・・・ってな具合にいろいろ新しくしてみた。

んで、土曜日にサーバーを差し替えようとモデムの設定をごにゃごにゃしてたらモデムが壊れたと(笑)。なんかルーティングテーブルが壊れちゃったかなって雰囲気。Y!BBのサポートセンターに電話したらリモートでリセットしてくれて、ネットはつながるようになったんだけど、ポート転送ができなかったり、モデムの管理画面に入れなかったりで、モデム交換することに。

さっきモデムが届いて、設定し直して、サーバー差し替えて、サイト公開して、現在にいたる。

タグ : Yahoo!BB,サーバー,モデム

2008/09/08 14:14:24 | Trackbacks (0) | Comments (0) | Technology

« Pastime | Top | 未分類 »

  • Top
  • Software
  • Blog
  • Laboratory
  • Profile
Search
Feeds of Blog

Copyright © 2004-2011 Ana-Kutsu All Rights Reserved.