AOL Readerで記事を全文表示するChrome拡張機能を作った

https://chrome.google.com/webstore/detail/aol-reader-full-feed-exte/ijonfmgiaclcoadjbkpknoldomiljhkf

Google Reader難民となってしまったので、ほかのRSSリーダをいろいろ見てみてAOL Readerを使い始めようかな?と思いつつも問題が。いままではGoogle Reader Full Feed Modを使って記事を全文表示してたけど、これはAOL Readerではもちろん使えない。そこでAOL Reader Full Feed的なものを拡張機能として作ってみた。

せっかくなので、キーバインディングで記事全文を読み込んだり、そもそも記事を開いたときに自動で読み込んだりできる機能もつけてみた。

本文位置の取得にはLDRFullFeedのデータベースを利用させてもらって、候補が見つからなかった場合はExtractContentJSを使って本文の取得を試みるようにした。

画面の範囲を選択して画像検索するChrome拡張機能を作った

Moly Cropping Search - Chrome Web Store

Webページを見てると、あるものが画像に含まれていて気になるけど、名前が分からないので検索できない、ということがしばしばある。たとえば電子回路の回路図や、数学の記号などがそうだ。そこで、表示中の画面から選択した部分をGoogle Search by Imageを使って検索する拡張機能を作ってみた。

(2013/07/08追記)
ゲームのイラストなどを描いているデザイナーさんに見せたら「これ仕事にすごく使える!」という反応をもらえた。やった。

被ツイート数などを各リンクに表示するChrome拡張機能を作った

Moly Popularities - Chrome Web Store

Facebookのいいね!やツイートの数などは、Webコンテンツの人気を測る指標として用いることができる。Webページを見ているとき、この値がリンクの横に出てたら便利そう、と思ったので拡張機能として作ってみた。表示のON/OFFはツールバー上のボタンかキーバインドで切り替えることができる。

Facebookのいいね!、Share、Twitterのツイート、はてなブックマークを表示できる。

Page Table EntryをGUIで一覧表示するWindowsソフトを公開した

GitHub - slaypni/PageTableViewer: Displays PTEs (Page Table Entries) of running processes through GUI on Windows.

むかし作った、ページテーブルエントリ(PTE)を表示するビューアのソースコードを公開してみた。自分自身のPTEだけじゃなくて、他のプロセスのPTEも表示できる。対応するCPUはx86のみ。

RaspbianにXBMCを導入したときの設定まとめ

先日、Raspberry Piを入手したので、テレビにHDMIで繋いでメディアセンターにしてみることにした。

メディアセンターにはXBMCというのを使うことにしたのだけど、その形態がいろいろある。Raspberry Piをメディアセンター専用とするのであれば、単体で動作するOpenELECというのをSDカードにddすればいい。今回は、PiをNASサーバとしても使いたかったので、まずRaspbianを入れて、その上にXBMCをインストールすることにした。

XBMCはこちらのサイトを参考に、ビルド済みのものをインストールする。
以下の設定は、記事を書いている時点での最新版12.2(Frodo)で適用したもの。

インストールが完了すれば、コンソールでxbmcと入力することでXBMCがテレビ画面に表示される。また、操作はリモコンを通じて行うことができる(利用している機器がCECに対応している場合)。しかし、そのままだと動画を再生することができなかった。これは、ビデオメモリの割り当てが64MBだったのが原因で、raspi-configからmemory_splitを128に設定することで映るようになった。

また、デフォルトの設定ではメニュー画面で何もしてない状態でもCPU消費率が60-80%程度もあった。基本的にXBMCは立ち上げっぱなしにしておきたいので、これはちょっと困る。PiはNASサーバとしても使いたいし。この問題は、Settings - System - Video output - Vertical blank syncをAlways enabledとすることで、20%程度のCPU消費率になったので、いちおう許容できる感じになった。ちなみに、advancedsettings.xmlのalgorithmdirtyregionsを変更する方法は、試してみたけどうまくいかなかった。

(2013-06-06追記)
Raspberry Piで動作するXBMCは、そのままだとMPEG-2(DVD)やVC-1(WMV)といったコーデックの動画を再生できない。
しかし、Raspberry Pi Storeからライセンスを購入して設定することで、これらのコーデックのハードウェアデコード機能が有効化され、対応する動画が再生できるようになる。
この設定には、ライセンスを購入してメールで送られてきたキーを、/boot/config.txtに加えればいい。

WebサイトをWebGLでブラウズするChrome拡張機能を作った

Moly Map Scroll - Chrome Web Store

このエクステンションは、ブラウザ画面の横にウェブページ全体をサムネイルとして表示する。
また、その中で現在表示してる箇所は特に明るく示される。

これは、記事を読むときなど、全体の分量や現在の位置をひと目で把握するのに使える。
また、ミニマップ中の気になるところをクリックすると、その箇所にジャンプすることもできる。
そのため、移動したい場所の内容を表示するスクロールバーとしても利用できる。

ミニマップが表示されているパネルは、端をドラッグして自由にサムネイルのサイズを変更できたりする。
また、スクロールに伴ってミニマップ中の明るいエリアが移動する。
こうした処理をスムーズに行うために、ミニマップの描画にはWebGLを用いている。
当初は普通に2dのcanvasで描画をするつもりだったのだが、これで実装すると動作がカクカクになってしまった。
WebGLだと全く処理落ちすることなく描画できた。
WebGLすごい。

また、サイトのキャプチャにはhtml2canvasというJSライブラリを利用した。
これもすごい。

開いているタブを一覧表示して選択するChrome拡張機能を作った

Moly Tab Menu - Chrome Web Store

Operaを使ってたので、Chromeでもその快適さが欲しくて作ってみた。
デフォルトでは、
・マウス左ボタン + ホイールをスクロール (マウスジェスチャ)
・Ctrl + Q (キーバインディング)
でタブを選択できる。
一覧表示されるタブは、最近見た順に並ぶので、タブを大量に開くような使い方をしてるときほど便利。