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

PERL_DL_NONLAZY

とある環境で、PerlのTestを書いていて、make testを実行すると install_driver(Oracle) failed: Can't load '/usr/lib/perl/site_perl/5.005/sun4-solaris/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: ld.so.1: /opt/local/bin/perl: 重大なエラー…

CでRubyモジュールを作る

PerlのXSがsoを読み込むPerlモジュールファイル(.pm)を必要とするのに比べて、Rubyのrequireは.soファイルを直接読み込んでくれるので、ちょっとばかり簡単です。.soの作り方は、svn.ruby-lang.orgにあります。CのコードはRubyのマクロをふんだんに使って記…

セッションIDの作り方

セッションIDを生成する際にもっとも使われているのはMD5やSHA-1などで、時間やプロセスIDをハッシュ化する方法でしょうか。実際にRubyのCGI::Sessionは、こんな感じです。 def create_new_id require 'digest/md5' md5 = Digest::MD5::new now = Time::now …

Rails + Windows + Mysql(SJIS)

この組合せだとMysqlと日本語のやりとりをするときに文字化けします。「UTF-8を使え」というのが簡単な解決策ですが、しがらみ等あってそうはいかない場合もあると思いますので回避方法を...どこかのドキュメントに書いてあるのかもしれませんが、探せなかっ…

飲食業にもWeb2.0の影響?

http://www.tandoor.co.jp/yaima/lunch.html タイトルはミスリードですが、神田に沖縄料理とインド料理という、出会うことのない2つのジャンルをRemixした「やいま」というお店があります。インドの方が角煮やゴーヤチャンプルを運んでくる姿は非常に微笑ま…

Railsのrakeタスクあれこれ

rake -Tでrakefileに定義されているタスクを一覧表示できます。いろいろあって覚えきれないので、ココにメモっておきます。(rails-0.14.4ベース。よく使うものだけ) タスク 説明 clear_logs すべてのログを削除します。開発中は大量のdevelopment.logが出力…

デフォルト重要

フレームワークやテンプレートエンジンには、クロススクリプティング対策の仕組みが標準装備されているのは、もはや常識ですが、これがデフォルトになっているものはほとんど見かけません。 Rails(erb)の場合 <%=h person.name %>Velocityの場合 $escape.get…

JDBC接続文字列 Oracle

http://www.avant-tokyo.com/web/archives/000014.htmlOracleのJDBC接続文字列はThinドライバ(Type4)の場合、 jdbc:oracle:thin:@[ホスト名]:[ポート]:[SID] となっています。 ホスト名とポートは問題ないのですが、SIDが曲者です。リスナのSERVICE_NAMEでは…

Javascript Template

AJAXで受け取ったXMLをどうレンダリングするか、それが問題です。XSLTという手もありますが、如何せん面倒くさい。そこで、Javascriptのテンプレートを使うのが、今のところはよいのではないでしょうか。 http://trimpath.com/project/wiki/JavaScriptTempla…

踊る大捜査線に学ぶ組織論入門

内容は浅いですが、映画と同じくそんなもの関係ないくらいに面白いです。 「事件は会議室で起きているんじゃない、現場で起きているんだ」 「レインボーブリッジ封鎖できません!」 の有名どころから、 「あんたは、えらくなったんだ。何もしなくてよかった…

Rails with Oracle

Oracle無償版のXEのWindows β版が早くも公開されています。これをインストールし、いろいろ遊んでみていたのですが、せっかくなのでRailsと繋げてみることにしました。 (1)Ruby/OCI8をダウンロード 作者のサイトよりもrubyforgeからの方が最新です。 (2)Ruby…

OpenBlocks266

発売当初に買った手のひらサーバOpenBlocks266ですが、HDDが壊れてからというものずっと放置していました。外からアクセスできるサーバは何かと便利なので、HDDも安くなってきた昨今再構築にチャレンジ。 http://www.plathome.co.jp/support/labo/obs266/の…

RadRailsでテスト

Rails用のEclipseプラグインRadRailsですが、テストの手順がちょっと分かりにくいです。 テストはRadRailsのベースとなっているRDTの機能を使っています。Rails本のサンプルを例にとります。DepotアプリケーションのProductモデルをテストします。 生成したP…

SQL*Plusを使わずに統計情報を取得する

SQL*Plus Autotraceの機能で統計情報が取得できますが、これをSQL*Plusを使わずにやる方法です。 SELECT SN.name, ST.value FROM V$SESSION S, V$SESSTAT ST, V$STATNAME SN WHERE AUDSID=userenv('SESSIONID') AND S.sid = ST.sid AND SN.statistic#=ST.sta…

画像切れを隠す

画像がない場合、「x」がでると見た目上よろしくありません。 これを防ぐには、imgタグのonErrorでイベントを拾って隠してしまえばよいです。 <html> <head> </head> <body> <img src="http://red.hatena.ne.jp/images/ad/42_banner.jpg" id="image_ok" onError="imageEvent(this)"> </body></html>

バナー表示をJavascriptで制御する

iframeによるバナーの表示・非表示のサンプルです。この例では、何かQUERY_STRINGがあれば、バナーを隠す制御をしています。 これは単純ですが、いろいろと応用が利きます。 <html> <head> <script src="http://prototype.conio.net/dist/prototype-1.3.1.js"></script> <script language="javascript"> </head></html>

テキストエリアの入力バイトをカウントする

テキストエリアのonChangeイベントは、フォーカスを移動したときしか動作しないので、リアルタイムにカウントするように作ってみました。本当はイベントをKeyUpかKeyDownに限定したほうがよいかも。文字数単純にlengthを使うと2byte文字が"1"とカウントされ…

ほんたった

http://digimoba.com/products/hontatta/hontatta.htm本を見ながらPCで作業をするとき、どうしても目線を落とさざるを得なくて、ストレスを感じるものです。そこで、前々から気になっていた書見台「ほんたった」を購入しました(池袋ハンズにあります)。 重い…

レビューイ

レビューする人をレビューア(reviewer)と呼びますが、レビューされる人をレビューイ(reviewee)と呼ぶケースもあるようです。私はこの「レビューイ」という呼び方が嫌いです。 レビューされるのは「成果物」であって、決して「人」ではないからです。これは、…

タクシーの経路・料金計算

タクシーに乗ると、いつも遠回りしているのではないかという疑念を抱いてしまうのですが、これさえあれば標準の経路・料金が分かるので安心です。

Rakefile

Makefileでファイルの高度なマッチングやちょっとしたコードジェネレートなど凝ったことをしようと思うと、シェルだけでは足りなくなって、ワンライナーのawkやperlをふんだんに使ったものが出来てしまいます。個人で使うのものだったら達成感を得てメデタシ…

電撃テスト

Blitzkrieg Testing Blitzkrieg Testing and One Test Per Feature テストが自動化されていないプロジェクトにおいて、どのように自動化を進めていくかというTipsです。 深さ優先よりも、幅優先で行きまっしょい。例えば、10枚のページをもつポータルのテス…

人間の終焉

GNR(遺伝子工学、ナノテクノロジー、ロボット工学)の危険性を指摘しています。 人の存在価値を脅かす、これらの技術に「もう十分だ」と言おうではないか。これが作者マッキベンの一貫した主張です。 ビルジョイが警鐘を鳴らしたのと同じ内容です。 数年前に…

ジャッキー・ブラウン

評価がパッツリ分かれているタランティーノ作品です。確かにストーリーは想定の範囲内で展開します。先の読めない話を期待する人には駄作に感じるのでしょう。 本作は、そのありふれたストーリーの魅せ方に特長があります。ザッピング、ミュージック、キャス…

SQLのカバレッジ

SQLの条件記述ミスは、テストで発見できず、重大な問題(他の人のデータが覗けるなど)を引き起こすことがままあります。 この原因は、テストのカバレッジが足りていないことにあります。SQLを呼び出す側のカバレッジ計測に関して、いくらC1(判定条件網羅), C2…

TBD (Tracer Bullet Development)

予定より1ヵ月早く、AmazonからPragmatic Programmer本2冊届きました。まずは、「Ship It!」から。 目玉はTDDならぬTBDです。といっても別に目新しいものではありません。「古いやり方を、今風にまとめてみました」的な手法です。 1.システムオブジェクトを…

SeleniumとFIT

テストケースをHTML表で書き、それが実行されるという点では両者共通しています。 SeleniumはFITと比べて、Fixtureを書く必要がなくお手軽です。テストケースを書くと、直ちにテスト対象のWebアプリケーションが自動的に動き出す様は、直観的に理解しやすく…

Amazonの発送作業に1ヶ月かかる件

AmazonでPragmatic Programmerシリーズ2冊を注文。 Ship it!: A Practical Guide to Successful Software Projects (Pragmatic Programmers) Agile Web Development With Rails: A Pragmatic Guide (The Facets Of Ruby Series) 配送状況を確認すると 以下の…

Perlデザインパターン

http://www.perldesignpatterns.com/?PerlDesignPatterns 素晴らしいサイト。Perlならではのパターンに妙味ありです。 perlの長所を活かすパターン「引数に名前をつける」 サブルーチンの引数の順番を覚えるよりも、ハッシュを使って順序を気にしなくていい…

Tracer Bullet

プロトタイプは、あくまでも試作品であり、実際の開発では使いません。自動車の開発で使う粘土で作るモデルのアナロジーです。 一方、方式やプロセスの検証のために、実際に先行チームで小さな規模のシステムを作ってみて、その後の開発でも使うものを、「ス…