2010年6月30日水曜日

サッカーのフォーメーションの図を作れるサービス

TextFormations | サッカーフォーメーション図作成ツール
このサイトは何?

* サッカーのフォーメーション図(HTML版 or 画像)が作成ができます。ブログに貼って使ってください。(掲載自由、連絡不要)
* ブログに貼られたフォーメーション図はYahoo,Googleブログ検索を通して自動的に当サイトへ登録されます。 もっと詳しく…

なんてニッチな。でも必要な人には便利そう。
.

Google Maps API v3に Overview Controlが追加される?

Issue 1470 - gmaps-api-issues - Add overview map control - Project Hosting on Google Code
Comment 11 by thor.mitchell, Today (21 minutes ago)

(No comment was entered for this change.)

Owner: thor.mitchell

thor.mitchellさんがこの問題のオーナーとして登録されたらしい。ということはいよいよ着手か?!
.

postgresで日付またはタイムスタンプの不要部分を切り捨てる方法

日付/時刻関数と演算子
date_trunc関数は概念的に数値に対するtrunc関数と類似しています。

date_trunc('field', source)

sourceは、データ型timestampもしくはintervalの評価式です(データ型dateとtimeはそれぞれ自動的にtimestampもしくはintervalにキャストされます)。fieldは、入力値の値をどの精度で切り捨てるかを選択します。戻り値の値は、選択されたもの以下をゼロに設定(日と月の場合は1に設定)した、全てのフィールドを持つtimestampもしくはinterval型です。

これは便利そう。他のRDBMSにもあるのかな
.

2010年6月29日火曜日

Google App Engineは 1分間に8通しかメールを送信できない制限があるらしい

ヤドリギネット: Google App EngineでWebサービスを作ってみての ”実際のところ”
GAEの無料リソースだとメールを1分に8通までの送信にしないといけない

GAEを無料リソース内で利用する場合、メール送信は1分に8通までという制限がある。AmazonのAPIは1秒に1回以上のアクセスを多少しても大丈夫だったりするけど、GAEは速攻で例外になるので注意。

そうなのか。SPAMに利用されないための対策?
.

ワイルドカードのサーバ証明書が使えないケース

第9回 わかりにくいSSLサーバー証明書のライセンス | レンタルサーバー完全ガイド
※「ワイルドカード」証明書では、「www.」がないhttps://domain-keeper.net/では使えなかったり、https://www.sub.domain-keeper.net/などサブドメイン部分が2つ以上の場合はブラウザやそのバージョンによっては警告が表示されたりするなどと、いくらかの制限があるので、購入前によく確認しよう。

やっぱり使えないんだ。
.

ワイルドカードのサーバ証明書が安い

ジオトラストSSLサーバー証明書 RapidSSL ワイルドカード
ジオトラストSSLサーバー証明書 RapidSSL ワイルドカード

ジオトラストSSLサーバー証明書 RapidSSL ワイルドカード が格安 価格 19,950 円(1年間)複数年は更にお得。ジオトラストSSLサーバ証明書が最大71%OFF、ベリサインSSLサーバ証明書が最大53%OFF

2万円以下!もっと安いのあるかな?
.

2010年6月28日月曜日

Topsy Retweet Buttonが表示されないエラーの回避方法

topsyのRTボタンが表示されない | Webデザイン フリーフォント Prismtone
3日くらい前から急に、topsyのRTボタンが表示できなくなり、
困っていたところ、一向に直らない上、他のサイトで表示されているのを見てしまったので、
原因をさがしていたところ、どうやら、titleに日本語が入っていると表示できないようになったみたい。

マルチバイト文字が原因か!URLエンコードしてないのかな?


他にも困ってる人が...
・林檎塾: RTボタンTopsyが表示されない事案が発生中
・リンゴが好きでぃす♪:  [about]retweetボタンが表示されないよぅ…
.

YUI 3の grids.cssの生ファイル

メモメモ。
http://yui.yahooapis.com/3.1.1/build/cssgrids/grids.css

クラスに"yui3-"というプリフィクスが付いているので、YUI2とも共存できる?

正式発表される前にクラス表記の形式が変わるかもしれないので、その点には注意。
(YUI3.0がベータから正式版になって以後はGrids.cssはまだオーソライズされていない。)

2010年6月25日金曜日

アメリカのAmazon.comでのアフィリエイト

Amazon.com(米国版)アソシエイトに登録
商品リンクやバナーの取得も日本と同じで、Amazon.comの上部にツールバー(site script)が出たりしますし、HTMLタグ自体は英語や日本語で変わることもないので、馴染みやすいと思います。

amazon.comで作った機能を多言語かしてamazon.co.jpなどでも使っている感じかな?
.

2010年6月24日木曜日

jQueyの whichとは

数字しか書けないinputとか英単語しか書けないinputとか - とっくりばー
最初は軽く考えてた。jQueryではkeyCodeとcharCodeを合わせた「which」っていうプロパティが使えるから

キーイベントでキーコードがセットされるEventオブジェクトのプロパティは、IEだとkeyCode、FirefoxだとcharCode、Chromeだと両方。
それをまとめて扱えるようにしたのがwhich。
(昔のSafariはkeyCodeでもcharCodeでもなくwhichだったとどこかに書いてあった。)
.

jQueryでキーイベントを拾う

keypress(fn) - jQuery 日本語リファレンス
各要素のkeypressイベントに関数をbindします。
keypressイベントは通常、キーボードのキーが押された際に呼び出されます。

$(xxx).keypress(function(event) { ... })で、String.fromCharCode(event.which)すればOK!

Twitter APIの Basic認証の停止が 8/16まで延びたらしい

Twitter、W杯の影響でAPIのベーシック認証廃止を延期 - CNET Japan
8月16日から段階的にAPIコールの回数制限を減らし、8月31日からはベーシック認証によるすべてのAPIコールに対してHTTP 403エラーを返すとしている。

知らんかった。影響ないが
.

postgresで 最後にvacuumや Analyzeした日時を調べる方法

Studio ODIN - blog風小ネタ集 > PostgreSQL の VACUUM の動きを確認する
情報は pg_stat_all_tables カタログから取得します。

db=# SELECT n_live_tup,n_dead_tup,last_vacuum,last_autovacuum
db-# FROM pg_stat_all_tables
db-# WHERE relname = 'vacuum_test';

pg_stat_all_tablesからSELECTすれば見られるんだ
.

2010年6月23日水曜日

nmbd/nmbd_namequery.c:query_name_responseとかいうメッセージ

Linuxのmessageログにこんな感じのログが大量に吐かれていた。
nmbd/nmbd_namequery.c:query_name_response(xxx)
query_name_response: Multiple (x) responses received for a query on subnet xxx.xxx.xxx.xxx for name xxxxxxx<1d>.
This response was from IP xxx.xxx.xxx.xxx, reporting an IP address of xxx.xxx.xxx.xxx

調べてみると、Windowsネットワークのマスターブラウザーの検索で、複数のレスポンスが返されることが原因らしい。

[PATCH] query_name_response: Multiple responses received for a query - Unix Linux Forum - Fixunix.com
[2005/02/20 04:14:56, 0] nmbd/nmbd_namequery.c:query_name_response(101)
query_name_response: Multiple (2) responses received for a query on subnet
172.16.67.176 for name MYDOMAIN<1d>.

これを参考にやってみたら、確かに複数同じのが返された。
異常ではない、でいいのかな?
ログが埋もれてしまうのが困るが...
.

Firebugの「接続」タブで「ブラウザキャッシュを無効化」すると

Mozilla Firefox で If-Modified-Since ヘッダが飛ばない件 - Open MagicVox.net
次に設定項目名を browser.cache. でフィルタすると、以下の項目を発見できる。

browser.cache.disk.enable
browser.cache.memory.enable

 これらが両方とも false になっていたためキャッシュが動作していなかった様子。

上記のプロパティが両方ともfalseになった。
FirebugはFirefoxのプロパティを変更してたんだ。
.

mod_deflateは HTTP Request Headerの Te: gzipに対応しているか?

FFTT : 自由研究:フィード巡回ボットのHTTPリクエスト観察日記
何よりも気になることは、「Accept-Encodingを使わずにApacheが圧縮したレスポンスを返してくれるのかどうか」です。Apacheでは、mod_deflateを利用することで、”Accept-Encoding: gzip”なとどしたリクエストに対して、gzip圧縮したレスポンスを返すことが出来ます。このmod_deflateは、”Te: gzip”としたリクエストについても同様に処理してくれるのでしょうか?もしくは、mod_deflateとは別の転送コーディング用のモジュール(フィルタ)などが用意されているのでしょうか。

またtelnetで実験した。
対応していなかった。(圧縮しないコンテンツが返される。)
.

mod_deflateは Accept-Encodingが gzipでないと圧縮しない

mod_deflateがHTTP Request Headerを判断してコンテンツを圧縮しているかどうか、telnetでテストした。

telnetでのアクセスについては下記が参考になった。

apache に mod_deflate を導入 | Linux LABS
GET / HTTP/1.1
Host: localhost
Accept-Encoding: deflate,gzip

結果としては、HTTP Request HeaderでAccept-Encodingにgzipを含む場合のみ圧縮された。

Accept-Encoding: deflate,gzip → 圧縮する

Accept-Encoding: deflate → 圧縮しない

Accept-Encoding: gzip → 圧縮する

Accept-Encoding: hogehoge,gzip → 圧縮する


Webページの圧縮具合や有効期限を調べてくれるサービス

Analysis Tools for Your Site
HTTP enhancements can be hard to visualize, and not everyone wants to download a trial. Here are some useful tools to test your Web site or application for basic "best practices" in IIS security, performance and user experience. See how Port80 Software tools get the job done.

自分でHTTP Headerを見ても同じだけど、見た目に分かりやすい。(HTTP Headerの読み方に不安があるというのもあるが。)
.

svnが平文でパスワードを保存する問題

Subversion FAQ(in Japanese)
うぎゃー! 僕の Subversion クライアントが、パスワードを平文でディスク上にキャッシュしているのを見つけちゃった! うわぁ!

はい、落ち着いて。まずは、深呼吸を1回。

「うぎゃー!」とは名訳だ。原文はどんなだろう。(Oops!とか?)
1.6以降ではgnome-keyringが使えるらしいんだが日本語での情報がほとんどない。
.

Linuxでコマンド履歴にパスワードを残さない方法

gnome-keyring を利用してコマンドライン上のパスワードを置換する - daily dayflower
この手のコマンドをふつうにシェルから実行すると,ヒストリに残ったりしていやな感じです。シェルから実行するのではなくとも,自動実行のためにスクリプト等を書くと,どうしてもそのスクリプトに生パスワードが残ることになります。

なので,パスワードを gnome-keyring に保管してもらうことにして,保管したパスワードを使ってコマンドを実行できるようなプログラムを書いてみました。一度(ログイン時などに)keyring を解除すれば,その後パスワードを聞かれることなくプログラムを実行できるというわけです。ssh-agent みたいな感じです。

これは便利そう
.

2010年6月22日火曜日

OAuth 2.0とは

ここの説明(?)が一番分かりやすそう。


OAuth 2.0の概要 - r-weblife
Eran がエントリ書いてました。

Introducing OAuth 2.0 « hueniverse

今回の内容は翻訳ではありません。

読みながら感じたことを書き連ねたものです。


OAuthは「おーおーす」じゃなくて「オースッ!」と読みます。
.

さくらインターネットがクラウドを始めるらしい

さくらインターネット、クラウド用データセンターを北海道石狩市に建設。規模はいまの全さくらデータセンター合計の約2倍 - Publickey
データセンターの冷却には、寒冷な北海道の気候を活かして外気冷房を全面的に導入し、低PUE値、低環境負荷を実現。さらに石狩市では風力や雪氷などの自然エネルギーを利用できる可能性があり、将来のデータセンター拡張の際には、さらなる環境性能の向上を目指して、自然エネルギーの検討を行うとしています。

日本国内ならやっぱり涼しい北海道が最適なのかなあ。青森とかでもいいかもね。
ディザスター対策としてバックアップを九州あたりに?
.

2010年6月21日月曜日

自動翻訳かと思ったら...

Ian's Blog - Ian Lewis
Ian Lewis is a web developer living in Tokyo Japan. His current interests are in Django, python, alternative databases and rapid web application development. About Me...

東京在住とのことなので、自分で翻訳してるのかな。
たしかに自動翻訳にしてはよくできすぎてるので、頑張って日本語化してるんだろうなあ。すごいなあ
.

url4.euって

もしかして、「URL for YOU」って読むのかな?

URL4.eu
"short URLs for Rss2Twitter.com, twitter feeds"


.

sendmailは起動時の名前解決をキャッシュしてしまう?

「sendmailは昔からそういうもんですね。/etc/resolv.confの中を覚えてる。」の調査 - りをじの日記
/etc/resolv.confはres_init()で読み込まれるので、デーモンが再起動されない限り、起動時のresolv.confの情報が使われるわけだね。

なんじゃそりゃー
まあresolv.conf変えることはほとんどないから効率的といえば効率的か。
resolv.conf変えたらサーバごと再起動すべきということか。
というかpostfixかqmail使うべきか。
.

無償版のZend Server

Zend、PHPアプリサーバ「Zend Server」をリリース - @IT
なお同社は同時に、無償版の「Zend Server Community Edition」もリリースしている。商用版に比べると、アプリケーションモニタリングや診断ツール、ページキャッシング機能が省かれており、開発者や非クリティカルアプリケーション向けという。

そんなに省いたら何が残るんだろう...?
.

SELinuxが有効だと PHPは TCP経由で PostgreSQLに接続できない

ApacheとPostgreSQLを別サーバで動かしていて、pg_connect()ではIPアドレスを指定して接続したい。pgAdminやpsqlなら接続できるのに、PHPからはpg_connect()できない。

ふとSELinuxを無効にしたら接続できるようになった!


SELinuxを有効にしたままきちんと設定するなら、下記ページが参考になりそう。

CentOS 5 PHP Setting / CentOS5 / TechNote / The Sixwish project
ブラウザからアクセスしてみてください。恐らく下記のようなメッセージが表示されると思います。

SQLSTATE[08006] [7] could not connect to server: Permission denied Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?

2010年6月18日金曜日

messageログの network unreachable resolvingの解消方法

三太郎ノート » Blog Archive » network unreachable resolving
BINDが「network unreachable resolving」というログを頻繁に出していた。

ちょっと気になったのでぐぐってみると、IPv6に関係しているらしい。
それもyum で Centos5.3 から 5.4 にupdateした場合の症状のようだ。

IPv6かー
.

2010年6月17日木曜日

rsyncでリモートサーバへのログインをパスワードでなく SSH鍵を使う方法

Command Technica:rsyncを使った熟練者レベルのバックアップ (3/3) - ITmedia エンタープライズ
rsyncによって接続が行われるたびにパスワードを訊かれたくなければ、パスワードではなくSSH鍵を使ってログインするようにrsyncを設定すればよい。

ふむふむ。やってみよう
.

Twitterの @Anywhereとは

ここの説明が一番分かりやすい。


Twitter 新 API のドキュメント「Getting Started with @Anywhere」日本語訳 - WebOS Goodies
先日行われた Twitter の開発者向けイベント「Chirp」にて、 @Anywhere という新 API が公開されました。自分のサイトに、 JavaScript のみでユーザー情報の表示やつぶやきの投稿、ユーザー認証などの機能を実装できる、とても興味深い API です。

wgetしたファイルをそのまま捨てる方法

WWW サーバを監視する - いますぐ実践! Linuxシステム管理 / Vol.069
wget は、本来ダウンロードが目的ですが、-O オプションを用いて、 出力ファイルを /dev/null に指定することで、 ダウンロードしたファイルを保存せずに確認だけ行わせています。

wget http://example.com > /dev/null だとダメだった。-Oオプションを使ったら大丈夫だった。
.

2010年6月15日火曜日

postgresでシーケンスの現在の値を SELECTする方法

CREATE SEQUENCE
シーケンスを直接更新することはできませんが、以下のような問い合わせは可能です。

SELECT * FROM name;

これを使用すると、シーケンスのパラメータと現在の状態を確認することができます。 中でも、シーケンスのlast_valueフィールドは全てのセッションで割り当てられた最後の値を示します (もちろんこの値は、他のセッションのnextvalの実行により、表示された時点で既に最新ではない可能性があります)。

CURRVAL()は、同一セッション内でNEXTVAL()してないと取得できないので使えない
.

postgresでテーブルのデータを dump

pg_dump
pg_dump -- PostgreSQLデータベースをスクリプトファイルまたは他のアーカイブファイルへ抽出する


通常はこんな感じ?(-aオプションはデータのみのdump)

pg_dump -a -t table_name -U user_name db_name > file_name.dump

Blogger (blogspot.com)に Topsyの ReTweetボタンを設置する

下記が参考になる。

Blogger に Twitter の つぶやく ボタンを設置 | すぐに忘れる脳みそのためのメモ
Topsy を使って site 検索をして、ブログに対してつぶやかれた内容を見ることに使える。 ( ex. site:jutememo.blogspot.com – Topsy )

最低限やることは2つ。
  1. レイアウトの要素追加で、TopsyのJavaScriptを読み込むHTMLを追加
    (ページ最下部でasync & deferにするのがよいと思う)
  2. HTMLの編集でウィジェットを展開して、各エントリに<div class="topsy_widget_data">要素を入れる
    (h3タグの最初にfloat:rightさせるのが良さそう。)
@リプライ先とか見た目を変えるなら設定が必要。
.

2010年6月14日月曜日

PHPの pg_connect()で sslmodeとして指定できる値

PHPのマニュアルには明記されていないが、コメント欄にこう書いてあった。

PHP: pg_connect - Manual
The values accepted by pg_connect's sslmode argument are: disable, allow, prefer, require

色々なサイトを調べたら、確かにこの4つは指定しているサンプルがあった。
.

2010年6月11日金曜日

Google App Engineの障害時のリカバリ

Google App Engine Unapplied Writes FAQ - Google App Engine - Google Code
What is an unapplied write?

Unapplied writes are writes to the App Engine Datastore that did not get replicated from the primary to the secondary Datastore. Unapplied writes do not impact the transactional consistency and have not corrupted application data. You can think of them as causing the mirror image between the primary and secondary Datastore to be out of sync.

こんなのあったんだ
.

2010年6月9日水曜日

Apacheの mod_cache使用例

参考に。

mod_proxy_balancer + mod_disk_cache on Apache 2.2.3 - 積み重ねた日々
以下の例では、images/ と icons/ 以下のコンテンツをディスク上にキャッシュすることになります。またキャッシュの有効期限は1日に設定してあります。


.

かんばん方式とは

最近盛り上がってきた「かんばん」、ソフトウェア開発における「かんばん」(Kanban)とは何か - Publickey
かんばんの効果とは、このかんばんを模した画面に書かれているように「仕事のみえる化」「仕掛かりを減らす」「流れを見えるようにする」ということ。このサイトは英語ですが説明がとても簡潔で分かりやすいものになっています。おすすめです。

なるほど分かりやすい
.

2010年6月7日月曜日

Amazon Product Advertising APIのキャッシュ期間の制限

利用規約で制限されていた。

Product Advertising API
(n) お客様は、画像で構成される商品関連コンテンツを格納またはキャッシュしてはいけませんが、画像で構成される商品関連コンテンツへのリンクを、24時間まで格納することができます。お客様は、画像で構成されていないコンテンツを、データキャッシュの目的で、24時間まで格納することができますが、それをした場合は、その後直ちに Product Advertising API にリクエスト送信を行うか、または新しいデータフィードを取り込み、お客様のアプリケーション上の商品関連コンテンツを刷新することにより、商品関連コンテンツを直ちに刷新し、再表示しなければなりません。別途当方より通知されない限り、お客様は、個別の Amazon Standard Identification Number (以下、「ASIN」といいます)を、本ライセンス契約の終了まで、期間の制限なく格納することができます。

非常に分かりづらいが、
  • 画像 → キャッシュ禁止
  • ASIN → 無期限にOK
  • その他 → 24時間まで
ということ?
.

Googleの プログラム言語Goの名前の由来に気付いた

Google、C/C++に代わる言語「Go」をBSDライセンスで公開 - スラッシュドット・ジャパン
日本語処理はプログラム言語開発の上でマイルストーン的な何かなのでしょうか?それともGo開発者の皆様が日本萌え?

C(シー)の次だから、ゴーなのか。4→5

次はRockか!
.

postgresの nextval()

シーケンス操作関数
nextval

シーケンスオブジェクトをその次の値に進めその値を返します。これは自動的に処理されます。 複数のセッションが同時に nextval を実行したとしても、それぞれの工程は個別のシーケンス値を間違いなく受け取ります。

シーケンスをUpdateして、Update後の値を返す
.

2010年6月3日木曜日

pg_dumpの -Dオプションとは

pg_dump
-D, --attribute-inserts

データを明示的にカラム名を付けた INSERT コマンドとしてダンプします。これはリストアをとても遅くします。

--attribute-insertsオプションの短縮形らしい。
最新のマニュアルにはこの短縮形は載っていない → pg_dump
.

PHP 5.3では、クラスでなくても constで定数を定義できる

構文 - PHP 5.3 日本語マニュアル
define() 関数を使用することにより、 定数を定義することが可能です。PHP 5.3.0 以降では、 クラス定義の外部で const キーワードを使って定数を定義することもできます。

知らなかった。defineがいらなくなったのか
.

postgresでタイムスタンプから任意の部分だけを取り出す方法

postgresでタイムスタンプから任意の部分(例えば年だけ、日だけ、時だけ)を取り出すにはEXTRACT()を使う。


日付/時刻関数と演算子
9.9.1. EXTRACT, date_part

EXTRACT(field FROM source)

extract関数は、日付/時刻の値から年や時などの部分フィールドを抽出します。sourceはtimestamp型、time型、またはinterval型の評価式でなければなりません(date型の式はtimestamp型にキャストされますので、同様に使用可能です)。fieldはsourceの値からどのフィールドを抽出するかを選択する識別子もしくは文字列です。extract関数はdouble precision型の値を返します。以下に有効なフィールド名を示します。

EXTRACTの方が正式で推奨されているようだが、でもDATE_PARTの方が覚えやすい
.

2010年6月2日水曜日

Gmailでショートカットキーを有効にする方法

キーボード ショートカット - Gmail ヘルプ
ショートカットを有効にするには、[設定] をクリックして、[ショートカット] の横のオプションを選択します。

まずは設定か!
「?」がうまく使えない...?
.

2010年6月1日火曜日

Google Chart APIは実は HTTPSでも動作するらしい

Charts over HTTPS - Google Chart API | Google グループ
Alternatively, URLs like:

https://www.google.com/chart?cht=lc&chs=200x125&chd=s:helloWorld

seem to work just fine. Are we allowed to simply use the URL to refer
to the chart?

動作するURLのドメインは chart.apis.google.com ではなく、上記のように www.google
.com らしい。

でも、この使い方はやらないで欲しいそうだ。(上記リンク先参照)

PHPでは DIRECTORY_SEPARATORはほとんど使う必要が無い

Portable PHP code: DIRECTORY_SEPARATOR is not necessary | AlanHogan.com
Well, as Christian on php.net pointed out and the guys at Web Design Forums confirmed, that’s completely unnecessary. As long as you use the forward slash, “/”, you’ll be OK. Windows doesn’t mind it, and it’s best for *nix operating systems.

そうそう。たまに丁寧にDIRECTORY_SEPARATOR使う人いるけど、PHPはWindowsでも"/"(フォワードスラッシュ)でファイルパスをかけるから、大抵の場合はわざわざDIRECTORY_SEPARATORを使う必要が無い。

例外としては、exec()とかでコマンド書くときとかかな。WindowsとLinuxで(パス区切り文字以外)共通のコマンドを書ける場合も少ないだろうけど。
.

postgres日本語ドキュメント(最新版)

PostgreSQL 8.4.4文書
PostgreSQL 8.4.4文書
PostgreSQLグローバル開発グループ

Googleで検索すると古いマニュアルがたくさんヒットしていつも困る。最新の日本語マニュアルはここみたい。
.

JavaScriptによる URLエンコードの比較表

URIエンコード(URLエンコード) | Diaspar Journal
本稿では RFC 2396 を参照して「記号文字」のURIエンコードがどのようにあるべきかを確認します。 そして、これに対応する形で JavaScript の3つの関数(escape, encodeURI, encodeURIComponent) によるエンコード結果を表にまとめます。

encodeURIComponent()使っとけばいいのかな。encodeURI()の使いどころが未だに分からない
.

ブログ アーカイブ

カテゴリー