2012年7月31日火曜日

google検索

パソコンを複数所有していますが、google検索で、違和感があり、なんだろうと思って試してみると、同じキーワードを使っているのに、検索結果が異なりました。

検索して、閲覧したページを、上位に表示するアルゴリズムがあるのかもしれません。

2012年7月26日木曜日

ブラウザによるDateの違い

ブラウザによる、Date型の扱いの違いには、頭を悩ませています。
例えば、ブラウザにより、下記のコードは動いたり、動かなかったりします。

var str = '2012-07-23';
var d = new Date(str);

対策として、
if(d == 'Invalid Date'){
  var s = str.replace(/-/g, '/');
  d = new Date(s);
}

を付ければ、それなりに動きます。
しかし、時差への配慮が異なるため、d.getTime()は、ブラウザにより、異なる値になります。

結局、Date型に、文字列表記の時間を与えるのは、混乱の元だと考えました。
文字列から、年、月、日などを抜き出し、それぞれを、setYear、setMonthなどで設定するのが、一番です。

2012年7月22日日曜日

カラーレーザープリンタ OKI C310dn


カラーレーザープリンタ OKI C310dn を、1ヶ月ほど使ってみたので、その感想。

・両面印刷は便利

インクジェットの両面印刷を使ってみたことがありますが、インクを乾かす時間が長く、両面印刷では、通常の印刷より、かなり長く掛かりました。
レーザープリンタでは、インクを乾かす時間がないため、とても、両面印刷が速く、実用的です。
また、インクジェットでは、インクが紙に染みこむため、裏からも表の印字が見えてしまい、読みづらい印刷になっていました。特に、写真の裏に、文字を印字した場合は、かなり、見えにくくなりました。
レーザープリンタでは、インクが紙に染みこまないため、裏側の文章や写真が見えにくく、両面印刷の印字品質が高くなります。
C310dnの両面印刷を試して、買い換えた意味があったと喜んでいます。


・手差し印刷

以前、使っていたレーザープリンタでは、手差しの機能はあったものの、紙の挿入が面倒で、使いませんでした。
C310dnは、紙を置くだけで、簡単に印刷できるため、例えば、いつもは、トレイで新品の紙を使い、たまに、不要用紙の裏に印刷するために、手差しを使うという使い方ができると思います。
実は、やってみて、あまり、便利さを感じなかったので、このような言い回しになりました。印刷するときに、プリンタドライバの設定で、トレイか手差しかを選択することになりますが、その設定を忘れて、つい、いつも通り、トレイから印字してしまいました。こんなことなら、最初から、トレイに必要分の不要用紙を入れた方が簡単だと、そのように使っています。

手差しの便利さは、封筒や、はがきなど、A4以外の紙を使うときに、発揮されると思います。
以前のレーザープリンタでは、手差しの面倒さと、紙の排出に問題があり、仕様的には、封筒印刷が可能でも、実際には、封筒が折れ曲がったり、詰まったりして、実用的ではありませんでした。
C310dnでは、背面からの排出が可能なため、封筒にも問題なく印字できました。レーザープリンタなら宛名が水に濡れても、にじまないため、これは良いと思っています。
課題は、裏面に、何かを印字しようとする、つまり、2度、印刷すると、封筒にしわがより、あまり、よくありません。これは、レーザープリンタでは仕方のないことかもしれません。

C310dnの手差し機能の、やや面倒なところは、紙を換えるたびに、プリンタの方で、サイズの設定を行わなければならないところです。パソコン側の紙の設定と、プリンタ側の設定が異なると、エラーで印字されません。パソコン側の設定を優先してくれれば、楽なのですが、メーカーでは、そのようにすると、問題が発生すると考えたのかもしれません。昔、使っていたインクジェットでは、紙のサイズの設定を間違えると、プリンタ内部が、インクで汚れて、大変でしたから。
このあたりは、なにか、良い設定でもあれば良いのですが。


一ヶ月、使ってみて、コストパフォーマンスの良さに、満足しています。
若干、音がうるさいところがありますが、オフィスなら問題ないでしょう。



A4カラープリンタ COREFIDOシリーズ)OKI(沖データ) C310DN

2012年7月19日木曜日

firefox 14

firefox 14に更新されました。
13では見ることができたfacebookのページが、14では見ることができなくなりました。
URL入力部分に、日本語が含まれる場合に、不具合があるのではないかと思います。

と書いたところ、今は表示されました。
キャッシュの問題だったのでしょうか。

google検索、変革の時


googleの検索結果ですが、最近は、上位に無意味なサイトが出てきて、困るほどでないにしても、なんだかなと感じています。

無意味なサイトとは、商品とは、全く無関係な話に、無理矢理、話をこじつけて、ブログらしく見せているアフィリエイトサイトです。
病院で、駅で、誰それが話していたなど、適当な、なんにでもあてはまるような話を作り、商品へのリンクを貼っています。
機械的に、ストーリーはできていて、商品名を入力すれば、それが話の中に入るようになっているのだと思います。

いずれ、このあたりも、googleの内部ルールの変更で改善されると思います。


しかし、問題の根本は、知りたい情報にたどりつく方法だと思います。
検索は、今のままで良いのか。たぶん、数年後には、違う手段が主流になるような気がします。

2012年7月14日土曜日

facebookのイベント時間の取得


facebookのイベント時間の取得方法が、また、変更されたようです。

昨日まで、
・昔、作ったアプリでは、FQLに時間を与える場合、UNIX時間を指定する必要がありました。
・最近、作ったアプリでは、文字列(2012-07-12など)を指定する必要がありました。


アプリを開発用と公開用に分けて、開発用で試してから、ソースを公開用に移すようにしていました。イベント時間の取得の違いにより、同じソースでも結果が異なることから、公開用のアプリを作り直しました。開発用の方が新しく、それに合わせないと、面倒だからです。一時期、アプリのIDを使って、イベント時間の取得処理を分岐させていましたが、facebookのイベント時間の取得は、ころころ仕様が変わるため、公開用で、動作を試すわけにもいかず、仕方なく、新しい仕様に統一しました。


今日、また、アプリが動かなくなり、確認してみると、また、仕様が変わったようです。
昔の仕様に戻されたようです。

2012年7月13日金曜日

Event Calendar Facebook


facebookのイベントがカレンダー表示されるようになりました。

カレンダー表示されないことに、不便さを感じ、「Event Calendar」というアプリを作ったので、複雑な心境です。

Event Calendar」アプリの方は、自分が作ったイベントや招待されたイベントを表示するほか、友人が招待されているイベントもカレンダーに表示できる点が違います。
自分には、少しの招待しかなくても、周りには、たくさんのイベントがあることが分かります(笑)

また、このアプリは、facebookページのタブに導入する機能も兼ねていて、facebookページのタブに導入した場合、facebookページに関連するイベントを表示するのに利用できます。
例えば、富山に関するイベント情報を発信するfacebookページでは、このアプリを導入して、管理人はもちろん、訪れた人が、イベントを記載して、告知に利用しています。


イベントカレンダー(富山)

2012年7月12日木曜日

Windows update KB2686509 が失敗


WindowsXpで、Windows update KB2686509 が失敗して困っています。

キーボードレイアウトを変更していると、失敗するそうです。
私の場合、VMwareの仮想OSで、この問題が発生しています。
ホスト側では、英語キーボードレイアウトに変更し、さらに、Atokで、キーのカスタマイズを行っているせいで、ゲストOS側では、どのようにキーのレイアウトを変えていたのか、さっぱり覚えていません。
キーボードレイアウトを変更するソフトでは、変更していないと表示され、元に戻せない状態です。

マイクロソフトがKB2686509の問題を解決してくれるのを待っていましたが、対応してくれる気配がないので、仕方なく、この面倒な作業を行いました。

AXキーボードドライバに変更していたので、英語キーボードドライバに戻しましたが、Windowsの更新に失敗。

キーボードレイアウトを変更していたのかと調べましたが、変更していないようでした。レイアウト変更ソフトで、初期状態に戻す(本当に戻ったのかは不明)作業を行ってみましたが、結局、Windowsの更新に失敗。

Atokを使って、レイアウトを変えていたのかと、IMEを変えてみても、失敗。


結局、あきらめました。
長年の更新の蓄積が、不具合を誘発しているのでしょう。
やはり、Windowsは、定期的にクリーンインストールしないと、正常に動作しません。

2012年7月10日火曜日

facebookのイベント時間のずれ


同じプログラムでも、APIで取得するイベントの時間が異なることから、Graph APIエクスプローラを使って調べてみました。

結果として、facebookが提供しているツールを含め、
古いアプリでは、時差を含まないイベント時間が返ってきますが、
新しく登録したアプリでは、時差を含むイベント時間が返ってきます。

アプリの登録が新しいか、古いかで、プログラムを変えないといけないとは、困りました。

2012年7月9日月曜日

ISO 8601 時間への対応


ISO 8601による時間の表記は、2012-07-31T08:00:00+0900 のようになります。
しかし、全てのブラウザが対応しているわけではありません。

Firefox 13OK
Chrome 20OK
safari 5.1NG
IE 9NG


次のようなメソッドを用意して、対応しました。

// 2012-07-31T08:00:00+0900 形式の文字列をDateオブジェクトに変換する
function dateStr2Date(str){
  var d = new Date(str);
  if(d == 'Invalid Date'){
    var s = str;
    s = s.replace('T', ' ');
    s = s.replace(/-/g, '/');
    d = new Date(s);
  }
  return d;
}


chromeの場合、時差の部分がないときは、GMTと認識するようですから、上記では不十分です。

2012年7月6日金曜日

facebookのイベント時間の仕様


このブログでも指摘していましたが、困惑していたfacebookのイベント時間の仕様が少し正常な方向に変更されたようです。
これにより、また、プログラムを修正することになりましたが、以前の仕様が変わるなら、一応、歓迎です。

問題は、同じソースのプログラムでも、なぜか、取得時間が異なるという問題に遭遇しています。(おそらく、以前の仕様と、新しい仕様が混在している?)
FQLでは、UNIX時間が得られるアプリと、文字列が得られるアプリがあります。
移行期間の設定を合わせても発生していますので、またまた、混乱しています。参考までに、移行期間の設定は、設定する毎に消えていきます。
さらに、Graph APIで、同じイベントを取得すると、時間が文字列で得られますが、時間が異なります。

新しい仕様に統一されるなら歓迎ですが、どうやったら、新しい仕様で時間を取得できるのかが分かりません。この差がどこからくるのか?

2012年7月5日木曜日

facebookの仕様変更

ロードマップ情報
https://developers.facebook.com/roadmap/#july-2012

日本語訳
http://fb.dev-plus.jp/roadmap/

この仕様変更のために、同じソースでも、動いたり、動かなかったりします。
動かすためには、アプリの設定を変更する(仕様変更の影響を受けないようにする)のも、ひとつの方法ですが、変わった仕様に合わせるのが、一番だと思います。

2012年7月4日水曜日

facebook仕様変更

facebookの仕様が変更されました。
その影響で、アプリに障害が発生しました。

同じソースにもかかわらず、開発用と公開用で、挙動が違うようになりました。
アプリの更新時間を確認して、APIのバージョンを変えているのでしょうか?
それとも、先日のサーバートラブル(アメリカの停電の影響らしい)の影響でしょうか。

facebookアプリ

facebookアプリを作っています。

facebookアプリで気になるのは、最初の表示が遅くなることです。
iframeを使って、少し遅れて読み込むのは、ブラウザの機能的に仕方のないことですが、その後の表示に、時間が掛かっています。
原因は、facebookとの認証処理です。
表示する前に、ユーザーがアプリを認証しているかを確認しますが、これが時間が掛かります。

IPv6との関係でしょうか。

フレッツひかりのIPv6が、奇妙な仕様になっているのが原因で、一部のサイトの表示が遅くなるという話は聞いていますので。

もっとも、最近、海外のサイトへの接続自体も不安定で、再読み込みが必要になることが多いです。アメリカの停電で、サーバーが停止したという話も聞きますから、その影響もあるのでしょう。

2012年7月2日月曜日

Javascript toLocaleDateString の違い


JavascripttoLocaleDateString は、時間を読みやすい形式にするメソッドですが、ブラウザにより、挙動が異なるようです。

firefoxで、日本語表示されるのに、safariでは、英語表記され、気づきました。
safariのブラウザの設定が間違っている可能性がありますが、「ユーザーのブラウザの設定が間違っているから、正しい表示がされない」という言い訳はできないため、表示メソッドは自作しました。

このメソッドは、使わない方が無難です。

2012年7月1日日曜日

facebookの時間の扱い PHP


ユーザーが未設定の場合と、ユーザーが分かっている場合で、facebookのイベントの時間に差がありました。
簡単に言えば、ユーザーがログインしている場合と、そうでない場合で、取得できた時間が異なるということです。

さらに、時間指定が無い場合、この挙動は、また、異なりました。
時間の指定が無い場合、指定日の午前2時と判断されるようです。
問題は、ログインしている時と、していない時で、7時間の差があることです。
時間指定が無い場合は、この差は、16時間。

FQLでのイベント時間の取得
時間指定あり時間指定なし
ログイン済みUTC+7HUTC+9H
ログインしてないUTC-9HUTC+2H
16H7H
(注意)サマータイムで異なると思われる

Graph APIでも、ほぼ同じ。
時間指定すると、timezoneの項目が加わる。


また、ブラウザによって、時間に違いがあることが分かりました。
PHPは、サーバーサイドのため、ブラウザの違いは関係ないだろうと思っていましたが、試してみると、firefoxsafariでは、16時間の差がありました。


イベントの時間は、どうやって取得したら良いのでしょうか。
分からなくなりました。