2010年12月31日金曜日

Ichiroという User Agent

ロボットのUserAgent(UA)を弾く(14) | サラトガIT日記
これは、NTT レゾナント株式会社が運用している Web クローラみたいですね。goo のヘルプページに説明がありました。

gooの検索エンジンボットらしい。

2010年12月27日月曜日

PostgreSQLではユニークキーを作成すると INDEXも作成される

PostgreSQLで自動的にインデックスが生成される条件 - sternhellerの日記
インデックスが生成される場合

* PRIMARY KEYを指定する
* UNIQUE NOT NULLを指定する
* UNIQUEを指定する

いつもどっちだったか忘れる。

2010年12月24日金曜日

インストールしようとしたらProgram too big to fit in memoryと言われた

WindowsでPostgreSQLのインストーラのexeをダブルクリックしたら、一瞬だけ黒窓(コマンドプロンプト)が表示されてすぐ消えた。
何が起きてるのかとコマンドプロンプトからexeを実行したら、「Program too big to fit in memory」というエラーメッセージが表示されてすぐ終了。

で、調べてみたらこれらしい。

MSDN Web サイトから入手した Visual Studio .NET 製品のインストール ファイルをインストールしようとすると、エラー メッセージ "Program too big to fit into memory" が表示される
"Program too big to fit into memory"

インストーラがおかしいと。
インストーラをダウンロードし直したらたしかに正常に起動した。
色々並行でやらせすぎたからかしらん。

PHP 5.3.2以降では flock()で取得したロックを fclose()時に解放しない

PHP: flock - Manual
PHP 5.3.2 より前のバージョンでは、fclose() でロックの解放も行います (これは、スクリプトが終了した場合にも自動的にコールされます)。

スクリプト終了時には解放するだろうから、大抵の場合は影響ないだろうけど...
ロック期間を短くするなら明示的にLOCK_UNした方がいいんだろうね。

PostgreSQLで グループごとに連番を付けて SELECTする方法

Window関数を使うと便利。

Window関数 — Let's Postgres
PARTITION BY と ORDER BY は同時に使用することもできます。以下の例では、地域ごとに身長の低い順に番号付けしています。

SELECT id, 地域, 身長,
rank() OVER (PARTITION BY 地域 ORDER BY 身長)
FROM tbl;

これはいい!

2010年12月22日水曜日

PostgreSQLで 数字をフォーマットする方法

SQL 文字関数 - 連結、空白削除、置換、切出、検索、長さ、数値変換他 - SAK Streets
■数値から文字列へ変換 (数値フォーマット、書式変換) ・to_char() 関数は、数値を文字列型に変換します。

これは使い方によっては便利。

数字形式の文字列の日時をフォーマットする場合はこんな感じで。
select to_char(cast('201001020304' as decimal), '9999/99/99 99:99')



Windows用の PHPでスレッドセーフ / ノンスレッドセーフ、VC6 /VC9のどれを選ぶべきか

PHP5.3どのビルドを使うのか - なんたらノート 第二期
http://windows.php.net/download/
にて、計4種類のPHP5.3 Windowsバイナリが配布されています。というか、すでに5.2の時点で2種類ありましたが。これらのうち、どれを選ぶべきかという基準について、軽く調べたり推測したりしたメモです。

普通はスレッドセーフのVC6、Apache Lounge等のVC9でビルドされたApacheの場合はスレッドセーフのVC9を使う、ということらしい。

2010年12月17日金曜日

Reset CSSの移り変わりの歴史

[CSS]ブラウザのスタイルを初期化するスタイルシートの総まとめ -2010年版 | コリス
ブラウザごとに異なるデフォルトのスタイルを初期化するスタイルシートの歴史を振り返りつつ、2010年の最新のCSS Resetまでのまとめを紹介します。

YUI2やYUI3はどこに入るんだろう?

2010年12月16日木曜日

Firefoxの Awesome Barとは?

Mozilla Links 日本語版: Firefox 3 Beta 2 レビュー
Beta 1 と Beta 2 の間に、 location bar (非公式に“awesome bar”と呼ばれています)は オールマイティになりました。

Location barが高機能化された時のコードネーム(ニックネーム?)のようだ。

AwesomeBarというアドオンもあるのでややこしい。

faviconを取得できる APIいろいろ

リンク先のFaviconを取得・表示できるWebサービス(API)とJavaScript・プラグインまとめ : web memo.Ver.2
自分用に外部リンクのFaviconを表示できるサービスを探す必要があったので、発見できたもので2009年11月現在でも使えるAPIサービス・JavaScript・プラグインを一通りピックアップ。

いろいろあるんだー

2010年12月15日水曜日

PostgreSQLの場合、 PDOStatementの rowCount()で SELECTした件数を取得できた

直近の SQL ステートメントによって作用した行数を返す - PHP 5.3 日本語マニュアル
ほとんどのデータベースでは、PDOStatement::rowCount() は SELECT 文によって作用した行数を返しません。

ってPHPのマニュアルには書いてあるけど、手元のPostgreSQLではSELECT件数をrowCount()で取得できたよ。
.

2010年12月13日月曜日

postgresで数値型で LIKE演算子を使ったらエラーになる場合の対策

PostgreSQL - bugs - BUG #4055: Using Like in PostgreSQL 8.2.7 and 8.3.1
ERROR: operator does not exist: bigint ~~ unknown
LINE 1: select * from movimientos where idmovimientos like '178'
^
HINT: No operator matches the given name and argument type(s). You might
need to add explicit type casts.

PostgreSQL 8.2で動いてたSQLが、PostgreSQL 9.0にしたら↑と同じように、bigintでLIKEを使う箇所でエラーになった。
ERROR:  operator does not exist: bigint ~~ unknown
(略)
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

PostgreSQL8.3からは型の使い方が厳密になり、暗黙の型変換をしてくれなくなったために発生したエラーらしい。

キャストを追加してバージョン互換性を保つには — Let's Postgresに対策が書いてあるが、ユーザー定義のCASTではレスポンスが少し心配?(標準のCASTとそれほど変わらない?)

影響箇所が少ない(そもそも数値型にLIKE文なんてレアだ)から、個別対処にしようかな。

2010年12月10日金曜日

PostgreSQLは次期バージョンの 9.1で MERGEをサポートするらしい

PostgreSQLのこれまで、9.0、そしてこれから
9.0 9.1 PostgreSQL 9.0 α ( : ) ?? PostgreSQL 9.1 ( , ) MERGE : UPDATE, INSERT REPLACE, UPSERT SQL “MERGE” Predicate Lock SE-PgSQL : , SQL/MED : , DB , JSON PGCon 2010 http://wiki.postgresql.org/wiki/PgCon_2010_Developer_Meeting JPUG 2010 25

これは朗報

コマンドプロンプトからWindowsのユーザーを削除する方法

PostgreSQL上にMediaWiki環境を構築 (3) — Let's Postgres
net user postgres /delete

こまったちゃんのpostgres君は削除!

2010年12月9日木曜日

Windowsユーザー管理画面に postgresが表示されない問題の対策

PostgreSQL上にMediaWiki環境を構築 (3) — Let's Postgres
インストーラに任せて postgres ユーザを作成した場合、「コントロール パネル > ユーザー アカウント > アカウントの管理」で表示される一覧に postgres ユーザのアイコンが表示されないと思います。これは異常な動作ではなく、この一覧には Administrators や Users グループに所属するユーザのみが表示されるためです。インストーラが作成する postgres ユーザは、そのままでは何のグループにも所属していません。管理などを行うため一覧に表示させたい場合には、コマンド プロンプトから net localgroup コマンドを使用します。

Windows 2003の頃は普通に表示された気がするけど、Windows 2008あたりで変わったのかな?

Windows XPの起動を速くできるらしい

Windows XPの起動時の長いディスクアクセスは、Windows Updateの履歴が溜まりすぎていたせいだった?! - 全力HP
遅くなっていた理由

 Windows Updateの履歴が溜まっていて、Windows開始時にアクセスしにいくせいらしい。私の場合はおよそ100メガのファイルが出来ていた。
具体的なやり方

 Windows Updateのサービスを止めてから、c:\windows\SoftwareDistribution\DataStoreの中身を削除し、Windows Updateサービスを再開する。

後でやってみる。
Vistaはできないのかな?
動かなくなったらやだな。

IEで印刷プレビューを表示すると、 window.closeが効かなくなる

Internet Explorer で印刷プレビューを終了すると、Web ページ中の Jscript の window.close メソッドが動作しなくなる場合があります
Microsoft Internet Explorer で印刷プレビューを表示し、以下の方法で印刷プレビュー終了すると、Web ページ中の Jscript の window.close メソッドが動作しなくなります。
印刷対象のページが JScript の windows.close メソッドを実行する場合、コンテンツの記述方法により、この現象を回避することができません

普通に印刷プレビューを閉じると駄目らしい。
close()できなくてもJavaScriptのエラーが出るわけでもなく、何も起きない。

おいおい。

IE9正式版のリリース時期(推測)

ASCII.jp:最新版「PP7」に見るIE9の性能と互換性の高さ|あなたの知らないWindows
スケジュールとしては、2010年内もしくは2011年の年明けにIE9 RC版がリリースされ、IE9正式版は、4月12日に米国ラスベガスで開催されるマイクロソフトのウェブ開発者向けカンファレンス「MIX11」でお披露目となると予想される。ただし開発に何かのトラブルがあった場合、中途半端にリリースするよりも、スケジュールを遅らせる可能性はある。

4月にリリースしたとして、普及するのはいつ頃だろう?
Windows Updateによる配布はいつからかな。

Apacheで特定のディレクトリをアクセス不可にする設定

Apache で .svn を見えなくする設定を 3 種類ほど - miauの避難所
今までこの方法で対策していたんですが、Directory やら Location やらは適用順序が面倒ですし(セクションの設定 - セクションのマージ方法 のページを何度参照したことか・・・)、他に IP アドレスの制御なんかもやりたいのに Satisfy Any にすると .svn が見えてしまったりとか、何かと取り回しが面倒なので、他の方法に切り替えようかと。

DirectoryMatchでDeny from allだけでなく、mod_rewriteを使ったりRedirectMatchを使ったりする方法も書いてある。

2010年12月8日水曜日

go-pearを実行すると does not have a signatureというエラーになる場合の解決方法

Manual :: マネージャの取得
> phar "//go-pear.phar" does not have a signature

php.iniのphar.require_hashがOnになっているとPEARをgo-pear.pharからPEARをインストールできないようだ。
(デフォルトではコメントアウトされている = Onになっている)
.

Windows 2008で IISの SMTPサーバの設定を変更する方法

SMTP 電子メールを構成する (IIS 7)
IIS マネージャを開き、管理するレベルに移動します。 IIS マネージャを開く方法については、「IIS マネージャーを開く (IIS 7)」を参照してください。 UI の特定の場所への移動については、「IIS マネージャーでのナビゲーション (IIS 7)」を参照してください。

管理ツールから「インターネットインフォメーションサーバ(IIS)マネージャー」を開く。
Win2003までと違うので分かりづらかった。

Windows Vista以降で常に管理者権限でテキストエディタを開く方法

Windows Vista/7 でメモ帳を管理者として実行したい
常に管理者として実行するには、メモ帳のアイコンを右クリックし、「プロパティ」をクリックします。

サクラエディタはこの「特権レベル 管理者としてこのプログラムを実行する」にチェックを付ければ常に管理者として実行できるようになった!
毎回確認ダイアログが出るのはじゃまだけど、それでもだいぶましになった。

2010年12月7日火曜日

Google Maps API V3のマーカードラッグの仕様変更

JavascriptMapsAPIv3Changelog - gmaps-api-issues - A changelog that shows the releases for JS API v3. - Project Hosting on Google Code
Markers now lift when dragged, and bounce when dropped.

移動するときにヒョイと持ち上げる感じに見えるってこと?

Amazonが APIから操作可能な DNSサービスを開始

【AWS発表】 AWSのドメインネームサービス、Amazon Route 53を発表 - Amazon Web Services ブログ
本日、我々はAmazon Route 53という新しいサービスを発表いたしました。これは、プログラム可能なAPIを用意したアマゾンクラウド上のDNSのサービスです。

AWSのサービス群の中で、機能を表すだけの実直な名前でないサービス名は初めてじゃないだろうか。

これを使った安いDNS業者がたくさんでてきそう。既存のDNS業者もこれを使うようにすれば安く済む?

2010年12月2日木曜日

VMware Server 1に Windows Server 2008の VMを作ったらネットワークに繋がらない

Windows 2008、インストールしてからネットワークに接続するまで - cyberarchitect
「ネットワークの構成」は、アダプタが「検出されませんでした」になっていることあり。VMWare環境なら、VMWare Server ConsoleでVM→Install VMWare Toolsを実行し、インストールする。再起動するとアダプタが認識されている(はず)。

そうなのか。やってみよう。

PHPの SimpleXMLを文字列に戻す方法

SimpleXML 要素に基づき整形式の XML 文字列を返す - PHP 5.3 日本語マニュアル
SimpleXMLElement::asXML — SimpleXML 要素に基づき整形式の XML 文字列を返す

asXML()で元のXMLのテキストデータを取得できる。

2010年11月30日火曜日

mb_convert_encoding()の 第3引数は指定しても意味が無いらしい

2007-04-15 - T.Teradaの日記
ネット上には「不正な文字を利用したXSS攻撃*1を防ぐために、第三引数を指定する方がよい」というような記述もありましたが、これは日本語用の文字コードを使う限りは正確ではありません。文字コードを指定したところで、関数の出力結果は何ら変わりません。攻撃を防ぐ効果はないのです。

そうなのか。

どこかでセキュリティの専門家っぽい人が指定しないと脆弱性になるって書いてた気がする...探してみよう。

Web SQL Databaseの仕様策定が中止になったらしい

Web (SQL) Databaseについてのこれまでの経緯については下記が詳しい。

ブラウザ上のデータベースに関して - JavaScriptで遊ぶよ - g:javascript
現状の Web Database には Mozilla、Microsoft、Oracle が反対してる。
すなわち、生の SQL をそのまま触らせる現在の仕様には色々と問題がある (これは僕の意見) と。

SQLの方は中止になって、Indexedの方はどうなるんだろう?

ChromeやSafariやOperaは今まで実装してきたものはいいとしても、これからどうするんだろう?フォークして別の仕様としてやってくのかな。

Excel 2007で「読み取り専用」の切替ボタンを表示する方法

Excelじゆうちょう 読み取り専用の設定/解除
■Excel2007の場合
[Microsoft Office ボタン]→[Excelのオプション(I)]→Excelのオプションのダイアログボックスの表示→[ユーザー設定]→[リボンにないコマンド]

こんなところで設定できたのかー。
セルの枠線の表示/非表示を切り替えるボタンもあればいいのに。

DokuWikiはプラグインを入れなくても RSSフィードをリスト表示する機能を備えているらしい

RSSフィードを表示させる方法 [okoze-esca.net]
DokuWikiにはどうも標準でRSSフィードを表示させることができるようなのまとめてみました。

これは優秀。

2010年11月26日金曜日

PHPで Exceptionをログに残すには

よくサンプルにあるように $exception->getMessage() するよりも、Exceptionをそのまま出力してしまい、暗黙の文字列変換した方がスタックトレースとかも出力されて分かりやすい。

例外の文字列表現 - PHP 5.3 日本語マニュアル
public string Exception::__toString ( void )
例外を文字列で表現したものを返します。

PHPで UTF-8から SJISに変換して CSV出力する

PHPでCSVだけSJISで出したいと思ったとき - 近況
PHP5.1以降なら、php://memoryという便利なものがある。

便利なような、そうでもないような。とりあえずメモ。

PHPの json_decode()で 整数がfloatになる問題の解決方法 (Twitter API編)

TwitterのAPIをjson_decodeするときに、idの値がオーバーフローする - OOMORI.lunch
とりあえず、今回の場合は整数なのはidの部分だけなので、下記のようなコードを加えることで対処できる。
なるほど!JSONの段階で文字列扱いにしてしまえばいいんだ!

PHPの json_decode()は大きな整数を floatにしてしまう

Twitterのid(TwitterのTweet全てで連番になっている)が16桁になり、もうすぐ17桁になりそうな昨今、32bitのIntでは対応できない。
なので文字列として扱いたいが、PHP標準関数のjson_decode()ではこれをなぜかfloatに変換してしまう。

PHP: json_decode - Manual
JSON デコードオプションのビットマスク。現在サポートしているオプションは JSON_BIGINT_AS_STRING のみです (デフォルトでは、大きな整数値を float に変換します)。

この変更は 開発版 の PHP に含まれています。 おそらく 5.3 より先のバージョンになるでしょう。
このJSON_BIGINT_AS_STRINGというオプションを指定出来れば良いのだろうけど、現在最新のPHP5.3.3でもまだ未実装だった。(まあPHPの本家マニュアルはUpdateが速いのでマニュアルで先のバージョンと言われたらそうなんだろうけど。)

2010年11月25日木曜日

Excel 2007で複数の図形(オブジェクト)を選択状態にする方法

複数のオブジェクトを一気に選択する:Excel2007即効テクニック
 「ホーム」タブ右端にある「検索と選択」ボタンをクリックしてサブメニューを表示する。下から二番目にある「オブジェクトの選択」を実行すると、ワークシート上に配置したオブジェクトを選択できるようになる。

Excel2003以前は簡単にクリックできた白矢印君が居なくなったと思ったら、こんなとこに追いやられていたとは!

2010年11月22日月曜日

PHPで 自動採番(serialとか)した IDを取得する

最後に挿入された行の ID あるいはシーケンスの値を返す - PHP 5.3 日本語マニュアル
string PDO::lastInsertId ([ string $name = NULL ] )

最後に挿入された行の ID、 あるいはシーケンスオブジェクトから次の値をを返します。 これは、構成しているドライバに依存します。例えば PDO_PGSQL() の場合、name パラメータにシーケンスオブジェクト名を指定する必要があります

たしかこれで、同一DBセッション内の最後に自動採番したID(PostgreSQLの場合はserialかbigserial)が取得できる。
PostgreSQLの場合はSequenceオブジェクト名をパラメータとして指定しないと空振りする(エラーは出ない)ので注意。

PHPで 全角1文字を半角2文字に換算して文字数を取得する方法

文字列の幅を返す - PHP 5.3 日本語マニュアル
int mb_strwidth ( string $str [, string $encoding ] )

文字列 str の幅を返します。
マルチバイト文字は、通常はシングルバイト文字の倍の幅となります。

そうそう、これこれ。

2010年11月18日木曜日

XML Web Serviceの標準化団体が活動終了

SOAP、WSDL、UDDIといったXML Web Serviceの標準化団体WS-Iが活動を終了するらしい。

時代はRESTへ。SOAPの終わりを象徴する、Webサービス標準化団体のWS-Iが活動終了 - Publickey
なぜWS-*が成功できず、RESTが成功しているのでしょうか。それはWebのアーキテクチャにとってRESTがより自然なものであり、WS-*はそうでなかった、という見方が一般的です。Webがすべてを飲み込んでいく。WS-*もそれに逆らえませんでした。

思えば昔はWeb Serviceと言えばXML Web Serviceだった。
それがAmazon Web Serviceのブレイクスルーにより、「RequestにXMLを使うWeb Service」と「RequestにはXMLを使わないWeb Service」に分かれた。
さらにJSONの台頭により、Web Serviceと言えばXMLを使うという認識は無くなった。XMLは選択肢の1つにすぎない。
さらに、今日ではWeb Serviceと言えばWebを通じて提供される何らかのサービスのことを指すようになり、かつてWeb Serviceと呼ばれたものはWeb APIなどと呼ばれるようになった。Amazon Web Serviceはまだあるが、かつてのAmazon Web ServiceはAmazon Production Advertising APIと名を変え、Amazon Web ServiceはEC2、S3等を含むより大きなものになっている。

XML Web Serviceが普及しなかったのはWebというアーキテクチャの上にもう1つレイヤーを必要としたのが一番の原因。RESTはWebよりも下のレイヤーだから、Webでやる限りRESTが使いやすいのは当然。
SOAPはRESTよりもきめ細かな仕様があるが、そのきめこまやかさ自体が不要だったのが最大の敗因か。
今の「クラウド」と同様に、かつてIBM等のベンダーがSOAP SOAPと連呼していたのは敗因ではないだろうけど、結局失敗に終わった今となってはその落差を感じる原因にはなっている。

縁の下(特にエンタープライズ向け)では重要な技術として使われてるし、これからもすぐにはなくならないだろうけど、それってかつてMicrosoftが力を入れていたWindowsのCOM+くらいの認識しかされないようになるのだろう。

はてなブックマークで自サイトに付けられたブックマークを新着順に表示する

自分のサイト内のページで、はてなブックマークにブックマークされたページの一覧を見る方法は知っていた。下記のページで、「URLで絞り込み」のところにドメイン等を入力すれば表示される。
これらはRSSで取得することもできて便利。

でもこれだとページの一覧なので、既に被ブックマーク済みの過去のページにブックマークが追加されても知ることができない

もう自分で(Google AppEngineあたりで)作っちゃおうかと思ったが、実は「はてなブックマーク - 新着ブックマーク」で「URLで絞込み」すれば新着のブックマークの表示&RSS取得ができることを知った。
(via hxxk.jp - 被ソーシャルブックマーク状況をチェックする方法のまとめ)

作らないで良かった…

難点はコメントありのみの絞り込みなんかができないことだが、Pipesに喰わせればなんとかなるだろう。

CakePHPの SecurityComponentに 任意のPHPコードを実行できる脆弱性

CakePHPのSecurityComponentに深刻なセキュリティホールが見つかりました - Shin x blog
SecurityComponentの実装に問題があり、結果、外部から任意のコードを実行させることができるという深刻な内容です。

CakePHP1.2.9 / 1.3.6では解消済みらしい。
古いCakeをバージョンアップせずに使ってるところ多いと思うけど、大丈夫なのかな?
WordPressみたいに気軽にUpdateできるといいんだけどね。(無理か。)

2010年11月17日水曜日

Adminer バージョン3.1がリリースされた

Adminer
Download
v 3.1.0, 2010-11-16

この間3.0が出たと思ったら、もう3.1が出た。
普通は3.0の直後は3.0.1とかが出るもんだけど、速い段階から3.1を準備してたのかな。

2010年11月15日月曜日

PHPのセッションの有効期間

sessionのタイムアウトについて。 - Leilaの超初心者メモ。
でも、セッションにはもう1つ
 「設定した時間が過ぎたら、一定確率でサーバ側のセッション削除するよ♪」
という設定がある。

php.iniのsession.cookie_lifetimeでブラウザに対していつまでセッションを有効にするかを設定する。
そしてsession.gc_maxlifetimeでは、サーバ側でセッションのガーベッジコレクト対象外にする期間を設定する。

上記サイトのようにphp.iniではなくini_set()等で設定した場合、サーバ側のセッションファイル保存ディレクトリが他のPHPと同じ場合は、他のPHPのガーベッジコレクト時に消される可能性があるので注意。
.

2010年11月12日金曜日

Twitterで議論をすると収集がつかなくなる (Google App Engine編)

Togetter - 「Google AppEngineについて思うところ」
@makotokuwata 氏による Google AppEngine についてのまとめ

Togetterで読めば@makotokuwataさんの意見は(少なくともある立場からは)まともだけど、Twitter上でこの一部を見た人には極論に見えるんだろうな。@makotokuwataさんは前のTweetを前提に次のTweetを書いてるけど、見てる人は前のTweetを見てるとは限らないわけで。その上、Twitterでは思いついたことを適当につぶやいてしまうという文化もあるし。

@makotokuwataさんの意見に対して@higayasuoさんが反論してて、でもその反論が@makotokuwataさんの言ってることと同じ内容なのが印象的だった。
「AはBです。」「それは間違ってる。AはBだよ。」的な。

2010年11月11日木曜日

DokuWikiで綺麗な「ホームページ」を作った例

あいちトリエンナーレ2010を2010倍楽しむ! トリウィキ | ToriWiki
ToriWiki(トリウィキ)は町ぐるみで開催されるアートイベント、「あいちトリエンナーレ2010」についての情報を共有するクチコミ情報サイト(非公式)です。

DokuWikiはプログラミング寄りのイメージが強いが、ここまでDokuWiki臭を消したDokuWikiも珍しい。すごいなあ。

JavaScriptでページ内の CGMコンテンツへのリンクを埋め込み用コンテンツに変換してくれるサービス

コンテンツリンクを埋め込みコードに変えるサービス「Embed.ly」の導入方法-swordsmith
コンテンツへのリンクを貼るだけで、そのコンテンツサービスの埋め込みコードに変更してくれるサービスです。

これはいいかも。今のところ使いどころがないが。

2010年11月10日水曜日

64bit版 Windowsの System32フォルダ

64ビットの互換性と移行 - Windows Server 2008 R2テクノロジ入門:ITpro
Windows Server 2008 R2のシステムファイルは、32ビットOSと同様にC:\Windows\System32フォルダーにインストールされる。ただし、「32」と付いていても、ここには64ビットのネイティブコンポーネントが格納されている。user32.dll、shell32.dll、gdi32.dllなどもすべて64ビットコンポーネントだ。

これは勘違いしそう。

それはそうと、この解説はなかなか良く書かれていてありがたい。

サンプルとして適切なIPアドレスの例

Geekなぺーじ : IPアドレスにまつわるチョイネタ
そこでは、ドキュメンテーションやサンプルで利用するためのIPv4アドレスとして、以下のものが定義されています。

192で始まるとプライベートIPかと見間違えそうだから、203.0.113.2あたりを使っとけばいいのかな。

2010年11月9日火曜日

Google Tool Bar 6.6が存在しない URLにアクセスしてくる問題

しばらく前から、Webサーバに対してdataスキームっぽい謎のURLへのアクセスがたまにある。
dataスキームならアクセスは不要なはずだが、間違えて相対パスか何かにしてしまってるっぽい。
分からないのが、パターンが特定できないこと。User Agentを見ても、どうも特定のユーザーのみではないらしい。

しばらくログを溜めて分かったのは、どれもIE8+Google Tool Bar6.6を使っていること。
で、調べてみたら見つかった。

What is this: url(data:image/png;base64 Website Analytics - Tracking and Logging forum at WebmasterWorld
Looks like it is actually something Google related. Probably Google Toolbar (GTB6.6).
I embedded the whole thing in html (see example below), and what you then see is a picture of a question mark, a minus sign, a check box and then the small square Google logo (like the favicon) with a magnifying glass.

Google Tool Bar 6.6のバグっぽい。迷惑だなあ。

でもそれにしてはサイト内の特定の箇所で起きやすいという謎が残るが...

Google AppEngineでは静的ファイルはレスポンスが速いらしい

AppEngine/Jのspin-upを劇的に改善する方法 - ひがやすを blog
AppEngineでは、HTMLをstaticファイルとして登録しておくと、App Serverまで処理がわたらず手前の専用のstaticファイルサーバーで処理されるので高速です。(JSPだとstaticファイルとして登録できない)

実は、App Serverに処理がわたらないとspin-upも起きないので、最初のHTMLの描画はspin-upなしで行われます。これがちょっとしたトリック。

静的ファイルにしては遅いからきっとApp Serverまでいっちゃって時間かかってるんだろうなと思ってたけど、App Serverまで行ってないらしい。
純粋にStaticサーバの段階でもう遅いのか。(他のGoogleが提供しているインフラと比べて。)

日本のCloudの真打ちは Niftyでも Sakuraでも NECでもなくこれだ!

仮想化(かそうか)だけに「貸そうか」なんて...!

仮想化ホスティングサービス サーバー貸そうか | 株式会社オージス総研
多くの実績と経験から生まれた仮想化ホスティングサービス、
それがオージス総研の”サーバー貸そうか”です。
安定性とセキュリティレベルの高い環境をご用意。
運用の柔軟性とTCO削減を両立し、価値の高いサービスをご提案いたします。

2010年11月5日金曜日

PHP 5.3の主な仕様変更

PHP 5.3の新機能と変更点:第3回 PHP 5.3の追加機能と仕様変更 (1)|gihyo.jp … 技術評論社
PHP 5.3では,目玉機能として説明した仕様の追加以外にも多くの変更が行われています。PHP 5.2とPHP 5.3の互換性はかなり高いですが注意が必要な変更もあります。

名前空間を除けば、PDOやSimpleXMLのような強力な変更は無し。
でも「HTTPストリームラッパーのステータス処理」はけっこう重要かも。

Yahoo!(香港|台湾)でも手書き入力機能が実装された

Yahoo!台湾や香港で手書き検索がリリース|今日のニッパウ
Yahoo!タイワンや香港で手書きで文字入力ができるインターフェイスが
実装されたようです。

Naverにあったあれですね。ハングル分かんないので繁体字のこっちの方が少し気軽に使える。

2010年11月2日火曜日

WordPressで metaタグの WordPressのバージョンを消す方法

下記の1文を wp-content/themes/[使っているテーマ]/functions.php に追記すると、meta要素によるバージョン情報の出力が無くなる。
(wp-includes/functions.php ではないので注意。)

WordPressのfunctions.phpに書いておくといいかもしれないコードいろいろ
remove_action('wp_head','wp_generator');

上記参考サイトは他にもAdSenseやGoogle Analyticsやその他について、状況によっては参考になりそう。
.

Googleの 埋め込み用ガジェット(JavaScript)の取得ページが一新された

Google Web Elements
Google Web Elements allow you to easily add your favorite Google products to your website.

Googleカスタム検索、Googleカレンダー、Googleマップなど、いろんなWebページ埋め込み用のガジェットを一覧で見られて動かせて分かりやすい。
埋め込み用のスクリプトもここで取得できる。

2010年10月29日金曜日

YouTubeを 価格.com的に使う日がくるのかもしれない

YouTubeがもうすぐ黒字に, 販促ビデオの総視聴数が5億に到達
この製品は、YouTube上のAdWordsみたいだ。広告主はキーワードを”買う”(たとえば「SSD付きパソコン」)。すると、そのキーワードで検索をしたら結果の上位にその広告主のビデオが出る

メーカーや小売店が、こぞって紹介動画をYouTubeにUpし始めたら(もうしてるんだろうけど)、価格.comで商品を探すようにYouTubeで探す日が近いのかもしれない。

動画というのは実際に目で見るのに次いで(場合によっては実物を見るよりも)情報量が多いから、高額商品を買う上ではアピールできるだろう。

難点は観終わるまでに時間がかかることだが...説明事項ごとに動画を分割して、好きなところから見られる(かつ素早く見られる)ようにしたら使いやすそうだ。

本番環境で他の処理の邪魔にならないようにコマンドを実行する方法

niceというコマンドのパラメータとしてコマンドを実行すると、優先順位を下げて実行出来るらしい。

重い処理はniceコマンドを使って安全に実行すべし。 - (゚∀゚)o彡 sasata299's blog
本番サーバとかで負荷が掛かりすぎてサーバが落ちたりしたら最悪ですからね。特に重い処理なんかは、niceコマンドで優先度を指定してあげれば負荷をあまり掛けずに実行できるから助かります。

nice nice!

Railsの本番環境で重い処理を探すコマンド

Railsのproductionログから処理に時間がかかっている部分を探す - RX-7乗りの適当な日々
先日、運用環境のRailsで動いているアプリのログからレスポンスタイムを確認する機会があって、production.logをもとに、時間がかかっている重い処理を抽出しました。ちなみにRailsのバージョンは2.1系です。

なるほど、これは便利そう。

jQuery UIの Changeログ

jQuery UIのブログの方はあまり更新していないようなので、リリース情報はChange Logの方を見たほうがいいようだ。
1.8.5の時はブロクの方でアナウンスがあったけど。

jQuery UI - Documentation: UI/Changelog

YUI 2.8.1以前の YUI,swfにセキュリティの問題

YUI 2.8.2 Security Bulletin
If your site loads YUI 2 from Yahoo's CDN (yui.yahooapis.com) or from Google's CDN (ajax.googleapis.com), and the files are not hosted on your own domain, you are not affected. YUI 3 is not affected by this issue.

YAHOOやGoogleのCDNを使っている場合は問題ないらしい。(なんで?CDN上のSWFは差し替えたのかな?)

Google Libraries APIの jQuery UIと YUIが Update

Google AJAX API Alerts: [Libraries][Update] jQueryUI 1.8.6 and YUI 2.8.2
jQueryUI has been updated to 1.8.6 and YUI has been updated to 2.8.2

YUI3は来ないねぇ (TAT)

Windows 7の隠しフォルダ

「GodMode」だけではなかった、Windows 7の隠し機能(2) - builder by ZDNet Japan
目的のコントロールパネルをすばやく開くことが存在目的と考えられるが、プリンタを追加することはそう多くはないし、資格情報マネージャーにもそれほど用はない。有用性という観点からは疑問符が点灯するが、ユーザーの遊び心をくすぐる存在であることは確かだろう。

特定のフォルダ名を付けると、便利(?)なショートカット的フォルダになるらしい。
Vistaでも動くものもあるが、クラッシュするものもあるらしい。

Sekai Camera Web版がバージョンアップ

Sekai Camera Web
Sekai Cameraの中で、現在投稿されているAir Tagの動きを地図上に表示しています。Sekai Camera Userの「誰」が「どんな」内容のAir Tagを「どこ」で投稿しているのか、一目で分かります。

(バージョンアップ前がどんなだったかもう憶えてないけど)使いやすくなった気がする。
Google Maps上にAir Tagが次々に表示されるのは、場合によっては面白そう。

Google Maps APIはV3のようで、Street Viewにも対応している。
あとは、Street View上でAir Tagが表示されるようになればなかなかおもしろい...!

テキストボックスのオートコンプリートを無効にするHTML

ブラウザのテキストボックスをトリプルクリック(Firefoxや昔のIEではダブルクリック)したり、↓キーを押すと、以前にそのテキストボックスに入力した値を表示してくれる便利機能の「オートコンプリート」。
でも個人情報なんかの関係で、見せたくない場合もある。

そんな時にはautocomplete="off"を付ければオートコンプリート機能は無効になる。
<input type="text" name="foo" autocomplete="off" />

多くのブラウザが既に対応している。それに追随する形で、HTML5で正式に採用されたみたい。

4.10.7.2 Common input element attributes — HTML5 (Edition for Web Authors)
The autocomplete attribute is an enumerated attribute. The attribute has three states. The on keyword maps to the on state, and the off keyword maps to the off state. The attribute may also be omitted. The missing value default is the default state.

2010年10月27日水曜日

Google Trendsよりも Google Insights for Searchの方が良さそう

Google Insights for Search日本語版登場 ~ 知らないと損するグーグル インサイト フォー サーチ活用術 | 海外SEO情報ブログ・メルマガ
Google Insights for Searchのデータ更新は日次です。

モバイル検索のデータは含まれません。

Googleトレンドでも、検索ボリューム推移の動向を知ることができますが、Google Insights for Searchとは結果が異なります。

使ってみて使いやすかった。
insights4searchと名付けよう。

他人のサイトのアクセス統計を調べる方法

Google Analycs等では自分のサイトの統計しか見られないけど、Google Trends for Websitesを使えば(ある程度は)好きなサイトの統計を調べられる。

Google Trends for Websites でアクセス統計が見れるようになったみたいです - hoge256ブログ
Google Trends の新機能として、Google Trends for Websites というのが始まったみたいです。Google Trends は検索されたキーワードの統計を見るものでしたが、Google Trends for Websites の方は、各サイト(正確にはドメイン)毎のアクセス統計を見ることができるようです。

日本語のGoogle Trendsからはリンクを貼られてないけど、英語にすればリンクされていた。

Googleが弱い韓国や中国、台湾などからのアクセスには使えないだろう。

Windowsに MySQLをインストールしたが起動しない場合

WindowsにMySQL 5.5をインストールした。既に5.0、5.1、5.4がインストール済みなので、サービス名は「MySQL 5.5」にした。

しかし、下記のエラーが出てMySQLが起動しない。(サービスを開始できない。)
InnoDB 1.1.2 started; log sequence number 1595675
C:\(略)\MySQL5.5\bin\mysqld: Too many arguments (first extra is 'MySQL').
Use --verbose --help to get a list of available options

で、いろいろ調べてサービス名が問題だと分かった。
サービスのプロパティで「実行ファイルのパス」を見ると、このようになっている。
"C:\(略)\MySQL5.5\bin\mysqld" --defaults-file="C:\(略)\MySQL5.5\my.ini" MySQL 5.5
この最後のサービス名の部分がダブルクォートで囲まれていないので、「MySQL」と「5.5」の2つのパラメータとしてみなされてしまっていたのだ。(サービス名が「MySQL」で、その後の「5.5」が不正なパラメータとみなされた。)

レジストリいじれば直りそうだけど、面倒だったのでいったんアンインストールした。そしてサービス名をスペース無しの「MySQL5.5」にしてインストールし直したら動いた。やれやれ。

これはビックリ!Windows Live Spacesが WordPressを採用

Windows Live Spaces ヘルプ センター - Spaces ヘルプ センター
お客様のご要望にお応えし、最も快適なブログ サービスを実現するために、Windows Live Spaces は WordPress.com と連携してご提供することになりました。WordPress.com は、設定が簡単で使いやすく、カスタマイズと管理のための便利なオプションが満載です。

ある意味、wordpress.comのライバルになるということか。

MSとPHPは食い合せが悪そうだが、この勢いでAzureでPHPが利用可能になるとおもしろいのに。

2010年10月25日月曜日

metaタグの MSSmartTagsPreventParsingとか imagetoolbarとか

IE向けの表示設定らしい

参考:2004-03-10 - 日々のメモ

Excel2007でセルの枠線を非表示に設定する方法

【EXCEL】印刷はされない、最初から表示されている罫線を非表示にする|”熱狂するシステム開発!”ブログ
■バージョンが2007の場合

Excel2003まではフォームのグリッドのアイコンをメニューバーにドラッグ&ドロップして置いておいてポチッポチッと使ってたけど、Excel2007にしてから同じことができずに諦めてた。
でもできるみたい。
ワンクリックでできないのは面倒だけど...

Amazon EC2がレンタルサーバより簡単に使えるようになる

id:d_seaさんのfluxfluxがいよいよ始動したみたい。

[jp] オートスケール可能なfluxflexは数クリックでEC2が使える新感覚クラウドだ【招待コード付】

fluxfluxでプロジェクトを作成すると、EC2で3つのインスタンスが起動し、すぐに下記が利用可能になるらしい。
  • Webサーバ
  • MySQL
  • Gitリポジトリ
  • サブドメイン(例:xxxx.fluxflux.com)
  • サーバ証明書?(「SSL対応は、fluxflexドメインでの提供となる。」)
  • phpMyAdmin
  • アクセス状況確認ツール
  • オートスケーリング(有料アカウントのみ)

無料アカウントは制限あり。有料アカウントは1ドルで、招待制。

なかなか魅力的だけど、サーバ1つでいいという人にはオーバースペックだと思う。インスタンス1つでもできるのかな?

2010年10月22日金曜日

Amazon EC2が1年間無料!

Amazon EC2、1年間限定でフリーミアムサービスを開始。日本でも利用可能:In the looop:ITmedia オルタナティブ・ブログ
Amazonが11月1日から無料Webサービスを開始すると発表(記事)した。機能限定で、期間は1年間だ。

11/1からEC2のMicroインスタンスが1年間無料(1ヶ月あたり750時間ということは要するに期間中全てということ)、他にもいろいろ無料らしい。

ただし新規ユーザー限定みたい!既存ユーザーは???

最後の方に書いてあるSimpleDBとSQSとSNSが一定量まで無料というのはけっこう凄いかも。今までみたいに期間を限定していない。SNSとか売り出したいのかな?

IEのブラウザモードとドキュメントモード

IE8/9にはブラウザモードがあり、下位のブラウザのように振舞うことができる。

また、ドキュメントモードというものもあり、これによっても挙動が変わる。
ドキュメントモードはIE7以前にもある。

IE9のブラウザーモードとドキュメントモード - hachy.net
基本的にはそのバージョンの標準準拠モードだが、IE内部で互換表示されるサイトのリストを持っており、そのリストに一致するサイトでは自動的に互換表示モードとなる。なおリストはIE8 or IE9のアドレスバーに以下入力することで確認が可能。

res://iecompat.dll/iecompatdata.xml

IE9(Beta)では↑は見れなかった。
.

Rubyなら 3行だけど PHPなら 1行さ!

javaはやっぱり長いので、ruby風にしてみる例 - @katzchang.contexts
長いですね。
読むのもイヤになります。
Rubyなら三行で書けるのに。

f = open( "hoge.txt" )
f.each {|line| print line}
f.close

最もタメになる「初心者用言語」は Java

長いですね。3行ですか。
読むのもイヤにはなりませんが、
PHPなら1行でかけるのに。
readfile("hoge.txt");

PHPは一番実用的なテンプレートエンジン言語だい!

「disc」と「disk」の違い(歴史を踏まえて。)

丸いのがdiscで覆われてるのがdiskだと思ってたけど、そんなに単純でもないみたい。

disk と disc | 雑念ベース
ほかの説明もないかと探してみたのですが、いろいろな解釈があるようです。ざっとリストアップしてみます。

参考になった。

推測も交えてまとめるとこんな感じ?順番はたぶん間違ってるけど、こう並べたほうが分かりやすいので。
  1. そもそもレコード(※)がdiscと呼ばれた。
    ※音楽等を聴くためのいわゆるアナログ盤、一部の人が「バイナル」と呼ぶもの。
  2. レコードの後継として誕生したCDが、引き継いでdiscと呼ばれた。そもそもCD=Compact Discだし。(ところでCDは最初は音楽等を再生するためだけに使われていた。)
  3. 一方、コンピューター用記録媒体として誕生したフロッピーディスクは、覆われていることからdisketteを略してdiskと呼ばれた。
  4. フロッピーの後継として誕生したMOやZipドライブもdiskと呼ばれた。
  5. ここまでは綺麗に棲み分けていた。
    • 再生専用、音楽用、丸い、ぐるぐる回る、(かつキラキラ光る)のがdisc
    • 記録可能、コンピューター用、四角い、(中身が)ぐるぐる回る、黒いのがdisk
  6. 音楽用にMD登場。四角いけどこれはdisc。CDの仲間だから。これはギリギリOK。
  7. CD-ROMの登場により、コンピューターでもCDを扱うようになる。また、記録可能なCD(CD-R、CD-RW、CD-RAM、CD+R、CD+RW)も登場。
    CDが音楽専用でも再生専用でもなくなる。でもやっぱり今までの積み重ねがあるからCDはdiscだなー。
  8. ハードディスク登場。これはdiskだよねー。

こう見ると、7のところでCDの用途や種類が広がったのが混乱の元みたい。

で、ファミコン用のディスクシステムって、disc?disk?どっちだった?

2010年10月21日木曜日

PHP4とPHP5.3の変更点はかなり多い

変化の時(Nate AbeleがCakePHPプロジェクトから離脱してLithiumを立ち上げた理由) : candycane development blog
これはかなり時代遅れの技術だ。控えめに言っても、PHP4とPHP5.3の変更点はかなり多い。PHP5.3はPHPの開発に新しいパラダイムを呼ぼうとしている。

一番大きいのはもちろんPHP4 → 5のメジャーバージョンアップだけど、PHP5.1で登場したPDOの存在も大きい。PDO無しのPHPなんて今では考えられない。
あとはPHP5.2のJSONとかDateTimeもまあまあ便利かな。

もし君が2年前に書いたコードを見て、

変化の時(Nate AbeleがCakePHPプロジェクトから離脱してLithiumを立ち上げた理由) : candycane development blog
僕はこんな話を聞いた事がある。もし君が2年前に書いたコードや1年前に書いたコード、あるいは数カ月前に書いたコードを見て少しでもそれを放り出したいと思わなければ君は全く進歩していない。

もし僕が2年前に書いたコードを見て、「なるほど、これは上手いこと書いてあるな」と思ったら、きっと僕は退化してるんだろうね...。(そんなこと誰にでもあるでしょ?でしょ?TwT)

それでもプログラミング道は続く...

2010年10月20日水曜日

HTML5の新しいinput要素、type="search"のスタイルを指定する方法

input type="search" のスタイルをリセット - terkel.jp
しかし、Safari と Chrome でこの search タイプの input を CSS でスタイリングしようとしてもほとんどコントロールできず、ブラウザのデフォルトでレンダリングされてしまいます。font、padding、border、background といったごく基本的なプロパティがことごとく無効。

特殊なんだ。
他のブラウザがtype="search"をサポートしてきたらどうなるんだろうね。

「Apple独自の」というところは、Chromeでは違うということかなー?

Google Chromeは 6習慣ごとにメジャーバージョンを上げていくらしい

Google、6週間毎にChromeの新バージョンを提供へ
従来よりも頻度をあげて、続々と安定版のリリースを行っていくとのことだ。目標値として掲げているのは6週間に一度のリリースというもので、これは頻度にして現在の倍ということになる。つまりChrome 6、7、8、そして9と矢継ぎ早にリリースしていくということだ。

順調にいけば2011年にはChrome15、2012年にはChrome23、2013年にはChrome30がリリースされるということか。Emacsのバージョン番号を抜く日も来るかもしれないね!
(有名プロダクトで一番メジャーバージョン番号が多いのってなんだろう?)

もし本当に将来的にも生真面目にこの方針を守ったら、「今回のバージョンアップでは軽微なBug Fixが1件だけですが6週間立ちましたのでメジャーバージョンを1増やします」なんてことに...。

mod_rewriteでリダイレクトさせる正しくスマートな書き方

mod_rewriteでリダイレクトあれこれ - てつじんにっき
wwwあり・なしをどちらか片方に寄せたい場合。
今回はwww.example.comなど、example.com以外でアクセスされたらexample.comにリダイレクトする設定。

wwwありをwww無しにリダイレクトさせたり、httpをhttpsにリダイレクトさせるなど、パスを引渡してリダイレクトさせる方法。
VirtualHostは1つで済ませられるらしい。
QSA、NEはQueryStringが無ければ関係ない(NEはURLにマルチバイトを含め場関係あるけど)が、QuertyStringを付ける場合には忘れずに。

ストリートビューの3D modeはエイプリルフールネタ(だけ)ではなかったみたい

Googleストリートビュー3D feat. 小学1年生 - funatti’s small small world
実はここで右クリックするとメニューが出てきて、"3D mode on"っていうのがあるのでクリック。

ストリートビューで右クリックすると、コンテキストメニューに「3D mode on」というのがある。これをクリックするとストリートビューが3D加工された画像になった。
3Dは最近の映画館のやつじゃなくて、昔ながらの左右が赤と緑のメガネの方。
対応している地域は少ないかも。東京タワーの近くは対応していた。

もともと4/1に公開され、2週間くらいしたら無くなったのでエイプリルフールネタだと思われていたが、今の時点でも可能なことを考えると本気なのかもしれない。
でも3Dは方法がいろいろあって、赤緑方式は非主流で、(小画面では)メガネ無しの方向に進んでるけど、対応できるのかな?

2010年10月18日月曜日

特定のURLへのアクセスに 503等を返す設定

Apacheでmod_rewriteを使って、特定のURL(正規表現可)で503等を返す方法。多分400 Bad Requestとかでもいけそう。


.htaccess を使って特定の URL を 503 Service Temporarily Unavailable にする方法 « ゆっくり…して…イってネ!
今日はそんなときに使える、.htaccess を使って特定の URL を 503 Service Temporarily Unavailable にする方法を紹介するわね。

99-raid-checkとは

自宅サーバの Linux md が毎週 resync している件 @ CentOS 5.4 - Kenichi Maehashi's Blog
このパッケージに含まれている raid-check スクリプト (/etc/cron.weekly/99-raid-check) が毎週日曜日に実行されるのですが、そこで「データスクラビング」が行われているそうです。以下、 Errata より引用。

EC2上のCentOSでも要るのかなー?
Amazon側で独自にチェックしてそうな気もするけど。

Twitterは 公式RTにコメントを付けられるようにはしないらしい

CEOの座を辞したTwitterのEvan Williams、利用者の質問に回答するとともに将来の姿を語る
コメント付きリツイートをサポートするつもりはない。

以前はやるって言ってなかったけ?

2010年10月14日木曜日

非同期版Google Analyticsについての詳しい解説

今までで一番詳しく、有用だ。(まあ結局ただGoogleから提供されたものをコピペするだけだけど。)

Google Analytics 非同期トラッキングコード再考 | MOL
話はちょっと変わりますが、非同期トラッキングコードについて調べていると、HTML5で定義されているasync属性によってこの非同期を実現しているのでasync属性に対応しているFx3.6しか効果がないと書いている人がちらほらいたのですが、それは誤解です。

async付けてるのは飾りというか象徴としてであって、JavaScriptでDOMを生成しているからasync未対応ブラウザでも非同期になるそうだ。

また、以前は非同期版はbody要素の開始タグ直後に置くのが推奨されていたけど、今はhead要素内でもいいらしい。(問題が解消されたため。)
ポイントはappendChild()でなくinsertBefore()にしたことらしい。

JRubyは Mirahという言語で実装されるらしい

Mirahやばい - urekatのスカンク日記3
Mirahを作った動機は、JRubyを実装するためJavaを書くのが嫌になったこと。MirahでJRubyを実装する気だ。

そのうちJRubyをMirahで書くのが嫌になってまた別の言語を作ったりして...。

ところでMirahの実行(コンパイル?)にはJRubyが要るらしい

各TLDで取得できるドメインの文字数等の制限

よくある質問:IPアドレス/ドメイン名申請代行サービス|IDCフロンティア|データセンター
ドメイン名として申請できる文字種、文字数に制限はありますか?

ドメイン名に使用できる文字種、文字数には下記の制限があります。
※すべてのドメイン名について、ハイフン“-”は、先頭と末尾、3文字目4文字目に連続する登録はできません。大文字と小文字の区別はありません。

0から始まったら駄目とかあるんだー

2文字ドメインの取れる 国別TLD (2004年の情報だけど)

2文字ドメインまだまだ空いてます (鯖缶日記)
2文字ドメインを日本から&USD50/y以下で取得可能&クレジットカード決済可能な国を抜粋

ちょっと古いからいろいろ変わってそう
.

gTLDの1文字のドメインは6つのみらしい

短いドメイン名には価値がある?/知って得するドメイン名のちょっといい話 #10 | Web担当者Forum
gTLDの1文字ドメイン名の扱い

歴史的経緯により登録されている1文字ドメイン名はq.com/x.com/z.com/i.net/q.net/x.orgの6つのみ。

へー。国別TLDとかではどれくらいあるのだろう。あとaeroとかの業種別(?)では?
.

2010年10月13日水曜日

微と徴で...

radio buttonに onchangeを使うと IEで期待したとおりに動かない

IE と FF での挙動の違い --- ラジオボタンの onchange イベント (でぃべろっぱーず・さいど)
FFがラジオボタンのcheck状態が変わった後に関数が呼び出されるのに対して、IE6ではcheck状態が変化する前に関数が呼び出されてしまいます。

IE8でも発生した。たいていcheck状態が変わる前にfunctionが呼ばれるが、たまーに変わった後にfunctionが呼ばれるという不安定な状態に。

onclickにしておけば、別にクリックされなくてもcheck状態が変わったときにはいつも呼ばれるようだ。

2010年10月12日火曜日

Adminerの バージョン3(Beta)発見!

Adminer
Adminer 3.0.0 beta (254 kB)

Adminer3では、MySQLの他SQLiteやPostgreSQLにも接続できるようだ。(Change Logを見るとMS SQL ServerやOracleでも使える?)

また、画面が日本語化されてた。一部未翻訳(?)なところもあるので、英語で使ってた方が分かりやすいかもしれないが。(他のツールでも英語で使うことが多いので、下手に翻訳してしまうより英語の方が分かりやすいことも多いので。)

Excel2007で切り取ったセルを挿入するショートカットキー

Execl2003までなら、切り取ったセルの挿入は「alt + I」「Enter」だった(たしか)けど、Excel2007からは使えなくなってストレスになってた。
リボンの「ホーム」「セル」「挿入」のドロップダウンを広げて「切り取ったセルを挿入」をクリックすればできるけど、それはそれでフラストレーション。これにマウスカーソルを合わせると「Ctrl + Shift + =」というツールチップが出るが、これをやってもウンともスンとも言わない。

でも実は、「Ctrl + Shift + "+"」で挿入できた。

参考:切り取った行挿入する!!(ショートカットバージョン)|ムダ作業バスターズ 隊長のブログ

感謝感謝!

でも最近はもうExcelってあまり使わない...

Google Maps API V3でデフォルトで Street Viewが使えるようになったみたい

JavascriptMapsAPIv3Changelog - gmaps-api-issues - A changelog that shows the releases for JS API v3. - Project Hosting on Google Code
Street View is enabled by default

今までもフラグを1つtrueにするだけだったけど。
でもこれで何もしなければ(わざわざStreet ViewをOffにするようなJavaScriptを入れなければ)、いつの間にかそこらじゅうのサイトのGoogle Mapsでストリートビューが見られるようになっているというわけか。

2010年10月8日金曜日

検索向けAdSenseの禁止事項

Google AdSense プログラム ポリシー - AdSense ヘルプ
検索向け AdSense: Google AdSense の検索ボックスは各ページに 2 つまで表示できます。また、検索向け AdSense の検索結果ページには、リンク ユニットと検索ボックスを 1 つだけ表示できますが、他の Google 広告は表示できません。検索クエリは、個々のエンド ユーザーが検索ボックスに直接データを入力することによって実行されるものとし、変更できません。検索ボックスにあらかじめ文字列や検索結果ページへのハード コード ダイレクト リンクを表示することはできません。また、検索向け AdSense コードを、ツールバーなどいかなる種類のソフトウェア アプリケーションにも組み込むことはできません。

まとめるとこんな感じ?
  • 検索BOXにあらかじめキーワードを入れておくのは禁止
  • 検索結果ページへのリンクは禁止
  • 検索結果ページにリンクユニット以外のAdSenseを入れるのは禁止
  • 他のツール・ソフトに組み込むのは禁止

Googleカスタム検索の利用規約とはだいぶ違う雰囲気。AdSense無しのカスタム検索のみなら話が違うんだろうね。

loadavgとは

Linuxのtopコマンドで表示されるload averageについて教えてください。CPU使用率というのは理解しているのですがどれぐらい負荷が加わっているのか判断する基準が知りたい.. - 人力検索はてな
正確に言うとロードアベレージは処理を待っているプロセスの平均数です。CPU使用率と考えて問題はないですが。

数字の見かたについてはいろいろあって、私の場合直感的に
・1以下=サクサク(待っているプロセスがない)
・1~3ぐらい=こんなもん?
・3~5ぐらい=ちょっと重い
・5~10ぐらい=かなり重い
・10以上=重い
・数十以上=何か変なことが起きている!

なるほど、これを参考にしてみよう。

2010年10月7日木曜日

Flickrがいつの間にか Short URL機能を提供していた

Flickr Services
Short URLs

Flickr provides a URL shortening service for uploaded photos (and videos). Short URLs can be useful in a variety of contexts including: email, on business cards, IM, text messages, or short status updates.

Every photo on Flickr has a mathematically calculated short URL of the form:

http://flic.kr/p/{base58-photo-id}

知らなかった。
昔ドメイン取れなくてeを抜いたのがちょうど良かったね。
でも個人的にはflc.krの方が好きかな?

Google AJAX Search APIの REST版のパラメータ

クラス リファレンス - Google AJAX Search API - Google Code
各リクエストには、標準 URL 引数と、サーチャー固有の引数(省略可能)が含まれます。

メモ。

2010年10月6日水曜日

正規表現で英単語を検索できるサービス

Wordsmyth - The Premier Educational Dictionary - Thesaurus
Beginner's Dictionary
Children's Dictionary
Advanced Dictionary

ドット(.)とかアスタリスク(*)しか試してないけど、末尾とかで英単語を検索できるのは便利だ。

IMEサーバと IMEクライアントの時代が来るのか

「Google 日本語入力 Cloud API」公開、ウェブアプリから利用可能に -INTERNET Watch
基調講演では、ブラウザー上で利用できるテキストエディターのウェブアプリケーションで、「歴女」「森ガール」「工場萌え」「痛車」などと変換する様子を披露した。及川氏は、IMEのデモなので驚きは何もないと語る一方で、クラウド上で変換し、JavaScriptを用いてブラウザーだけで実現している点をアピールした。

ブラウザの場合はこれでいい。JavaScriptでライブラリ作ればいいし、あるいはブラウザが組み込んでもいい。

Webブラウザ以外の場合、それぞれがAPI呼び出しやもろもろの機能(オフラインで使うためのキャッシュ機能とか?)を実装するのは手間なので、IMEサーバ接続プロキシー的なものを用意すればいいんじゃないかな。
既存のGoogle日本語入力(あるいはMozc)にその役目を負わせて、API付ければいいだけか。(もうあるのかな?)

多くのアプリケーションがメインの機能や特にデータをPC内からサーバに移したように、IMEにもその時が来るのか?
そうするともう個人のよく使う変換とかもサーバの方に保存するんだろうね。

あとはテキストエディタか。

expose_php=Onで表示できる PHPのイースターエッグの URL

Chris Shiflett: PHP Easter Eggs
I can never remember the PHP Easter egg strings, so I'm putting them in my blog. This probably isn't news to anyone, but here they are for reference:

Easter Eggの画像が、今はボロボロのPHPロゴになってる...

図書館・書籍 検索API

カーリル | 図書館 API
1. 蔵書検索

ISBNを元に、任意の図書館の書籍情報を問い合わせるAPI。
複数の図書館を同時に指定して串刺し検索できるほか、 書籍情報は、蔵書のあり/なしだけでなく、「貸出中」、「貸出可」などの貸し出し情報も取得できます。
2. 図書館データベース

地名または緯度経度情報を元に、近い図書館の基本情報(名称、住所、ホームページなど)を問い合わせるAPI。

こんなのあったんだ。貸出中とかどうやって情報取得してんだろ?

2010年10月4日月曜日

IE6~9のデフォルトCSSの一覧表

Internet Explorer UA Style Sheets
This chart lists and compares the different default style sheets used to render HTML in the four major versions of Internet Explorer; IE6, IE7, IE8, and IE9 Platform Preview.

こうして見ると、IE6→IE7やIE7→IE8はけっこう変わってるけど、IE8→IE9はあまり変わっていない。

ページ最下部には他のブラウザのまとめへのリンクがある。

htmlspecialchars()の 第3引数は指定したほうがいいらしい

文字コードに起因する脆弱性を防ぐ「やや安全な」php.ini設定 - 徳丸浩の日記
技術力のある方の中には、「でも入口で不正な文字エンコーディングが除去されているから、htmlspecialcharsの第3引数は指定しなくても一緒でしょ」と言う人もいると思いますが、以下のような実効性もあるのです。

パフォーマンスへの影響との天秤かな?(まあそれほどパフォーマンスへの影響はないと思うけど。)
指定しておけば漏れ対策にもなるしね。

携帯サイトのHTMLでの table要素の tips

ケータイサイトのtableタグの特徴と、5つのデザイン例&ソース - livedoor ディレクターブログ
まずは3キャリア、1ソース、XHTMLをベースに
tableの特徴を覚えましょう

いつか参考にするかも

2010年10月2日土曜日

だいたいのユーザーをカバーする携帯向けXHTMLのテンプレート

手っ取り早く携帯サイトを作成する時のhtmlテンプレート - webの人
「個人で作るサイトなんで、古い携帯とか知りません! ソフバ?みんなiPhoneでしょ?」という場合は、こんなレベルのhtmlで良いんじゃないでしょうか。

XHTML(doc宣言はi-mode)、Shift_JIS、tableタグ。

2010年10月1日金曜日

英単語からドメインハックを考えてくれるサイト

Domainr

使いたい時に探してもなかなかみつからないのです

メールが「neither permitted nor denied」扱いになる

SMTPでGMailに話しかけてメール送信してもらうアプリから届いたメールの中身を見てみたら、なにやら保留扱いのような書き方をされていた。

Received-SPF: neutral (google.com: xxx.xxx.xxx.xxx is neither permitted
nor denied by best guess record for domain of
xxxxxx@xxxxxx.com)
client-ip=xxx.xxx.xxx.xxx;

Authentication-Results: mx.google.com; spf=neutral (google.com:
xxx.xxx.xxx.xxx is neither permitted nor denied by best guess record for
domain of xxxxxx@xxxxxx.com) smtp.mail=xxxxxx@xxxxxx.com


SPFの設定をしていないかららしい。

メールサーバーにGoogle Apps(Gmail)を使う場合に軽く押さえておくポイント | cloudrop
SPF レコードの設定に詳細が載っていて、DNSのTXTレコードに設定をすれば済むのですが、そのドメイン内で何かしらサービスを動かしている場合、Gmailのサーバー以外からメールを送る可能性があるので、そのサーバーのアドレスも合わせてSPFレコードに登録するべきです。

場合(設定?)によっては迷惑メールフィルタにひっかかるのかな

Amazon Linux AMIは CentOSとは違う

ARAKI notes - AmazonLinuxをなめてみる(導入編)
Package, ライブラリのバージョン,カーネルなど様々な点で違う。
そのため手元のCentOSで再現できないと困る、といったことはしばしば発生すると思われます。

特にカーネルが違うというのはいざとなるとどうしようもない問題になるかもしれないので、開発環境・テスト環境がCentOSの場合はやはりCentOSを使った方が無難だと思う。

まあ開発環境から一貫してAmazon Linux AMIを使うなら問題ない(あるいは問題が少ない)だろうけど。
そもそもそんなセンシティブに環境作ってない(開発環境がMacでテスト環境がWindowsでステージ環境がUbuntuで、PHPとMySQL動かすだけだからなんとかなるだろうとか?)なら気にせずAmazon Linux AMIでいいかも。

あとはトラブルシュートとかの情報が増えるのを待つ。

2010年9月30日木曜日

Monitの cycleとは

monitで「if 5 restarts within 5 cycles then timeout」とかやる場合のcycleって具体的には何だろう?

どうやらMonitのチェック処理の回数みたい。
1 cycleはmonit.confの「set daemon xx」の秒数ということか?


what is a monit cycle? - Ruby Forum
You are correct sir. One cycle is equal to the number of seconds in the set daemon config options. 30 or 60 seconds is a good interval.


.

Monitで URLを指定して Webサイトの死活監視をする例

Monit - utility for monitoring services on a Unix system
check host FOO with address www.foo.bar if failed url http://user:password@www.foo.bar:8080/?querystring and content == 'action="j_security_check"' then ...

contentで内容を指定できる。これを含んでいたらOKということ?正規表現とか使えるのかな。

世界一短い短縮URL

無料独自ドメイン風URL短縮サービス - 方向性のない日々
○○○.tkというように、○○○部分に短縮URLにあたる部分を使うことができるので、他のサービスよりも文字数を短くなる。

でも一定数のクリックがされないと消されてしまうそうな。

参考:URL 短縮をさらに短くする『TweaK』 - japan.internet.com

世界で一番短いURL

http://to./が開けるしくみ - しょんぼり技術メモ
http://to./というURL短縮サービスがあります。一見開けなさそうなこの不思議なURL、実は正しく開けます。

今は使えないみたい?

IEは Ajaxをキャッシュする

IEにてAjax通信がキャッシュされる、F5でリフレッシュしてもダメ - 不会忘記的一天
jQueryではちゃんと対策されているみたい!さすが!

AjaxというかXMLHttpRequestをIEはキャッシュしてしまうらしい。IE8ですら。
jQueryにcacheというオプションがあってtrueにしたら余分なアクセスを抑制するのかと思ってたら逆で、falseにしたら想定外のキャッシュ使用を防ぐということだったみたい。

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"とは

PHP: setcookie - Manual
So what you do is not read the P3P-Internet Explorer 6-manual at MS but send a header like

header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
?>

before doing the setcookie-thing. This will enable your cookie to survive any IE-6 privacy settings.

IE6でサードパーティ(ブラウザのURL欄にあるドメイン以外のドメイン)のCookieを有効にするためのHTTP Response Headerらしい。

Yahoo!が 測地系変換APIを公開した

Yahoo!デベロッパーネットワーク - 地図 - 測地系変換
# 緯度経度を日本測地系(TOKYO97)と世界測地系(WGS84)で相互変換します。
# 最大1000点まで一度に変換できます。

計算式さえ押さえてしまえば大した手間ではないけど、APIとして使えるなら便利かも?(APIを呼び出す方が面倒か。アプリケーションIDが要るし。)

「緯度・経度」でなく、「経度・緯度」なのは違和感がある。(まあよくあるが。)

経度緯度をfloatだけでなく度分秒でも指定できればいいのに。

2010年9月28日火曜日

オンラインで画像のファイルサイズをダイエットできるサービス

punypngをためしてみた: べつになんでもないこと
ASCII.jp:30分でできる!Webサイトを高速化する6大原則
の画像最適化でpunypngが紹介されていて、他のツールとの比較で圧倒的すぎるので、ちょっと試してみました。

ブラウザから画像をアップロード&ダウンロードすると、ファイルサイズが減るというサービス。
PNGだけでなく、JPEGでも使えた。GIFでも使えるらしい。
見た目には分からない程度に精度を下げているのかな?

Monit.confの設定例

ここの例が一番使えそう。
GMailでのメール送信、管理用Webの設定、システム全体の監視、Apacheの監視の例が載っている。

System Monitoring With Monit - Linux and Open Source Screencasts

gmaps-api-v3-googlebarの作者は Googleの人?

jrgeerdes - Project Hosting on Google Code
Username: jrgeerdes

Owner role:
gmaps-api-v3-googlebar
A GoogleBar-like control for GMaps API v3

gmaps-api-v3-overviewmapcontrol
A GMaps API v3 control which approximates the functionality of the GOverviewMapControl in GMaps API v2

google-ajax-examples
This is a placeholder for examples of various Google APIs and their use via JavaScript

google-ajax-apis
Google AJAX APIs

gajaxapis-irc-bot
An IRC bot to help people discover and use the Google AJAX APIs

gmaps-api-v3-googlebarとかgmaps-api-v3-overviewmapcontrolとかを作ったjrgeerdesさんは実はgoogle-ajax-apisプロジェクトのOwnerでもあった。(しかも筆頭?)
google-ajax-apisの他のOwnerを見ると@google.comだから、jrgeerdesさんももしかしたらGoogleの人なんだろうか?

だとすると、gmaps-api-v3-googlebarとかgmaps-api-v3-overviewmapcontrolが正式にGoogle Maps API V3に採用される日も近い?

2010年9月27日月曜日

MySQL Query Browserの欠点

MySQLのGUI管理ツール - WEBお笑いエンジニアの日記
クエリに日本語を書くと文字化け。さらにアプリケーションがハングアップしたりする。

そうそう、SQLのWHERE句とかで日本語書くといきなり文字化け。でも気合でそのまま実行すると実行できる。(表示がおかしくなっているだけなので。)


Navicatというのは初めて知った。
今でもLite版はあるみたい → ダウンロード|Navicat
Oracle、PostgreSQL、SQLiteにも使えるそうだ。SQLiteのフロントエンドって持ってないから便利かも。でもSQLite使うのってFirefoxくらいか。


それからphpMyAdminよりはAdminer等の方が使いやすい → floatingdays: Webブラウザで DBを参照・更新・管理できるツールいろいろ
でも情報量ならphpMyAdminの方が多い。

2010年9月24日金曜日

CakePHPで作った JSONが jQueryでパースエラーになる

コスミー報告書[社外秘] - CakePHP+jQuery
“~~/モデル名/autocomplete/”で返すページにCakePHPが自動的に表示にかかった時間を出力していた。
出力されていたのはHTMLコメント形式のデータ。
結果として返されていたデータは下記のような形式となっていた。
['aaa','bbb','ccc']
jQueryのJSONパーザにおいて、Firefoxでは上記形式を正しくパーズできるが、IEでは処理できずにエラーとなっていた。

やはりこれか。自分の場合、Firefoxでエラーになった。JSONの後ろに"; //"をつけてコメントアウトしたのに効かないのだ。

2010年9月22日水曜日

MySQL Query Browserで SSL通信する方法

guro_chanの日記 » MySQLサーバにSSLで接続する
あと MySQL Query Browser で接続する場合は Advanced Parameters を下記の用に設定することでSSLによる接続が可能となった。なお↓キーを押さないとパラメータが追記できない。

詳細はこちら → MySQL :: MySQL Query Browser :: 11.3.1 SSL Connections

yumで入れたMySQLはSSL使えるのかなー

Microsoftの JavaScript CDNに jQuery UIと jQuery Validationプラグインが追加されていた

Microsoft Ajax Content Delivery Network - ASP.NET Ajax Library
The Microsoft Ajax CDN includes the following libraries which have been uploaded by community members:

* jQuery (owned by the jQuery Team — www.jQuery.com)
* jQuery UI (owned by the jQuery UI Team — www.jQueryUI.com)
* jQuery Validation (owned by the jQuery team – www.jQuery.com)

スタート時にjQueryがあったのはおぼろげながらに知っていたけど、jQuery UIのブログでjQuery UIも追加されたことを知った。

そしてjQuery Validationプラグインも発見。
このプラグインのサイトはこちら(MSからリンク貼ってよ。) → bassistance.de » jQuery plugin: Validation
これって「owned by the jQuery team」なのかな?
使い方の分かりやすい解説はこちら → 高機能ライブラリ「jQuery」とそのPlugin「Validation」 - すぎゃーんメモ


MSのCDNはGoogle同様、httpsが使えるみたい。
でもGoogle CDN流のバージョン指定方法はできないみたい。新しいのが出るたびに書き換えるのか。

フォーム入力チェックのjQueryプラグイン jQuery Validationの使い方

リアルタイムフォームバリデーション jQuery.validation.js :: 5509(+1.1)
jQuery.validation.jsはフォーム入力のイライラを軽減して、Webブラウジングとかショッピングをもっと快適にするためのjQueryプラグインです。

凄い詳しい説明。
でも使う機会あるかなあ。

MSのCDNから利用可 → Microsoft Ajax Content Delivery Network - ASP.NET Ajax Library MSのCDNで使えるのはjQuery.validate.jsだった。

2010年9月21日火曜日

x:-moz-any-linkは IE7にも適用されてしまう

firefoxのみに効くCSSハック - モカモカ工房
 「:-moz-broken」などのfirefoxでしか使えない"独自実装擬似クラス"をセレクタに混ぜ込むことによってfirefoxでしか適用されないCSSを定義するという記事もありました。

div#menu, x:-moz-any-link { STYLE }

 しかしこれがIE7にもどうやら適用されてしまうようなのです。

IE7...なぜそんな中途半端な実装を...IE8には適用されてなかった。

Railsの select_yearヘルパーのリファレンス

Module: ActionView::Helpers::DateHelper
# Generates a select field for years that defaults to the current year that # has ascending year values select_year(Date.today, :start_year => 1992, :end_year => 2007)

Railsの機能かー

Rubyの GetTextにおけるN_()メソッドとは

N_()の使いかた(再) - よたらぼ(2008-07-07)
N_()は実は何もしないメソッド。rgettext(poファイル抽出時)にそれが翻訳対象文字列であることを伝えるためのメソッドで、実際の翻訳はsay_hello_world内の_()で行っている。

複数形の翻訳かと思った。

2010年9月17日金曜日

Amazon Linux AMIについて調べてみた

POSTORO: Amazon Linux AMI登場
ベースはUbuntuかと思ったらCentOS。
デフォルトではrootによるsshアクセスは禁止されている。

簡単に調べてみた。
  • sshで接続できるのはデフォルトでは"ec2-user"というユーザーのみ
  • "ec2-user"はsudoを使える
  • yumが使える
  • yumでApache(httpd)とPHPをインストールしたら、amznというyumリポジトリからApache 2.2.15、PHP 5.3.2がインストールされた(2010年9月現在)
  • cat issueしたらこうだった
    Amazon Linux AMI release 1 (beta)
    Kernel \r on an \m
  • SELinuxはデフォルトではDisabled



Amazon Linux AMI登場

Amazon Linux AMI (Beta)
The Amazon Linux AMI is a supported and maintained Linux image provided by Amazon Web Services for use on Amazon Elastic Compute Cloud (Amazon EC2).

ベースはUbuntuかと思ったらCentOS。 CentOSに似たファイル構造らしい。
デフォルトではrootによるsshアクセスは禁止されている。

RedHatに対するビジネス的な理由からこれまでAmazon標準としてはCentOSではなくFedoraを提供してきたのだと勘ぐっていたのだけれど、CentOS(的なもの)を標準として出しちゃっていいのかな?
RedHatから得られるお金よりEC2自体の発展の方が利益が高いと判断したということか。

追記:こちらも参考に → POSTORO: Amazon Linux AMIについて調べてみた

2010年9月16日木曜日

IEのみで使える JavaScriptの条件コンパイル変数

条件コンパイル変数
変数 説明
@_win32 Win32 システム上で実行されていれば真 (true) です。
@_win16 Win16 システム上で実行されていれば真 (true) です。
@_mac Apple Macintosh システム上で実行されていれば真 (true) です。
@_alpha DEC Alpha プロセッサ上で実行されていれば真 (true) です。
@_x86 Intel プロセッサ上で実行されていれば真 (true) です。
@_mc680x0 Motorola 680x0 プロセッサ上で実行されていれば真 (true) です。
@_PowerPC Motorola PowerPC プロセッサ上で実行されていれば真 (true) です。
@_jscript 常に真 (true) です。
@_jscript_build JScript スクリプト エンジンのビルド番号を含みます。
@_jscript_version JScript バージョン番号をメジャー、マイナ形式で含みます。

正確に言えばJScriptですが。
でもIE9はJavaScriptだっけ?

それはそうとこんなにあるんだ。

「IEの JavaScriptを高速化する1行」は IE9では使えない

一行で IE の JavaScript を高速化する方法 - IT戦記
/*@cc_on _d=document;eval('var document=_d')@*/

この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。

IE9 Betaで試したら、
SCRIPT5039: Redeclaration of const 'document'  eval code (1), 行 1 文字1
というエラーになった。
IE9では使えないようだ。

(追記)
IE9正式版では問題なく使えるようだ?

Google Chart APIの吹き出しアイコンに新しい形が追加されるらしい

Configurable font size for bubbles - Google Chart API | Google グループ
In the future, we plan to add new bubble images (in addition to the
current 5 possibilities, bb, bbtl, bbtr, bbbr, bbT), which may better
support smaller sizes.

下の真ん中に尻尾がある吹き出しが追加されるといいだけどなあ

参考: http://code.google.com/intl/ja/apis/chart/docs/gallery/dynamic_icons.html#frame_style_constants

2010年9月15日水曜日

Monitの alertで GMailを使う方法

Monit の導入 - ARCHIVESDRIVE HD
gmailいけましたよ。
set mailserver smtp.gmail.com port 587 username "name" password "password" using TLSV1

おお素晴らしい。
もうメールはGMailにしようよ。Localのメールサーバはなるべく不使用で。

Monit自身の死活監視をする方法

Monitでサービス・プロセス監視、止まったら勝手にリスタート(3) « 旧SawanoBlog.
監視対象プロセスの起動がDaemontoolsのようにMonit経由ではないので、Monitプロセス自身がいなくなると監視止まってしまうがな。
ということで monit の起動・動作監視を、全てのプロセスの親である init にやらせます。

initからmonitを動かしっと。(後韻)

サーバ監視ツールMonitとは

monit でプロセスを監視する - いますぐ実践! Linuxシステム管理 / Vol.158
Monit とは、プロセスを監視して、 なにか問題があったときに再起動などを行ってくれる、便利なユーティリティです。


ここの説明が一番分かりやすい。
応用編についてはmonit でいろいろ監視する - いますぐ実践! Linuxシステム管理 / Vol.159を参照。

Cで書かれた高速なバグトラッキングシステム

Starbug1 Official WebSite - start
Starbug1の導入に適しているプロジェクトは以下のようなプロジェクトです。
SI業界の小規模開発チーム

オープンソースなどの外部のユーザに公開されたプロジェクト管理ツール用というより、 一般的なSI業界の開発チームで使用するBTSやQ&A管理ツールとして使うことを想定しています。
バグ,タスク管理のために新しいサーバを準備する時間がないプロジェクト

Webサーバとgccが使える古いパソコンが1台あれば快適に動作します。他のサービスが動作中のサーバにインストールしても、消費するリソース(cpu,memory)は僅かです。

Railsが必要なRedmineとかPythonが必要なTracに比べて、場合によっては楽かもね。
PHPでもバージョンとか設定とかに依存することもあるし。

2010年9月13日月曜日

YUI3でついに Grids.cssが復活

YUI 3.2.0 Released: SimpleYUI, Touch Event Support, Gestures, Transitions, CSS Grids, ScrollView, Uploader, and More » Yahoo! User Interface Blog (YUIBlog)
YUI 3.2.0 debuts a new beta version of YUI’s CSS Grids component, and you can begin exploring this new approach to Grids in the preview release.

長い苦難の時代を乗り越え、Deprecatedからついに復活。

YUI3.2.0ではUploaderも追加された。YUI2のUploaderとの違いはどうなんだろ。

もうそろそろGoogle Libraries API (googleapis.com)もYUI3の配布を開始しないかな。

Amazon EC2の プライベートIPを収集するスクリプト

動的に変わる EC2 のインスタンスの IP アドレスを自動収集するスクリプト書いた - Craftworks Tech Blog - Branch
EC2 は便利なのですが、プライベート IP アドレスが変更されない保証が無いので、/etc/hosts に他のインスタンスのアドレスを書いておいても、ある日変わっている可能性があります

こういう手間をかけないと取得できないのかー

MySQLへの接続(通信)を暗号化する方法

MySQL サーバに SSL 接続 - kazuhoのメモ置き場
分散配置した MySQL サーバに SSL 接続したい、という需要は当然ある。というわけで、プライベートな認証局と証明書 (自己署名でも可) を使ってMySQL へセキュアに接続する手軽な方法について。

クライアント側も証明書の指定が必要なのか。PHPとかから接続するにはどうするんだろう。

Elastic IPは 1地域につき 最大5つまでしか使えない

Amazon Elastic Compute Cloud (Amazon EC2) FAQ
既定では、全アカウントは1地域につき5つのElastic IPアドレスまでに 制限されています。5つを超える Elastic IP アドレスを使用する必要が ある場合は、お客様は制限数を増やす申請を行なうよう依頼されます。当 社はお客様が自身の使用事例を検討し、追加アドレスの必要性を当社に理 解させる手助けを行なうよう求めています。

もっと欲しい場合は上記リンク先のリンク先のフォームから申請してくれとのこと。
少し増やしたいだけなら地域を変えればいいのか。

2010年9月10日金曜日

input要素のフォントをメイリオにすると幅が2倍に広がる問題の回避策

メイリオ問題その1 - web-holic [ウェブホリック]
CSSでwidthを指定していないinputをメイリオフォントで見ると予想以上に幅が広がる


font-familyでメイリオを指定すると、input要素のテキストボックス・パスワード・ファイル選択(type="file")・検索(type="search")とtextarea要素の横のサイズが2倍になってしまう問題。IEやFirefoxで発生した。(type="file"はIEだけ?)

HTML5が普及してinput要素のtypeが増えたらさらに悲惨になるかもしれない。

そこで、試しにWindows 7でMeiryo UIを指定したところ、びよーんと広がらなかった。何の問題も無い。Meiryo UIでは問題を解消できたのかな?

Windows XPにMeiryo UIを入れるのはちょっと面倒だね。

fluxflexとは

[jp] 東京Camp vol.3に参加してくれたデモピットをご紹介。ー前編
ポイントは「オートスケーリング」。ソーシャルゲームでよく使われるAmazon Web Serviceなどは負荷に合わせてスケールするシステムを組むことができる。このメリットをもっと簡単に受けられるアプリケーションホスティング、といえばイメージがつくだろうか。

WordPressやRailsなどのCMSやフレームワークを自動スケーリング可能なホスティングサービスとして提供するということ?
EC2で環境構築する手間をラップしてくれる感じかな。
バックアップ機能もついてるなら、値段によっては十分使いたい。

参考

Amazon EC2障害事例

昨日起きたAmazon EC2の障害について | twk @ ふらっと
・自分でhttpで接続するが応答無し
・sshにて該当インスタンスに接続を試みるが、応答無し

監視はしないと駄目ですね。
余裕があれば二重化(&DBはスレーブですぐ使えるように)すればいいんだろうけど...

Amazon EC2のEBSブートのインスタンスを他のリージョンへ移動する方法

EBSタイプのインスタンスを他リージョンへ移行する手順 « サーバーワークス技術ブログ
先日、US WestにあるEBSタイプインスタンスをAsia Pacificに移行したという事もあり、今回のエントリーではEBSタイプのインスタンスを他のリージョンへ移行する手順について書きたいと思います。

EC2@日本の開設までの準備としてメモ。価格メリットがあるならAsiaでも十分だけど。

それにしてもMicroインスタンス安いね。Sakuraもビックリだ。

Amazon EC2では 1つのインスタンスに 1つの Elastic IPアドレスしか設定できない

五目焼きそばが食べたいです: AmazonEC2のElastic IP Addressesのメモ
1つのインスタンスに付き1つのIPのみ割り当て可能、複数の割り当てはできません。

上記のとおり。
[debian-users:54137] Re: 固定ipアドレスを提供しているプロバイダーについてにはできそうなことが書いてあったが、実験してみたら駄目だった。

実験結果
  1. インスタンスを起動
  2. Elastic IPを取得(IP1と呼ぶ)
  3. Elastic IPを取得(IP2と呼ぶ)
  4. IP1をインスタンスに紐付ける → OK
  5. IP2をインスタンスに紐付ける → IP2が紐づくが、IP1の方が外れてしまう
駄目だあ。

Firefoxのアドオン Delicious Bookmarksが Privateなブックマークを表示しなくなる問題

POSTORO
それにしても急にPrivateなBookmarkがDelicious Barから消えたのはなぜ???

バージョン2.1.106に上げたから?でも上げた直後には問題はなかった気がする。途中でネットワークが断線したりしたからその影響か?
全部消えたのかと思ったが、少しだけ残ってる。どうやら公開しているブックマークは残っているようだ。
「Sync Now」をしても「Full Sync」をしてもウンともスンとも言わない。(その上FooともBarとも言わない。)

修復方法は以下のとおり。
  1. Delicious Bookmarksを削除
  2. Firefoxのプロファイルのフォルダ内(直下)にあるybookmarks.sqliteを削除(ついでにlogも削除?)
  3. Delicious Bookmarksを再インストール
  4. ブックマークのSyncが始まる。始まらなかったら手動で「Full Sync」
これで消えたブックマークが復活した。Faviconは全部消えちゃったけど。

Firefoxのアドオン Delicious Bookmarksが delicious.rdfを使わなくなっていた

floatingdays: Delicious Bookmarksからデータが消えて PCがフリーズする問題の解決方法(追記:解決した!)
Firefoxのプロファイルにあるファイル「delicious.rdf」を削除したら直るとのこと。

現在のDelicious Bookmarks(バージョン2.1.106)では、delicious.rdfというファイルは無いようだ。代わりに、ybookmarks.sqliteというSQLiteでデータを管理しているようだ。

それにしても急にPrivateなBookmarkがDelicious Barから消えたのはなぜ???

2010年9月9日木曜日

VMware Serverは 2で終わり?

VMware Server 2.xのサポート期限は2011/06/30 - willowletの日記
以下によれば、VMware Serverは終わるから、ESXiかPlayerに移行してね、とのこと。

ESXiとの棲み分けが微妙だったが、ESXiに移行するのか。まともにサーバを使うなら確かにESXiで良いんだろうが、VMware Serverの方がちょっとだけ初期導入が気軽だったのに。

VMware Player 3.0は評判がいい。でもVMware Playerでサーバ立てたりできるのかな?

2010年9月8日水曜日

Internet Explorer 9 Platform Previewのダウンロードページ

Internet Explorer 9 Test Drive
Internet Explorer Platform Preview requires Windows Vista or Windows 7. Feel free to explore our Test Drive demos in your current browser.

WinXPではダウンロードすらできないが。

(ASCIIコード表改め)キャラクターコード表

キャラクタコード表
キャラクタコード表

ASCII(0~125)を含む00~FFのキャラクターコード表。

2010年9月7日火曜日

Poderosaで SSH接続の認証鍵を接続し Linuxにセットアップする方法

WindowsからSSHサーバーへリモート接続(Poderosa鍵方式ログイン編) - Fedoraで自宅サーバー構築
Poderosaを起動し、メニューの「ツール」⇒「SSH鍵作成ウィザード」で、SSH鍵作成ウィザードを起動する。

メモ。パスフレーズは空欄にしておけばパスフレーズ不要になる(?)

2010年9月6日月曜日

Twitter Search APIで 403エラーになる場合の対処方法

since date or since_id is too old - Twitter Development Talk | Google グループ
This bug wasn't fixed?

古いsince_idを指定すると403エラーになることがあるようだ。
対策はsince_idを新しいものにするか、指定しないか。

FQLとは

サルが作るウェブアプリ: Facebookアプリを作ってみたいサル FQL編
FQLとはFacebookアプリで使えるSQLライクなDSL(ドメイン固有言語)です。
ほぼSQLの文法でかけますがテーブル結合は出来ないっぽい。でもサブクエリは使える。


WHERE句で条件として指定できる列がかなり限定されているのがミソのようだ。

レンタルサーバVPS比較 2010年 9月版

VPS比較 SaaSes, さくら, ServersMan@VPS
SaaSes

Osukini サーバー
SAKURA Internet

さくらのVPS
DTI

ServersMan@VPS

なんとなくSAKURAに魅力を感じる。出たばっかで、まだまだいろいろ追加しそうな勢いとか。

Google Mapsで経路検索結果を表示する URLのパラメータ

GoogleMapの経路検索で、車、電車、徒歩を指定するURL - iRSSの日記
dirflgパラメータをつけることで、経路のタイプを指定できる。

iPhone/iPadでは電車が"dirflg=r"なので注意!

iPadの User-Agent

How to Use Gmail's Attractive New Tablet-Friendly Interface on Your Regular Old Computer
Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10

UserAgent Switcher使うの久しぶりだな...

2010年8月31日火曜日

Google Maps API V3用の GoogleBar (Local Search Control)登場

Google Codeに。

gmaps-api-v3-googlebar - Project Hosting on Google Code
The idea is to create a GoogleBar-like control for GMaps API v3. Since the original GoogleBar is based on the Search API team's Google Maps Local Search Control, we will approximate that functionality, making tweaks where necessary and appropriate.

どんなもんか試してみないと。V2のGoogle Barって意外にいろんなことやってるんだよねー

FFmpegで iPad用の H.264動画をエンコードする例

FFmpegでiPad用ビデオをエンコード - something visible - othersight blog
それでは、iPadで再生できるビデオをFFmpegでエンコードする方法を示します。まずは、エンコード条件は次の制限に従って設定します。

FFmpegのパラメータも少し見ないうちに変わったなあ

iPad用の H.264動画の仕様

アップル - iPad - iPadをよく知るために必要な、すべての情報。
H.264ビデオ:最高720p、毎秒30フレーム、最高レベル3.1のメインプロファイル(最高160kbpsのAAC-LC)、48kHz、.m4v、.mp4、.movファイルフォーマットのステレオオーディオ

こちらも参考に → iPad 向けの動画を作成できる6 つの動画変換ソフト - フリーソフト・無料ソフトの番外編

2010年8月30日月曜日

Google Chart APIで吹き出し画像を作る

Dynamic Icons - Google Chart Tools / Image Charts (aka Chart API) - Google Code
chst=d_bubble_text_small[_withshadow]&chld=<frame_style>|<text>|<fill_color>|<text_color>

こちらも色を指定しないと黒になる。日本語等のマルチバイト文字でもOK。frame_styleは吹き出しの形を選ぶ。

Google Chart APIで Googleマップ用のシンプルなマーカー画像を作る

Dynamic Icons - Google Chart Tools / Image Charts (aka Chart API) - Google Code
chst=d_map_pin_letter[_withshadow] chld=<character>|<fill_color>|<text_color>

色は省略すると黒になる。文字は省略すると文字無しになる。

Google Chart APIで吹き出し画像を動的に生成

Dynamic Icons - Google Chart Tools / Image Charts (aka Chart API) - Google Code
Bubbles come in various combinations of features: large or small size, with or without icon, single line or multi-line text. The following table describes the types of bubbles, and the syntax for each. The description of each parameter value is described below the table.


bubblesを使うのか

Google Maps API V3版の MapIconMaker

WebTecNote - [gmap v3] Googleマップのマーカーを動的に作成する
MapIconMakerというV2のライブラリが元ネタなんだけど、
V3はGIconとかが無くなってて使えなかったからドキュメント見ながらピンタイプのアイコンを出力する関数を書いてみた。
この関数使えばアイコン素材を用意する必要がなくてとてもお手軽です。

Pamera Foxさんが作ったV2版をV3へ移植したらしい。ピンタイプでない矩形角丸のラベルはムリかな?

iPhone / iPadの動画再生の仕様

iPhone 4およびiPad向け動画をHandBrakeで作る « DailyHckr
 iPhone 4の動画再生機能については、Webサイトにその仕様が掲載されている(日本語のiPhoneページ)。ただし、日本語ページには一部誤訳というか不明瞭な表記があるたので、英語版iPhoneページを確認するほうが確実。これによると、iPhone 4の動画再生仕様は下記の通り。

メモメモ

2010年8月27日金曜日

margin: autoによるセンタリングが効かないのは IE6の互換モード

センタリングの不具合(IE/margin):スタイルシート(CSS)辞典 - HTMLタグボード
しかし、IE5.5以前、もしくは5.5以降でも互換モードで書かれた以下の例のようなページは、IEで見た場合、センタリングされず、正しく表示されません。


IE6未満はもういいとして、IE6はまだいるからなー。(切り捨ててもいいぐらいかもしれないが。)

HTML5で書いてればいいけど(というか最近HTML5しか書かないから気付かなかった)、XHTMLでXML宣言つけたら互換モードになってしまうし。

Rubyでインストール済みの場合のみ gemを requireする方法

Ruby/requireできない時を考慮する方法 - TOBY SOFT wiki
requireできないのをrescueする時は、LoadErrorで明示してトラップしないといけません。

あったら使うけど無くても構わない(少なくとも処理は続行する)ようなお助けツールをgemるときに便利。

PHP Ruby Python Perl Java JavaScript CSSなどのフレームワークを大量に比較できるサイト

Best Web-Frameworks » Find and compare PHP, Ruby, Perl, ASP.net, ColdFusion, JS and CSS Frameworks
The frameworks are listed in a clearly table with different color deposited. Descriptive icons show you at a first glance the existing features. Each framework offers a description with a possibility to add a review or download the framework.

すごいなあ

Railsのテストの結果を緑とか赤にして見やすくする

Windowsでテスト結果を見やすくする - Slow Dance
gemからインストールできます。

gem install redgreen


このgemを使うと、テストで「.」(=通過)には緑、「F」は赤で表示されるようになります。便利ですね。

色を着けたいだけというシンプルな要求にシンプルに答えてくれるGemで嬉しい。
シェルの背景色が白(文字色が黒)ならインストールするだけで十分見やすい。

たった8行で簡易Reset & Gridレイアウトを実現するCSSライブラリ

malo - Project Hosting on Google Code
Why should you use Malo?

Because it's:

* Ultra small (compressed is 0,25 kb or 8 lines of CSS! )
* Personalized width of the page in (%, px, em)
* Super flexible.
* Easy to use.

Gridとしてはこれで十分だと思う。

2010年8月26日木曜日

CSSフレームワーク Bluetipsの分かりやすい紹介

調査結果の解説だが、紹介記事としても分かりやすい。

EMXAS IT工房 » CSSフレームワークを解析する
BlueTripは複数のCSSフレームワークから良いところを取り入れて再構成したものとなっています。

Blueprint、Tripoli (名前はここから)、Hartijaの印刷スタイル、960gsの簡潔さ、Elementsのアイコン、を併せた…(HPより)

そこで、元となったCSSフレームワークとBlueTripを比べながら解析してみようと思います。それぞれのCSSファイル構成を見て行きましょう。


.

Railsのテストで assert_not_select()

こんな感じでいいんじゃないかな。
def assert_not_select(css_selector, text, message = nil)
  assert_select(css_selector, {:text => text, :count => 0}, message)
end

どうかな?
属性値を?でテストする場合にはダメか。でも属性値のテストならこれを使わなくても正規表現でなんとかなりそうな気もする。

Railsの View以外で h()を使う方法

Rails の便利メソッド h, html_escape は ERB:Util にあった | METAREAL
render :text => ERB::Util.html_escape(params[:value])

View(ERB)以外でHTMLエスケープする方法。なるほど。
ERB::Util.h()でもOK。

Railsの functinalテストで使う assert_tagは deprecatedらしい

Rails / Testing - WhyNotWiki
Don't use it. It's deprecated in 1.2 in favor of assert_select.

どうりで検索してもあまり見つからわいわけだ。

Fw: ActionMailerのユニットテストの書き方

POSTORO: ActionMailerのユニットテストの書き方
このサイトくらいしか見つからなかった。このサイトが参考にしたらしいサイトはリンク切れ。
あとは公式リファレンス見て調べるか。

ってFromヘッダーのテストの仕方が分からない。
toと同じようにfromをとろうとするとfalseだし、どうするんだろ?実際には送ってないからfalseでいいのかな。でもそれではテストではない。

続 ActionMailerのテストの書き方

Class: ActionMailer::Base
deliveries - Keeps an array of all the emails sent out through the Action Mailer with delivery_method :test. Most useful for unit and functional testing.

あ、やっぱりdeliveriesを使うのが正道なんだ。

ActionMailerのユニットテストの書き方

お手軽なActionMailerのテスト方法 - satoko's blog - s21g
# テスト時に配送したメールの配列を保存する。
ActionMailer::Base.deliveries = []

このサイトくらいしか見つからなかった。このサイトが参考にしたらしいサイトはリンク切れ。
あとは公式リファレンス見て調べるか。

Extがいつの間にか Senchaになっていた

次世代フレームワーク Sencha Touch - C9 tech
ExtJSは彼らの商品名でもありブランド名でもあったが、次世代フレームワークの投入とともに「Sencha」という名前に変更された。もちろん、語源は日本語の「煎茶」である。

Ext Coreは変えないのかな。えっ? Matchaとか?!

IEの印刷設定の余白の大きさの初期値(デフォルト設定)

Strange Machines Internet Explorer の印刷余白(マージン)の初期値
Internet Explorer の印刷余白(マージン)の初期値は、

左(L): 19.05 mm
右(R): 19.05 mm
上(T): 19.05 mm
下(B): 19.05 mm

IE6/7共通の話かな?
IE8で確認したら同じだった。
.

2010年8月25日水曜日

eager loadingとは

eager loadingって何? - おもしろWEBサービス開発日記
tasksテーブルに入っている列の数だけクエリが生成することになり、パフォーマンス的に大変よろしくありません。先にprojectsテーブルからもデータを取得しておけば、クエリの発行回数を減らすことができます。この、「先にデータを取得しておく」ことを eager loading というらしいです。

こんな機能があったんだ。

でも本当に使いたいところで使いこなすにはRailsのソースに深く潜り込まなくちゃいけないかも。それならSQLかそれに近いコードを書いちゃったほうが速い場合が多いからなあ。

Railsでテストを書くときの指針の参考に

Railsでテストを書く勘所 - moroの日記
で、そこでRailsとTDD(BDD)の話なんかしたので、一週間で思ったことをつらつらと。たぶん不正確というか、理解の足りないところもいろいろあるので、そのへんのツッコミをいただけると感謝です。

RSpecが念頭に置かれているが、「伝統的な」Railsのテスト機能でも参考になる。

Rubyで使える assert系メソッド一覧

Test::Unit - Rubyリファレンスマニュアル
各 assertion の最後の引数 message はテストが失敗したときに表示される メッセージ

assert_not_equalはあるのに、assert_not(あるいはassert_false)は無いんだー

Excelでテスト手順を書くとそれを Seleniumで自動実行してくれるツール

"Excelenium"(エクセレニウム)で,快適な自動回帰テストを  (Seleniumのテストスクリプトとテスト仕様書を自動生成) - 主に言語とシステム開発に関して
テスト仕様を書くだけで,仕様書自身がテストを自動でやってくれる。

それがExcelenium(エクセレニウム)。

けっこういいんじゃない?話題になっていないのはどうしてだろう

mod_rewriteで特定のパターンを除外する方法

OZACC.blog: mod_rewriteの否定パターン
RewriteRule [C] 使わないでも、RewriteCond %{REQUEST_URI} !^/notrewrite/ とかを前置すればいけないかしら?

色々やり方あるけどすぐ忘れちゃう。

Railsで URLエンコードする方法いろいろ

Ruby on RailsでURLエンコード・デコードする
Ruby on RailsでURLエンコード・デコードする

URIを使う方法と、ERB::Utilを使う方法と、CGIを使う方法。
URIの場合、内容によっては第2引数が必要(参考:RailsのURLエンコード方法 - おもしろWEBサービス開発日記Ruby On Rails ピチカート街道 - rubyでURLエンコード -)。

2010年8月24日火曜日

Railsの Fixtureで 省略したときに自動で振られるIDは

ラベルの文字列のハッシュらしい。

Foxy fixtures (Rails 2.2.2)
ただ、一つ気になっていたのは、idが85969009とか、巨大な整数になることです。しかし、今日知ったのですが、これはラベルの文字列のハッシュだったんですね。これは、実に便利で、この例は
'Rosaceae'.hash.abs -> 85969009 なのですが、(私のシステムの場合ですが)
Family.find('Rosaceae'.hash.abs)と書けるわけです。

なるほど。

Railsのテストで Fixtureで作ったデータを簡単に呼び出す方法

Class: Fixtures
Alternatively, you may enable auto-instantiation of the fixture data. For instance, take the following tests:

test "find_alt_method_1" do
assert_equal "Ruby on Rails", @web_sites['rubyonrails']['name']
end

test "find_alt_method_2" do
assert_equal "Ruby on Rails", @rubyonrails.news
end

In order to use these methods to access fixtured data within your testcases, you must specify one of the following in your ActiveSupport::TestCase-derived class:

* to fully enable instantiated fixtures (enable alternate methods 1 and 2 above)

self.use_instantiated_fixtures = true

* create only the hash for the fixtures, do not ‘find’ each instance (enable alternate method 1 only)

self.use_instantiated_fixtures = :no_instances

self.use_instantiated_fixturesの設定が必要。データが多いとパフォーマンスに影響があるみたい。

Railsの Fixtureでは関連のあるモデルを YAMLのラベルでも指定できる

Class: Fixtures
Add a few more monkeys and pirates and break this into multiple files, and it gets pretty hard to keep track of what‘s going on. Let‘s use labels instead of IDs:

### in pirates.yml

reginald:
name: Reginald the Pirate
monkey: george

### in monkeys.yml

george:
name: George the Monkey
pirate: reginald

ID自動生成した場合(YAMLにIDを書かないと981023448とか自動生成される)、どうやって関連付けるのかと思ったらラベルを指定すれば、いい感じに処理してくれる。
「pirate_id: 1」の代わりに「pirate: ラベル」という風に書く。

via Rails の fixtures の書き方を整理してみる

Railsの Fixtureの YAMLには Rubyのコードもかけるらしい

Class: Fixtures
Some times you don‘t care about the content of the fixtures as much as you care about the volume. In these cases, you can mix ERb in with your YAML or CSV fixtures to create a bunch of fixtures for load testing, like:

<% for i in 1..1000 %>
fix_<%= i %>:
id: <%= i %>
name: guy_<%= 1 %>
<% end %>

これは使えるかも

2010年8月23日月曜日

Rails 2.3では テストのassert_validは使えない

assert_valid in unit tests after upgrade to rails 2.3 doesn't work - Ruby on Rails: Talk | Google グループ
It was deprecated at 2.2.2
- "assert_valid is deprecated. Use assert record.valid? instead"

代わりに assert(object.valid?)しろと。まあ確かに文字数はそれほど変わらず、分かりにくくもない。むしろassert_validの存在が冗長だったのか。

既にあるテストに対してはassert_validヘルパを自作して対応。

PHPは 5.4へ

Annoucing PHP 5.4 Alpha 1 - Do You PHP はてな
2010/09/01にリリースぅ?

バージョン6の開発がポシャったPHPは、5.3の次は5.4になるみたい。
6になる予定だったものを元にするのかな。

jQueryの CSSセレクター記法の一覧

Selectors - jQuery API 1.4.2 日本語リファレンス - StackTrace
Selectorsは、要素を選択するためのjQuery表現です。 簡潔な表現で、DOM要素を取得したり、jQueryオブジェクトを生成することができます。

:contains(セレクタ)とか:has(セレクタ)とかすごいなあ。便利そう。

2010年8月20日金曜日

YUI3に Grids.cssが戻ってくる

Library Examples: CSS Grids
CSS Grids: Examples

Building Pages with YUI CSS Grids

* Using Units: Each unit has a className that provides its percentage width.
* Fixed Page Template: This is a template for creating fixed-width layouts.
* Fluid Page Template: This is a template for creating fluid layouts.

YUI3リリース直前にDeprecatedになって以来、ファイル自体は存在しているもののリファレンスページ等では無いものとして扱われていたGrids.cssがやっと(YUI3.2ぐらいで)復活するみたい。

YUI2のGirds.cssのように全体を#doc, #hd, #bd, #ftで分けたりしないで、あくまでもグリッドレイアウト専門になるようだ。
ページ全体のセンタリングすらしないとは。ページ全体のセンタリングは body{ margin: 0 auto }でいいじゃんということらしい。影響(問題)があるのはIE6未満だけ?

Reset系 CSSの本家?

CSS Tools: Reset CSS
If you want to use my reset styles, then feel free! It's all explicitly in the public domain (I have to formally say that or else people ask me about licensing). You can grab a copy of the file to use and tweak as fits you best

有名みたい。YUIのReset.cssと違いはあるのかな。

2010年8月19日木曜日

ここの画像(アイコン等)素材はけっこういいかも

ここ → Free Images from Ushikai WEB

可愛らしい感じでいい感じ。

商用サイトでもFreeで使えるみたい。ただし受注したWeb制作の場合はダメ?

Passenger (mod_rails)と Apacheの mod_deflate (gzip圧縮)は共存できるらしい

mod_deflate and mod_rails? - Phusion Passenger Discussions | Google グループ
> Quick question: do mod_deflate and mod_rails work together fine? Or
> are there any known problems/caveats with this combo?

There are no known problems.

Phusion社員からの回答?
.

Apacheの mod_cacheを使う場合の注意点

Apache の mod_cache で日記の高速化に挑戦してみた - まちゅダイアリー(2010-06-26)
PC, 携帯, スマートフォンで異なるキャッシュを返してくれる(PCでアクセスしたときに携帯用の画面が表示されることはない)のはいいんだけど、 PC の User-Agent なんてほとんどバラバラなんだから、実質的にキャッシュにヒットする可能性はほとんどないという状態。 ダメじゃん。

ダメじゃん。PCのみならUser-Agentを無視する設定にするのが常道なのかなあ。

Railsは同じ内容のページへの2度目以降のアクセスにはブラウザキャッシュを使わせるらしい

ricollab Web Tech Blog » StL
で、調べてみたところ、答えは response body 全体の MD5 ハッシュでした。

つまり、
  1. 1度目のアクセス:HTTP Response HeaderのEtagとして、Response BodyのMD5を付ける。
  2. 2度目以降のアクセス:ページ生成後、Response BodyのMD5を生成。HTTP Request HeaderのEtagと同じなら304 Not Modified。

なるほど、賢いかも。
ページ生成はしちゃってる訳で、DBアクセスとかも発生してる訳で、サーバリソースの節約にはなってないけど、それでもResponseのネットワーク転送量だけは節約できる。

これってApacheとかのWebサーバが実装しててもおかしくない機能だね。

postgresは Covering Indexによる高速検索ができないらしい

index-only (別名 index covering) - taediumの日記
tgkさんのとこで、PostgreSQLは「インデックスだけ見てデータは見ない」ということができないらしいという話があり、これが気になっていました。

ちょっとショック。


ところで、
ところで、「インデックスだけ見てデータは見ない」機能なんですが、一言でバシッと言えないとわかりにくいですよね。下の本ではindex-onlyと呼んでいます。教科書として使われている本らしいのでこれに倣えばいいよね。これからはindex-onlyと呼んでいこうと思います。(MySQLSQL Serverではindex coveringとかcovering indexとか呼んでいますけどね。)

名無しで扱われてることも多い。
Covering Index! Covering Index! Covering Index!

2010年8月18日水曜日

IEで 200 OKでない場合にもWebページを表示する方法

IEは404 Not Foundや403 Forbiddenなどの時に、IE独自のエラーページを表示してしまう。
でも513バイト以上の表示データがある場合、独自ページでなく送信されてきたページを表示するらしい。

Internet Explorerで出るエラー
(注) サーバが長いエラーメッセージ(513バイト以上)を出力する場合には、IEは簡易表示ではなく、サーバのメッセージを表示する仕様になっている(参考1、参考2)。AN HTTPDの場合には 512バイト以下のメッセージのときもあり、本来のメッセージが隠されてしまうことがある。


.

CSSで IEのボタンを立体的に見せる方法

IEのFilter、waveを使って立体的に - Domo-Domo
freqは波の数で、lightstrengthが光の強さ加減で

30~50ぐらいが丁度良かった。

透過とかグラデーションよりこれの方がシンプルでかつ見栄えが良い

DD_Roundiesは IE8で動かない

POSTORO
やってみるか

なんと。でもmetaでIE=7もなあ。

jQuery UIの buttonで角丸するには DD_roundies?

Achieving Rounded Corners in Internet Explorer for jQuery UI with DD_roundies | Filament Group, Inc., Boston, MA
jQuery UI is built upon a powerful CSS Framework, including round corners that utilize CSS3's border-radius property. Unfortunately, CSS3 border-radius is only supported by Safari and Firefox, leaving browsers such as Internet Explorer to gracefully degrade to square corners.

やってみるか

jQuery Cornerプラグインは jQuery UIの buttonに効かなかった

POSTORO
jQueryで角丸するならこれが一番メジャー?
JQuery Corner Demo

jQuery Corner Demo


なのかな?

a要素をbuttonにしたのとかには効いたけど、肝心のsubmitボタンなどに効かなかった。詳細は調べてない。
.

jQueryで角丸するならこれが一番メジャー?

JQuery Corner Demo
jQuery Corner Demo

なのかな?

ところでこのページ、JavaScriptファイルをgithubから直読みしてる。

IE9とその他のブラウザの 角丸(border-radius)の比較

IE9 Platform Previewを触ってみました-border-radius編その1 - いちてく
やっぱり、頑張りました!といっている丸角。IEBlogでも紹介されていましたが、全部の線種で試してみました。

おお、IE9は破線でも綺麗に角丸だ。

migrateで indexを作成する

Ruby on Rails : migration 機能リファレンス - WebOS Goodies
add_index(table_name, column_name, options)

検索用のインデックスを追加します。インデックスの名前はデフォルトで "<テーブル名>_<最初のカラム名>_index" になりますが、options に :name を指定することで任意の名前を指定できます。引数の意味は以下のとおりです。

現在(Rails2.3)の場合、indexの名前は "index_<テーブル名>_on_<列名>"になるようだ。

もうちょっと凝ったindexを作る場合、execute()でCREATE文を発行擦る必要がある。

Google Calendarとも連携できる jQueryのカレンダープラグイン

FullCalendar - Full-sized Calendar jQuery Plugin
FullCalendar is a jQuery plugin that provides a full-sized, drag & drop calendar like the one below. It uses AJAX to fetch events on-the-fly for each month and is easily configured to use your own feed format (an extension is provided for Google Calendar).

画面いっぱいに表示するカレンダー。formへの日付入力補助(Date Picker)とは違う。

postgresはテーブルを継承できるらしい

PostgreSQLでテーブルの継承 - 都元ダイスケ IT-PRESS
PostgreSQLには、テーブルの継承なんていう、とんがった機能があります。前衛的~。

created_atとかupdated_atとか登録/更新者IDとか登録/更新IPアドレスとか、ビジネスドメイン共通の決め事的な列がある場合には便利かもね。

2010年8月17日火曜日

Railsで blank?の反対は present?

お題目うぉっち:unlessのelseはわかりにくいのだ
そこで初めて知ったのだけど、blank? の反対の意味の present? というメソッドが導入されたらしい。

これはいい。
反対の反対は賛成なのだーってやらずに済む

2010年8月16日月曜日

Apacheの mod_rewriteのリライトルール定義

mod_rewriteの考え方。 - こせきの技術日記
* http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

を見ながら。

mod_rewriteのルールの書き方のまとめというかチュートリアルというか参考記事。
いつか参考にするかも。

ActionMailerの Viewで helperを使う方法

ActionMailerで、メールのヘッダもビューに書けるようにする。 - こせきの技術日記
ActionMailer::Baseを継承したモデル内で、

helper :application

と書くとApplicationHelperが有効になる。

ActionMailerはModelでありながらControllerのような。

ActionMailer + Gmailでプラグインが不要になったのは Rails2.2.1かららしい

ActionMailer::Base - APIdock
If you’re running Rails >= 2.2.1 [RC2] and Ruby 1.8.7, you don’t need plugin below. Ruby 1.8.7 supports SMTP TLS and Rails 2.2.1 ships with an option to enable it if you’re running Ruby 1.8.7.
 
2.2.1からは:enable_starttls_autoをtrueにすればTLSに対応するとのこと。


Rails 2.3.3以降では ActionMailer + Gmailでのメール送信にプラグインは不要みたい

Rails 2.3.3 + Ruby 1.8.7 + Gmail SMTP settings | Nutsmuggling
Unlike pre 2.2 Rails, no plugin is required. Not sure this setup works with Rails 2.2 though, never tried it.

手元のRuby1.8.7 + Rails(ActionMailer) 2.3.8でtlsmailとかsmtp_tls.rbとか無しでもGmailでメール送信できてしまって。
本当に大丈夫か調べたけどあまり情報がない。上記のブログでは大丈夫って書いてある。

ActionMailer::Base.raise_delivery_errors = true を入れとかないとエラーでもスルーしてしまうので入れといた方がよい?

ActionMailerで Gmailを使う

# Ruby Rails Gmail SMTP #
Update: For Ruby > 1.8.7 and Rails >= 2.2.2, you can simply specify 'enable_starttls_auto => true'. I put the following in 'config/initializers/actionmailer_gmail.rb'

このあたりが最新情報?

tlsmailの作者はruby 1.8系でsmtpにtlsを使う - zorioの日記みたい。

2010年8月13日金曜日

今どきのwill_paginateのインストール方法

まずconfig/environment.rbで使用gemとして定義する
(sourceの指定までは要らない?)
config.gem "mislav-will_paginate", :lib => "will_paginate", :version => "~> 2.2", :source => "http://gems.github.com/"

そしたらrakeでインストールできる(gem installと同じ結果になる)
rake gems:install

複数の環境でバージョン等のズレを防ぎたいなら、unpackの方がポータビリティが高いかも
rake gems:unpack


via POSTORO: mislav-will_paginateを config.gemで定義する方法






Rubyで翌月の日付を求める方法

Date - Rubyリファレンスマニュアル
self >> n

self から n ヶ月後の日付オブジェクトを返します。 n は数値でなければなりません。

こんな感じ
date = Date.new(2010, 1, 1)
date >> 1 # => 2010-2-1

31日まで無い月はこんな感じに前倒しになった
Date.new(2010, 3, 31) >> -1 #=> 2010-2-28




2010年8月12日木曜日

ActiveRecordの悲観的ロック

楽観的ロック、悲観的ロック - takihiroの日記
上記の例では、ターミナル 1 で sleep している間に ターミナル 2 の更新を実行しても、(1)、(2) の順に結果が出力されます。

ターミナル 1 が id: 1 の Book をロックしているため、ターミナル 2 は待たされます。

悲観的ロックはDBのロックなので、ロックが解除されるまで他の更新は待たされる。(タイムアウトしない限りは。)

ActiveRecordの楽観的ロックは例外を投げてしまう。まあ同時更新なんてないでしょう、とか、同時更新しようとしたら片方はやり直せばいいじゃん、とか、楽観的なケースで使える。

悲観的ロックは、同時に更新することはありえるし、もしそうなったときに更新できなかったらどうしよう嫌だなあと、悲観的なケースで使う。

Railsの database.ymlの pool

Rails 1.2.3 ~ 2.2.2 までの主な変更点のまとめ - Slow Dance
コネクションプーリングにより、Railsはコネクションプールを通じてデータベースリクエストを行います。(コネクション数の上限はdefaultで5。database.ymlで:poolを追加することにより設定可能)これにより複数同時実行ユーザがいる場合のボトルネックを解消します

デフォルトは5。

RPMforgeの PGP keyは CentOS5と4では違う

AdditionalResources/Repositories/RPMForge - CentOS Wiki
Install DAG's GPG key

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

これがCentOS5用。短縮URL?
CentOS4用のを書いてあるブログが多くてはまった。

Linuxの OSのバージョンを調べる方法

floatingdays: Linuxコマンド備忘録
# less /etc/redhat-release

* ディストリビューションのバージョンを確認する(Redhat系の場合)

すぐ忘れる。なかなか見つけられない

2010年8月11日水曜日

CentOSに Railsをセットアップする

CentOSにRails: Rails開発日記
レンタルサーバが CentOS4。そこにRailsをインストールしたときのメモ。
まず、ruby

レンタルサーバにはyumでruby1.8.1が入っていたので、とりあえずuninstallして1.8.7をインストール

checkinstallを使わないやり方。readlineとかの対応も

Rubyの文字コード変換ライブラリ NKFのオプションパラメータ

Rubyist Magazine - 標準添付ライブラリ紹介 【第 3 回】 Kconv/NKF/Iconv
NKF は変換を converted = NKF.nkf( option_string, string ) といった文法で行います。オプションを文字列として与える方法は複雑で覚えづらいものではありますが、その一方で Kconv を使う場合に比べてはるかに複雑な処理を行うことが可能となります。なお、オプションは NKF モジュールのベースとなっている nkf のオプションをほぼ全て使うことが出来ます。

インプットの文字コードは指定した方がいいらしい

CSVダウンロードでの header=presentとは

text/csvについて - Torisugari の日記
つまり、CSVファイルの一行目がヘッダであると見なすためには、mimeの指定を"text/csv; charset=utf-8; header=present"にしろ、ということです。

そういうことか。HTTP Response Headerはファイルと一緒に保存するわけではないので、ダウンロードをしたアプリにしか分からない情報。Excelで開く分には関係ない話か。

Railsで CSVの文字コードを Shift_JISにする方法

Ruby on Rails Tips - CSV出力 - | Agenda Labs IT技術ブログ
NKFでutf-8のデータをShift_jisに変化し、文字化けを防ぎます

header=presentってなんだろう

Railsで FasterCSVを使って CSVダウンロードをする方法

FasterCSVによるCSVダウンロードサンプル1 - ろくでなし無職の勉強日記
ActiveRecordを継承したモデル、データベースのデータなんかをCSVでダウンロードするサンプル1です。

Rubyに標準で入っているCSVパーサーが遅いらしいので、FasterCSVというライブラリを使います。

こっちか

mislav-will_paginateを config.gemで定義する方法

Rails 2.1.0のconfig.gemに失敗する件 - idesaku blog
Rails2.1.0から、config/environment.rbでRailsアプリケーションが依存するgemを定義しておけるようになった。

:libが必要とのこと。:versionは必須なのだろうか?

Railsで必要な gemパッケージを明示的に定義する方法

Ruby On Rails ピチカート街道 - Rails 2.1・その10(gemの依存関係を明示的に指定) -

さて、こういう風に設定しておいて実際プロジェクトを実行しようとすると怒られます。

怒られるというのは、environment.rb に指定した gem がインストールされていない場合は、怒られます。

メモめも。

2010年8月10日火曜日

jQuery UIの Themeを簡単に切り替えて見せられる Widget

jQuery UI - Documentation: UI/Theming/ThemeSwitcher
Theme Switcher Widget

If you have a demo page using the jQuery UI CSS Framework, you can easily add our theme switcher widget to your page to show off a variety of themes. This is also very useful for development as it can reveal areas where your CSS is not quite flexible enough to be fully themeable using our framework.

To put a Theme Switcher Widget on any page, simply add a script tag referencing our plugin and call themeswitcher(); on any element to which you'd like to append the widget. Here's a code sample:

Bookmarklet版よりもスマートで良い。
WidgetはCSSで"posion:aboslut;top:0:right:0"とかした方が使いやすい場合が多い。

jQuery UIのトップページからこれを探しにくいのが難点。

ブログ アーカイブ

カテゴリー