忍者ブログ
[9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]

DATE : 2024/04/26 (Fri)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


DATE : 2007/09/26 (Wed)

RubyGemsで管理されるライブラリを使ったコードを実行する際には、RubyGems 環境の使用をコード中に宣言するか、明示的に ruby インタプリタに伝える必要があります。

(;^ω^)設定を怠ったために、数時間も悩むはめになってしまいました。

RubyGems 環境を使用するには、以下の方法があります。

コードに明記

require 文で RubyGems 環境の使用を宣言します。

require 'rubygems'
# 以下に RubyGems で管理されるライブラリの require 文
-rubygems オプションの指定

ruby インタプリタに -rubygems オプションを指定します。

ruby -rubygems
RUBYOPT 環境変数に rubygems を設定する

この方法では、ruby インタプリタが起動するたびに RubyGems を読み込むことになります。

(;^ω^)RubyGems で管理されないライブラリから管理されるライブラリを呼び出す際のミスだったので、このことが分かるにはかなり時間がかかってしまいました。

( ^ω^)なので、とりあえず RUBYOPT 環境変数に rubygems を設定しておきました。

参考文献

PR

DATE : 2007/09/25 (Tue)

DISTINCT 句を用いると、重複行を除去することができます。しかし、DISTINCT 句内で幾何オブジェクト(Geometry)を指定する場合には、幾何オブジェクトそのものを評価しているのか、幾何オブジェクトの境界(Boundary Box)を評価しているのか注意しなければいけません。

幾何オブジェクト同士の比較方法として「~=(幾何オブジェクトそのものの比較)」と「=(幾何オブジェクトの境界の比較)」の両方があります。DISTINCT 句や、その他の値同士を比較して出力行を変化させるような句では、「=(幾何オブジェクトの境界の比較)」で評価されます。つまり、特定の精度を越えた違いは全て同じと見なされてしまいます。

そのため、以下のような SQL 文を実行すると、重複していないにもかかわらず出力されない幾何オブジェクトが出てくる場合があります。この SQL 文は、点(POINT)オブジェクトの格納されたテーブル( point )から、重複する点オブジェクトを除いて出力することを想定しています。点オブジェクトは、location 列に格納されているものとします。

SELECT DISTINCT ON ( location ) location
FROM point;

この問題は、幾何オブジェクトをバイナリに変換することで解決できます。バイナリに変換した上での SQL 文は、次の通りです。

SELECT DISTINCT ON ( ST_AsBinary( location ) ) location
FROM point;

関連記事

参考文献


DATE : 2007/09/19 (Wed)

PostGIS では、幾何(geometry)オブジェクト同士の等しさを比較するための演算子が2種類用意されています。

~=
幾何オブジェクト同士が厳密に等しいかどうかを比較する。
=
幾何オブジェクト同士の境界(boundary box)が等しいかどうかを比較する。

データベースに格納済の幾何オブジェクト同士を直接比較するには、なるべく「~=」演算子を使います。例えば、点(POINT)オブジェクトを考えてみます。点が密集しているところでは、それらの境界は同じとみなされることがあります。ある精度以上で密集していると、それらの境界はある程度で丸められてしまうようです。そのため、点が密集しているところで「=」演算子を使用すると、厳密には座標の異なる点オブジェクトまで等しい点オブジェクトと見なされることがあります。

ただし、データベースから特定の座標をテキスト情報(Well-Known Text など)で取り出して比較する場合には「=」を使う必要があります。テキストでの座標表現は特定の精度で丸められているため、データベース内のバイナリ形式で格納された座標と一致しません。そのため、データベースから取り出した情報から厳密な比較を行うには、テキスト情報ではなくバイナリ情報(Well-Known Binary など)で取り出す必要があります。


DATE : 2007/09/14 (Fri)

友人と一緒に、「ヱヴァンゲリヲン 新劇場版:序 EVANGELION:1.0 YOU ARE (NOT) ALONE」を見てきました。TV 版「新世紀エヴァンゲリオン」は未見でしたが、それなりに楽しめました。

ただ、TV 版の1話~6話までの展開を再構成したためか、ツギハギ感が若干目立ったような気がします。脳内補間をかけて、「きっと昔に○○なことがあったのだろうな」とか「××は△△なんだろうな」と無理矢理にでも納得しないと、展開についていけないと思いました。

物語の内容自体は、最終的には大団円な展開なので満足できました。もっとも、次回作以降のための謎があちこちに残されているので、気分はあまりよくありません。個人的には、「序」は「序」で完結するような展開になっていればもっと良かったのですが。

(;^ω^)もし次回作を見るとしても、そのときには「序」の謎はほとんど忘れているような気がします。

ところで、「新世紀エヴァンゲリオン」といえば数々の名言が挙げられます(「逃げちゃダメだ、逃げちゃダメだ、逃げちゃダメだ」など)。「ヱヴァンゲリヲン 新劇場版:序」でも名言がいくつか出てきます。しかし、様々なところでパロディーにされるのが名言の性というもので、TV 版から約10年経ったいまかなり手垢がついています。結果、名言が出てくるたびにヱヴァンゲリヲンの世界から現実に引き戻されてしまいました。特にラスト付近の名言は本来なら感動の場面なのでしょうが、現実に引き戻されてしまったので少し冷めた目でしか見られませんでした。

(;^ω^)TV 版をリアルタイムで見ていれば、おそらく感動できていたと思いますが……。

とは言え、全体的には満足できるものでした。映像には迫力がありましたし、ラストに至る緊張感も十分でした。

(;^ω^)次回作にも期待ですが、この手の連作ものは途中までは良いものの最後は(´・ω・`)というパターンがありえるのでちょっと不安ですね。


DATE : 2007/09/11 (Tue)

アルゴリズムイントロダクション 改訂2版」1、2巻を読みました。アルゴリズムとは何かという基本的な部分から始まり、アルゴリズムの解析手法や設計手法、また代表的なアルゴリズムが紹介されている本です。

(;^ω^)高度なアルゴリズム本を読んでいたら撃沈されてしまったので、本書を読むことになりました。

オーダ記法に複数の種類(Θ、O、Ω)がある時点でまず驚きました。実際、撃沈された本では複数の記号が使い分けられていて、全部Oに解釈して無理やり読んでいましたが、これですっきりしました。

アルゴリズムの設計手法、特に動的計画法の部分は非常に便利だと思いました。動的計画法の例だけでなく、どのような場合に適用できるのかについても詳しく述べられています。

全体的に見ると、証明などの数学的な部分は少々難しいところもありましたが、アルゴリズムの動作は図も豊富で非常に分かりやすかったです。

(;^ω^)ただ、訳書の唯一の問題点は、第3巻の翻訳がまだということです。あとがきによると、「御支持があれば、残された部分の訳出にも取り組みたい」とのことです。

忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
ブログ内検索
最近の状況
リンク
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック