「早稲田大学の理工系におけるコピペ文化について」について
Chromeのブラウザ拡張(Extension)を作る
最近仕事関連でChrome Extensionを作ったので、ポイントとかを簡単にまとめてみる。
前提
作るもの
Extensionにはいくつかのタイプがあるが、今回は以下の様なものを作る。
- ブラウザに表示されている内容を取得
- 1で取得した内容をExtensionのJavaScriptがパース
- Extensionのポップアップを表示し、2の内容を表示
- ポップアップ上のボタンを押すと、内容がサーバーに送信される
イメージとしては、はてブとかEvernoteのブラウザ拡張を思い浮かべてもらえれば良いかと。
後述する専門用語で言うと、browser action (あるいは page action) + content script という構成。
昔書いてたblogを復活させた
以前、レンサバで自分のblog持ってたんだけど、しばらく放置してたらスパムコメントが大量についてデータファイルが肥大化して動かなくなってしまった(懐かしのMovableType)。
何かこのまま捨てちゃうのも勿体無いので、復活させることにした。でも自分でやるのも面倒なので、クラウドソーシングを活用。あっという間にデータファイルが復旧した。この後、WordPressに移行する予定。
いやー、もうクラウドソーシングが無いと生きていけない体になってしまった。
昔のblogはこちら。
Play! 2.1のroutesでOption型のパラメータを・・・
やりたいこと
あー、タイトル分かりにくくてすみません。
今作ってるサイトで、要はこういうことをやりたいんです。
GET /$areaId<[0-9]+> controllers.Foo.bar(areaId: Int, subAreaId: Option[Int] = None) GET /$areaId<[0-9]+>/$subAreaId<[0-9]+> controllers.Foo.bar(areaId: Int, subAreaId: Option[Int])
でも、エラーが出る。
No URL path binder found for type Option[Int]. Try to implement an implicit PathBindable for this type.
ググったらStackOverflowに同じ質問があった。
Play 2.0にはあった機能が2.1で無くなったらしい。言われてみると、2.0時代に使った記憶もあるし・・・バージョンアップして機能が削られるって珍しいね。