2011-02-27

Firefox の location.hash は自動デコードにも関わらず、制御コードはデコードしないとか知ってました?

こんばんは。なかじまんです。

Firefox の location.hash は、他のブラウザと異なり、URI デコードした結果を表すのは、よく知られていると思いますが、なんど制御コードに限ってデコードしない例外があるようです。試しているのは Firefox 3.6 です。

例えば、改行入りのテキストを location.hash で状態を保持しようとすると、改行コードは CR/LF にデコードされず、%0D%0A のままとなってしまいます。なんじゃこれ。何か勘違いしているのかなぁ。

試しに ASCII コードをぜんぶ試してみたところ、
for (var i = 0x0; i <= 0x7f; i++) {
  var hex = Number(i).toString(16);
  var ch = String.fromCharCode(i);
  location.href = '#' + encodeURIComponent(ch);
  console.log('0x' + hex + ': ' + location.hash);
}
制御コードは、デコードされないことを知りました。HTML や DOM の仕様にそぐわないからだろうか。それとも、脆弱性に関するものだろうか。
0x0: #%00
0x1: #%01
0x2: #%02
0x3: #%03
0x4: #%04
0x5: #%05
0x6: #%06
0x7: #%07
0x8: #%08
0x9: #%09
0xa: #%0A
0xb: #%0B
0xc: #%0C
0xd: #%0D
0xe: #%0E
0xf: #%0F
0x10: #%10
0x11: #%11
0x12: #%12
0x13: #%13
0x14: #%14
0x15: #%15
0x16: #%16
0x17: #%17
0x18: #%18
0x19: #%19
0x1a: #%1A
0x1b: #%1B
0x1c: #%1C
0x1d: #%1D
0x1e: #%1E
0x1f: #%1F
0x20: #
0x21: #!
0x22: #"
0x23: ##
0x24: #$
0x25: #%
0x26: #&
0x27: #'
0x28: #(
0x29: #)
0x2a: #*
0x2b: #+
0x2c: #,
0x2d: #-
0x2e: #.
0x2f: #/
0x30: #0
0x31: #1
0x32: #2
0x33: #3
0x34: #4
0x35: #5
0x36: #6
0x37: #7
0x38: #8
0x39: #9
0x3a: #:
0x3b: #;
0x3c: #<
0x3d: #=
0x3e: #>
0x3f: #?
0x40: #@
0x41: #A
0x42: #B
0x43: #C
0x44: #D
0x45: #E
0x46: #F
0x47: #G
0x48: #H
0x49: #I
0x4a: #J
0x4b: #K
0x4c: #L
0x4d: #M
0x4e: #N
0x4f: #O
0x50: #P
0x51: #Q
0x52: #R
0x53: #S
0x54: #T
0x55: #U
0x56: #V
0x57: #W
0x58: #X
0x59: #Y
0x5a: #Z
0x5b: #[
0x5c: #\
0x5d: #]
0x5e: #^
0x5f: #_
0x60: #`
0x61: #a
0x62: #b
0x63: #c
0x64: #d
0x65: #e
0x66: #f
0x67: #g
0x68: #h
0x69: #i
0x6a: #j
0x6b: #k
0x6c: #l
0x6d: #m
0x6e: #n
0x6f: #o
0x70: #p
0x71: #q
0x72: #r
0x73: #s
0x74: #t
0x75: #u
0x76: #v
0x77: #w
0x78: #x
0x79: #y
0x7a: #z
0x7b: #{
0x7c: #|
0x7d: #}
0x7e: #~
0x7f: #%7F
ただ、今日のウェブアプリの作り方からすると、タブや改行コードも含めて状態を保持して欲しいところでもあり、次のように location.href から hash を取り出せば解決しそうな気がするのですが、このようなアプローチをとっている解説が見つからないのはなぜだろう?
window.onhashchange = function() {
  var hash = firefox
    ? (location.href.split('#')[1] || '')
    : location.hash;  
}
参考にした情報などどなど。ただ、Firefox の仕様はどうなっているのかは分かりませんでした。

2011-02-25

3arrows アップデート! カレンダーを利用できるようになりました。

2月16日(水)、企業やチーム向けのプライベートマイクロブログ、3arrows をアップデートしました。アップデートの主な内容は次の通りです。

カレンダーの追加

新しい標準アプリケーションとして、カレンダーを追加しました。

カレンダーの表示画面では、自分のカレンダーの他、フォローしている他のユーザーのカレンダーもまとめて閲覧することができます。


個々のスケジュールの表示画面では、スケジュールの詳細情報を閲覧することができます。スケジュールの詳細情報にはマイクロブログと連携するハッシュタグや、@ 記法によりユーザーへのリンクを含めることもできます。また、スケジュールにはコメントを付けることもできますので、この機能により会議の参加者をコメントで募ったり、会議の議事録をコメントで付けることもできます。(日報のアプリケーションでも同様にハッシュタグや @ 記法を利用することができます。)


また、既に Google カレンダーを利用されている場合には、Google カレンダーをインポートすることもできます。(最大 5 つのカレンダーまで)


次の画像は 「IT 勉強会」 の Google カレンダーをインポートした例です。


なお、日報のアプリケーションと同様に、カレンダーにおけるスケジュールの作成やスケジュールへのコメント等は、全てマイクロブログに通知されます。そのため、ユーザーはマイクロブログを通じてスケジュールを確認したり、また、マイクロブログを起点として、スケジュールについてのコミュニケーションを取ることができるようになっています。

メニューの整理

アプリケーションの右上のメニューを整理しました。今後もタスク管理やファイル共有等のアプリケーション、マイクロブログの検索機能等の追加を見込んでいますので、段階的にメニューの整理を続けていきます。


全てのアプリケーションの更新をお願いします!

管理者の方は、コントロールパネルのアプリケーションタブから、全てのアプリケーションを更新してください。「更新する」 リンクをクリックすると、アプリケーションを更新できます。「最新」 と表示されれば更新の完了です。


3arrows では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。

2011-02-21

Amazon S3 でウェブサイトがホストできるようになったので移転してみた

こんにちは。なかじまんです。

ずっととある VPS を利用していて、料金がもったいないなぁと思いつつも、過去に作ったコンテンツを破棄するのもなんだしなーと放置していたウェブサイトがあったのですが、なんと Amazon S3 でウェブサイトがホストできるようになったので、さっそく移転してみました。

移転元のサイト

Postal Search APIs & Solutions
http://developmentor.lrlab.to/postal/

移転で捨てたこと

Perl5 による CGI がいくつかあったのですが、この機会に削除しました。また、Apache 固有の .ht ファイルも削除しました(もちろん不可視であるべきファイルも削除しました)。ので、正しく表示されないページやデッドリンクがありますが、そこはご愛敬で。

バケットの作成と設定

developmentor.lrlab.to という新バケットを作りました。バケット名は CNAME と同じにしないとダメです。ここは今までと同じ。

バケットの設定

AWS Management Console からバケットのプロパティを開くと、Website タブが追加されています。ここで Enable のチェックを ON する。そんで Index Document: index.html、Error Document: 404.html とした。

Index Document には / や /foo/ や /foo/bar/ のときに表示するファイルを指定する。今までは XML が表示されてしまったが、これでウェブサイトっぽくなる。ちなみに /foo/bar など末尾の / を省略したとき bar がフォルダのときは、302 でリダイレクトするあたりもウェブサイトと同じ。

Error Document には、HTTP ステータスコードが 4xx のときに表示するファイルを指定する。指定したファイルはルートに置いておけばよい。Amazon S3 の仕様上は、400, 403, 404 が起こりうるが、ファイルは1つしか指定できない。ちょっと Amazon の手抜きっぽい気はするが、実質は 404 Not Found を表すファイルを追いておけば不自由ない。

ファイルのアップロード

移転元のサイトのファイルをアップロードしました。ここも今までと同じ。

移転先のサイト

Amazon S3 のエンドポイントは、今までと同じ↓と思いきや、これが違うのです。このエンドポイントは、いわゆる S3 として振る舞うもので、Website とは関係ないようです。

http://developmentor.lrlab.to.s3.amazonaws.com/postal/

構成上、そりゃそうかとも思えるし、いっしょにしてよとも思えるし。それで WebSite のエンドポイントは、特別に用意されたものがあり↓、今までと異なりました。しかも、選択した地域によって URL が違います。ありゃりゃ。

http://developmentor.lrlab.to.s3-website-us-east-1.amazonaws.com/postal/

DNS の設定
CNAME developmentor.lrlab.to
    developmentor.lrlab.to.s3-website-us-east-1.amazonaws.com
とすれば、おけ。

さようなら VPS

というわけで、次の更新のときには VPS を解約します。元々のアクセスはそれなりにありますが Amazon S3 の単価のほうが安いでしょう。また、気持ち的に管理主体が、自分から Amazon に移った気持ちになれるので、そこが気楽でいいかな。どうがんばったって第三者が悪さできることもないしね。

ちょう適当メモですが、参考になれば幸いです。

3arrows アップデート! 多数のご要望を受けて、マイクロブログをキーワード検索できるようにしました! ブラウザの検索バーにも対応してます!

2月18日(金)、会社やチーム向けプライベートマイクロブログ 3arrows をアップデートしました。

マイクロブログのキーワード検索

ユーザーからの多数のご要望を受けて、マイクロブログをキーワード検索できるようにしました。

アプリの検索ボックスから検索

マイクロブログと各アプリの右上メニューに、検索ボックスを配置しました。キーワードを入力して、検索ボタンをクリックすると、マイクロブログを検索できます。



任意のキーワードのほか、ハッシュタグやユーザーID、文中の URL でも検索できます。
  • キーワード
  • #ハッシュタグ
  • @ユーザーID
  • http(s):// ...

なお、2月18日(金)からの投稿が検索対象になります。

ブラウザの検索バーから検索

Firefox 3、IE8、IE7 の検索バーから 3arrows のマイクロブログを直接検索できます。



アプリケーションのアップデートをお願いします。

管理者の方は、コントロールパネルのアプリケーションタブにアクセスして、各アプリケーションを更新してください。「更新する」リンクをクリックすると、アプリケーションを更新できます。「最新」と表示されれば、アップデートの完了です。



3arrows では αユーザーを募集しています。

3arrows では、αユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。

2011-02-14

3arrows アップデート! ご登録のメールアドレスからメールを送信してマイクロブログに投稿できるようになりました!

2月11日(金)、会社やチーム向けプライベートマイクロブログ 3arrows をアップデートしました。アップデートの主な内容は、次のとおりです。

メールからマイクロブログへの投稿

ご登録のメールアドレスから、メールを送信してマイクロブログに投稿できるようになりました。

次の例では、Google AdWords から 10,000 円分の無料クーポンが届いたので、そのメールをマイクロブログに投稿して、何か広告を出すかメンバーに聞いています。



投稿先のメールアドレスは、マイクロブログの右上メニューのツールから入手できます。



マイクロブログのリアルタイム性の向上

ブラウザでマイクロブログを開いている間、新着の投稿があれば、順々と表示するようになりました。もう更新の操作は必要ありません。

プラットフォームの性能向上

各アプリケーション (OpenSocial AppData) のデータ格納方法を見直して効率化することで、さらにパフォーマンスが向上しました。

アプリケーションの改善

日報アプリのいくつかの不具合を修正しました。

マイクロブログ、日報アプリのアップデートをお願いします。

管理者の方は、コントロールパネルのアプリケーションタブにアクセスして、各アプリケーションを更新してください。「更新する」リンクをクリックすると、アプリケーションを更新できます。「最新」と表示されれば、アップデートの完了です。



3arrows では、αユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。

2011-02-10

3arrows のマイクロブログと日報アプリを通じて、日報を中心としたコラボレーション、チームの知識や問題意識の共有を促進しよう!

プライベートマイクロブログ 3arrows は、マイクロブログと連携する日報アプリも提供しています。

日報は、上司への報告、チームへの共有という一方通行な関わりになりがちですが、マイクロブログと日報の組み合わせにより、マイクロブログを通じて、日報を中心とした双方向のコラボレーション、知識や問題意識の共有といった様々な効果が期待できます。

マイクロブログと日報アプリの使い方(使われ方)をご紹介します。

日報を登録する

仕事が終わったら、日報アプリを使って、今日の業務内容や連絡事項を入力して、日報を登録します。



日報を共有する

日報を登録すると、日報の概要がマイクロブログに投稿されます。そして、マイクロブログを通じて、メンバーや上司は、日報の登録があったことを知ります。



日報にコメントする

メンバーや上司は、マイクロブログから日報を開き、日報の詳細を確認します。また、必要に応じて、日報にコメントをします。



日報のコメントを確認する

日報にコメントすると、そのコメントもマイクロブログに投稿されます。コメントの返信先は、日報を登録したユーザになります。ですので、マイクロブログへの返信を確認すれば、日報へのコメントをまとめて把握できます。さらにコメントを返すこともできます。



メールで日報を共有する

日報を登録すると、日報を登録したユーザをフォローしているメンバーや上司に対して、日報の内容をメールで通知します。例えば、上司は、報告を必要とするユーザさえフォローしておけば、マイクロブログを使わずとも、メールにより、日報を受け取ることができます。
3arrows - #日報 #2011/02/09 3arrows のテスト、不具合修正
なかじまんソフトウェア の Nobuhiro Nakajima さんからメッセージが届いています。
-- メッセージここから --
下記の不具合を修正しました。
(1) 日報、コメントの投稿の際にタグをエスケープするようにしました。
(2) コメントの表示順を最新日時順にしました。
(3) いくつかの JavaScript エラーを修正しました。
下記の改善をしました。
(1) 定期的にトークンをリフレッシュして、ログインの有効期限の間 API にアクセスできるようにしました。
出社時刻 10:30、退社時刻 18:00、勤務時間 06:30
-- メッセージここまで --
今後とも 3arrows をどうぞよろしくお願いいたします。
--
3arrows
http://www.3arrows.jp/
メッセージを送信したアプリケーション
http://nakajiman.3arrows.jp/a/@dailyreport
過去の日報を確認する

過去に登録した日報は、後からいつでも再確認できます。日報のコメントも確認できますので、情報がバラバラになることもありません。



いかがでしょうか。3arrows によって、さらに日報を活用してみませんか。

3arrows では、αユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。

2011-02-08

3arrows のマイクロブログで、各メンバーの最新投稿を確認して、出社状況や今日の予定をまとめて把握しよう

プライベートマイクロブログ 3arrows のマイクロブログは、時系列のタイムライン表示に加えて、各メンバーの最新投稿を確認 できます。

朝の 9:00 過ぎに、各メンバーの最新投稿を確認すると、各メンバーの出社状況や、今日の予定がまとめて確認できるでしょう。また、投稿がなければ寝坊や事件に巻き込まれているのかもしれません。

例えば、次のように表示されます。



この会社では、朝イチにラジオ体操をするようです。ミーティングで客先に直行している社員がいます。今日は、仕事が終わったら、社長がご馳走してくれるようです。

※この会社はフィクションであり、実在の人物・団体等とは一切関係がありません。(^_^;)

プライベートマイクロブログ 3arrows では、αユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。

2011-02-05

3arrows アップデート! ユーザーからの多数のご要望を受けて、オリジナル画像をプロフィールアイコンに設定できるようにしました!

2月4日(金)、会社やチーム向けマイクロブログ 3arrows をアップデートしました。

オリジナル画像によるプロフィールアイコンの設定

ユーザーからの多数のご要望を受けて、オリジナル画像をプロフィールアイコンに設定できるようにしました。マイクロブログの右メニューの設定リンクをクリックすると、プロフィール編集のページが開きます。



続けて、画像をアップロードするリンクをクリックして、オリジナル画像をアップロードしてください。オリジナル画像は自動リサイズしますが、あらかじめ 48x48 サイズのものをアップロードすることをお勧めします。



なお、3arrows は 管理者があらゆることをコントロールできること を原則に掲げて取り組んでいます。この原則に変わりはなく、管理者の方は、今までどおり、コントロールパネル上で各メンバーのプロフィールアイコンを上書き変更できます。

また、アップロードした画像は、同じ会社やチームのメンバーしか閲覧できないように制限しています。

マイクロブログのサムネイル表示

マイクロブログのサムネイル表示対象を拡大しました。 赤字 が追加分です。



ドキュメント: PDF, Word, Excel, Power Point, Cacoo, SlideShare, JPEG, GIF, PNG
動画: Ustream, YouTube, Vimeo
写真: Flickr, Picasa, 壁紙.com, フォト蔵, TwitPic, Yfrog
地図: Google Maps
ニュース: Teckwave, Web 担当者 Forum, CNET Japan, ITpro
レビュー: DIME, ブクログ, coneco.net, MonoColle
コラム: ダイヤモンド・オンライン
グルメ: ホットペッパー, ぐるなび, 食べログ
クーポン: ポンパレード, グルーポン, Piku
ファッション: ママ・マーケット, BUYMA, ホットペッパービューティー, ZOZOTOWN
通販: アイテムポスト, カラメル
自動車: グーネット, グーワールド, グーバイク
Q & A: 教えて! goo
ブログ: goo ブログ, Blogger
結婚: ウエディングパーク
コミュニティ: cooboo
エンタメ: 講談社コミックプラス

3arrows は αテストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。

2011-02-04

Twitter 上の情報収集、チーム内共有、発信までのワークフローを支援するツイートインアプリをアップデートしました!

2月2日、マイクロブログ 3arrows の「ツイートイン」アプリをアップデートしました。

「ツイートイン」アプリは、ソーシャルメディア Twitter からの情報収集、チーム内共有、発信までのワークフローを支援することを目的としたアプリケーションです。



アプリケーションの特徴や使い方、導入方法は、ソーシャルメディアの情報収集、チーム内共有、発信までのワークフローを支援するツイートインアプリのご紹介 をご覧ください。

アップデートの内容は、次のとおりです。

ウォッチ対象の並び替え

マウスのドラッグ&ドロップで、ウォッチ対象を並び替えできるようにしました。



重複ハッシュタグの除去

ハッシュタグが重複しないようになりました。ツイートをマイクロブログで共有するとき、ウォッチ条件をハッシュタグとして付与していましたが、すでにツイートにハッシュタグが含まれるときは、付与しないようにしました。

アプリ名ハッシュタグの追加

ツイートをマイクロブログで共有するとき、「#ツイートイン」ハッシュタグを付与するようにしました。

3arrows は αテストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。もちろん、α版の期間中は無料でご利用いただけます。