Home > Web+DB

Web+DB Archive

PostgreSQL8.1以降はoidに注意

この記事の所要時間: 131

PostgreSQL8.1以降はデフォルトではテーブルにoid列が存在しません。

このままだとPHP側からINSERTした後、pg_last_oid()で追加したレコードのoidを取り、それを使って追加したレコードをSELECTで読み込むという方法が使えません。

過去のアプリケーションを移行するなどしてoid列が必要な場合はテーブルを作成する際に以下のような方法を取る必要があります。

1. default_with_oidsをOnにする

postgresql.confにあるdefault_with_oidsをonに設定する(デフォルトはoff)とそれ以降に作成したテーブルにはoid列が生成されます。

CODE:
  1. default_with_oids = On

default_with_oidsはset文でも設定可能です。この場合設定したセッション内でのみ有効となります。

CODE:
  1. set default_with_oids = On;

2. CREATE TABLE文にWITH OIDSを付ける

CREATE TABLE文でテーブルを作成する際にWITH OIDSを付けておくとdefault_with_oidsの設定に関わらず、oid列が生成されます。

SQL:
  1. CREATE TABLE test(id int) WITH oids;

-

先日とあるアプリケーションをPostgreSQL7.2から8.1に移行した際にこの問題が発生しました。シーケンスから直前に追加された値を取得するなど他の方法もあったのですが、PHP側を変更したくなかったので、default_with_oids=onにして対応しました。

IPアドレスなしでSSLサーバ証明書?

この記事の所要時間: 145

確かにグローバルIPが1つしか割り当てられていないサーバに複数サイトを詰め込むというのは良くある話なんでこれは中々興味深いです。

従来、独自ドメインでSSLサーバ証明書を利用するには、ウェブサイトごとにIPアドレスが必要だったが、同サービスにより、IPアドレスなしでも独自ドメインSSLが利用可能になる。

グローバルサイン、IPアドレスなしでも独自ドメインSSLが利用可能なサービス - CNET Japan

確かにグローバルIPが1つしか割り当てられていないサーバに複数サイトを詰め込むというのは良くある話しなんでこれは中々興味深いです。

でもこれどうやってるんだろ。

SSL 電子証明書 NonIP SSL サービス グローバルサイン株式会社の構成図を見てなんとなく想像してみた。

まず[ssl.example.com]をNonIP SSLから提供されるIPアドレスに設定する。で、証明書もNonIP SSLサーバにインストールする。あとは[ssl.example.com]から来たリクエストをSSLからのアクセスとして扱えば良いという感じなのかな。

ようはSSLのリバースプロキシですな。

もしこの通りなら、[ssl.example.com]<->[www.example.com]をどうやって繋ぐかが問題になりそう。

本来のSSLの機能に近づけるのなら、SSLサーバはホスティング事業者の
管理下におくべきなんじゃないかな?

Tadahira's blog - セキュアか?・・・グローバルサインの「NonIP SSL」

ですね。ローカルで繋げられればOKです。

でもサービスの内容から想像すると別のホスティング業者でも利用できるのがウリっぽいので、複合化してインターネット経由になるんでしょうね。このサービス利用者がVPN引くとも思えないですし:-p

うーん、微妙かな。。。でも実際問題とりあえずユーザからHTTPSに見えていればそれで良いという人もいたりするんで、ニーズはあるかも。(打診されそうな気もするぞ・・・)

ITmediaでTwitter検索/Twitterで暇つぶしが紹介されました。

この記事の所要時間: 025

ref:ITmedia Biz.ID:Twitterでゴールデンウィークのヒマをつぶす

ITmediaでTwitter検索Twitter で暇つぶしが紹介されました。

昨日ちょうどアクセスログを眺めている時にリファラで知りました。;-) やはりこうやって取り上げて貰えると嬉しいですね。

特に暇つぶしが取り上げられたのが嬉しかったり。

どちらのツールも登録等せずに誰でも使えるので、お暇な時にお試し下さい。

Twitterで暇つぶし

この記事の所要時間: 040

またまたTwitterネタ。

Twitter 検索某ネタのおかげで好評でした(@ieiriさん、ありがとうございました)ので、調子に乗ってこんなのも作ってみました。

Twitter で暇つぶし : みんな何してる?
twitter_viewer_qr.jpg

携帯でTwitterのステータス(投稿)を見るだけのサイトです。

外出している時に携帯でTwitterを見ていると意外と更新されずに何度もリロードする事ありません?

Friendsをバンバン増やせば良いのでしょうけどあまり増やしすぎると今度PCで見るときがつらかったり。

知らない人のステータスをただ見るだけなのですが意外と面白かったりします。

登録等は一切不要なので「Twitterって聞くけど、何?」な方も一度どうぞ。

Twitter 検索

この記事の所要時間: 040

先日はじめたTwitterですが、なかなか楽しいです。

Twitterの仕組み自体ももちろん面白い良いのですが、日々ユーザが増えていき、システムが改良され(今日は日本語入力が改善されたもよう)、どんどん完成度が高まっていくさまが何だか楽しいです。

で、ちょうどCakePHPで何か作ろうと思っていたので、こんなの作ってみました。

Twitter 検索

Twitter 検索 : PHPで検索

Twitterの検索では、既にtwittersearchがあるのですが、それとは違いこちらは日本語ユーザのみの検索ができます。

興味のあるキーワードを入れて、Friends探しに使って貰えたら良いかと。

# 超見切り発車気味な公開なので、突然消える可能性もありますが。;-)

PostgreSQL 誤って削除したデータを復元する

この記事の所要時間: 037

PostgreSQLの仕組みを考えれば「なるほど」な内容なのですが、実際にできるんですね。

VACUUM していなければ、データベースファイル内に残っている可能性があります。 トランザクションIDをDELETE 文を発行した時点よりも昔に「巻き戻す」ことで、 削除したデータが再び見えるようにできるかもしれません。

[pgsql-jp: 38276] Re: データの復旧について

トランザクションIDを戻せばOKなのか。うーんスゴイ。

CVSやSubversionでリビジョンを指定する感覚に似ているかも。(そこまで柔軟じゃないか)

間違ってDELETE/UPDATEした時は慌てず騒がず、この方法を思いだそ。

WordPress2.0.6リリース

この記事の所要時間: 15

WordPress2.0.6がリリースされています。

We have a pretty important release available for everyone, it includes an important security fix and it’s recommended that everyone upgrade.

WordPress › Blog

セキュリティフィックスのようなので、お使いの方は早めにアップグレードを。(日本語版のMEも2.0.6がリリースされています)

以後のリリースは2.1系になり、2.0系はメンテナンスのみになるようです。

今回のリリースでHTMLエスケープ関数としてattribute_escape()が追加されています。wp_specialchars()を置き換える実装になっており、管理画面等WPデフォルトのビューでは変更されています。

独自のThemeを使用している場合は、以下のように変更した方が良いでしょう。

PHP:
  1. <?php echo wp_specialchars($s, 1); ?>
  2. # ↓に書き換える
  3. <?php echo attribute_escape($s); ?>

地図マッシュアップサイト

この記事の所要時間: 058

Google MapsやYahoo! Mapsなどの地図サービスをマッシュアップしたサイトです。

Flash Earth ...satellite and aerial imagery of the Earth in Flash

Flashで出来ています。メニューのサービスを切り替えることにより、表示しているポイントの地図が切り替わります。

地図を表示したままサービスを切り替えられるので、地図の違いを手軽に確認できます。地方を拡大表示したい場合などは地図が表示されないサービスもあるので、表示してくれるサービスを探すのに使えそうですね。

なかなか気持ち良く動作します。マッシュアップするのにFlashを使うのは案外相性が良いかもしれません。

サポートされている地図サイトは以下です。

  • Google Maps
  • Microsoft VE(aerial)
  • Microsoft VE(labels)
  • Yahoo! Maps
  • Ask.com(aerial)
  • Ask.com(physical)
  • OpenLayers
  • NASA Terra(daily)

Shibuya.pm テクニカルトーク #7

この記事の所要時間: 253

Shibuya.pm テクニカルトーク #7にストリーミング+IRCで参加してみました。

もちろんPerlが中心なのですが、Perl自体よりその周辺の話題が多かったのでとても勉強になりました。各セッションとも技術ネタあり笑いネタありで楽しかったです。

Amazon Web Services, Elastic Compute CloudとLAMP(Emerson Mills)

EC2サーバはへぇーと言った感じ。サーバにログインした人が多々いた。;-)

Catalyst+Lighttpdテクニック (typester)

lighttpdのinclude_shellは良い感じ。apacheでも同じような事ができないのかな?

■PMConnect: Perl - SpiderMonkeyバインディング(樋口証)

JavaScriptとPerlの連携は面白そうだけで実際の使いどころがピンと来なかった。
ただSpiderMonkeyは意味無く何かに組み込んでみたくなったり。
PHPでも似たようなあるかと思ったけどomar kilani - projects - php-jsくらいだった。
ちなみにPHPからPerlを使うにはPECL :: Package :: perlがあります。

実践 MogileFS 構築事例 ~ Catalystと一緒 ~(ZIGOROu)

Perlで書かれた分散ファイルシステム。PHPクライアントはこんなのがありました。
このあたりから時間が押してきたようでテンポが異様に速かった。。。

Using Test::Base (miyagawa)

.phptと同じような感じ?宮川さんだぁーと思っていたら終わっていた。;-)

ppm パッケージができるまで (charsbar)

ppmは使うなと。:-)

俺とマッシュアップ (上野宣)

まさに俺2.0。:-)
(笑い)ネタ満載だったが実は技術的にも面白かった。サービスとして成り立つかも。

今空前のブーム第2部:deploy tool編 (松野徳大)

スライドが面白かった。:-)

CDBI to DBIC (nekokak:小林篤)

がっつりPerlネタだったので覚えてなかったり。。。

自然文書から日本の住所を頑張って抽出 (Yappo)

郵便番号から住所を引いて、住所を都道府県・市町村・それ以降に分解するといった処理を作っていたのでうなずきながら見てました。(北海道と京都の住所はネタとしか思えない。。。)
boofy!!

SVK による Plagger プラグイン開発プロセス (mizzy)

svkをgoogleで調べている間に終わっていたもよう。。。

Apache わっふるモジュールで SQL injection 対策 (竹迫良範)

apacheモジュールでHTTPパラメータをフィルタリングする話。IRCで誰かが触れていたけどWAFは効果は分かるけど設定の煩雑さが問題になりそう。
どのレイヤーでフィルターをかけるかは悩ましいところです。
PHPも5.2ではfileterモジュールがデフォルトで使えるようになるのでなかなかタイムリーな話でした。

 

ストリーミングとIRCのおかげで大阪からセミナーに参加する事ができました。皆さんありがとうございました。

携帯キャリアIPアドレス

この記事の所要時間: 59

携帯向けサイトでIPアドレスによるアクセス制限する際に設定する各キャリアのIPアドレスをメモしておきます。

  • 2010/04/16追記:softbank IP をsoftbankサイトに合わせて修正
  • 2010/03/01追記:au IP をauサイトに合わせて修正
  • 2009/10/26追記:au IP をauサイトに合わせて修正
  • 2009/03/09追記:softbank サイト移転に伴い、リンク先修正
  • 2009/03/09追記:au IP をauサイトに合わせて修正
  • 2009/03/09追記:docomo(124.146.174.0/24, 124.146.175.0/24)追加
  • 2008/07/08追記:au(121.111.227.160/27)追加
  • 2008/01/17追記:au(121.111.227.0/25)追加
  • 2007/11/08追記:au(121.111.231.160/27)追加
  • 2007/10/10追記:SoftBank(123.108.236.0/24、123.108.237.0/27、202.253.96.224/27)追加、(210.169.130.112/28)更新
  • 2007/09/03追記:au(121.111.231.0/25)追加
  • 2007/06/13追記:DoCoMo URL変更、au(219.125.145.0/25)追加
  • 2007/02/16追記:au(219.108.157.0/25、219.125.151.128/25)追加
  • 2006/11/25追記:SoftBank(202.253.96.248/29、210.169.130.112/29、210.169.130.120/29)追加

DoCoMo from 作ろうiモードコンテンツ:iモードセンタの各種情報 | サービス・機能 | NTTドコモ

210.153.84.0/24
210.136.161.0/24
210.153.86.0/24
124.146.174.0/24
124.146.175.0/24

au from KDDI au: 技術情報 > IPアドレス帯域

210.230.128.224/28
121.111.227.160/27
61.117.1.0/28
219.108.158.0/27
219.125.146.0/28
61.117.2.32/29
61.117.2.40/29
219.108.158.40/29
219.125.148.0/25
222.5.63.0/25
222.5.63.128/25
222.5.62.128/25
59.135.38.128/25
219.108.157.0/25
219.125.145.0/25
121.111.231.0/25
121.111.227.0/25
118.152.214.192/26
118.159.131.0/25
118.159.133.0/25
118.159.132.160/27
111.86.142.0/26
111.86.141.64/26
111.86.141.128/26
111.86.141.192/26

softbank from WEB & NETWORK IPアドレス

123.108.237.0/27
202.253.96.224/27
210.146.7.192/26
210.175.1.128/25

apacheの設定例です。

CODE:
  1. order deny,allow
  2. deny from all
  3. # DoCoMo
  4. allow from 210.153.84.0/24
  5. allow from 210.136.161.0/24
  6. allow from 210.153.86.0/24
  7. allow from 124.146.174.0/24
  8. allow from 124.146.175.0/24
  9. # au
  10. allow from 210.230.128.224/28
  11. allow from 121.111.227.160/27
  12. allow from 61.117.1.0/28
  13. allow from 219.108.158.0/27
  14. allow from 219.125.146.0/28
  15. allow from 61.117.2.32/29
  16. allow from 61.117.2.40/29
  17. allow from 219.108.158.40/29
  18. allow from 219.125.148.0/25
  19. allow from 222.5.63.0/25
  20. allow from 222.5.63.128/25
  21. allow from 222.5.62.128/25
  22. allow from 59.135.38.128/25
  23. allow from 219.108.157.0/25
  24. allow from 219.125.145.0/25
  25. allow from 121.111.231.0/25
  26. allow from 121.111.227.0/25
  27. allow from 118.152.214.192/26
  28. allow from 118.159.131.0/25
  29. allow from 118.159.133.0/25
  30. allow from 118.159.132.160/27
  31. allow from 111.86.142.0/26
  32. allow from 111.86.141.64/26
  33. allow from 111.86.141.128/26
  34. allow from 111.86.141.192/26
  35. # softbank
  36. allow from 123.108.237.0/27
  37. allow from 202.253.96.224/27
  38. allow from 210.146.7.192/26
  39. allow from 210.175.1.128/25

ホーム > Web+DB

検索
フィード
メタ情報

Return to page top