Posts Tagged ‘google’

GoogleのJavaScriptコーディングスタイルチェッカー「Closure Linter」

GoogleではJavaScriptは特定のコーディングスタイルで統一されるようにClosure Linterという専用のスクリプトを使用しているそうです。
Google JavaScript Style Guide(Google JavaScript Style Guide 和訳)という規則に従ってjsのコードは書かれていて、その規則に沿っているかを確認するgjslintとその規則に合うように修正するfixjsstyleからなるスクリプトです。

インストール方法

How to Use Closure Linter – Closure Linter – Google Code
pythonで書かれているのでeasy_installを使ってインストールします。
まずはPythonをインストールしてなかったらインストールして、次にeasy_installコマンドを使うためにsetuptoolsを自分のPythonにあったものをインストールします。
WindowsならC:\Python26\Scriptsに環境パスを通せば、コマンドプロンプトからeasy_installが使えるようになるので、

> easy_install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz

と打ってたらインストールできます。(パス通してないならC:\Python26\Scriptseasy_install でも大丈夫)

*注意
現在配布されるやつはfixjsstyleがTypeError: ‘NoneType’ object is unsubscriptableのようになって動かないので、

> easy_install -Z http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz

という感じでファイルを展開するオプションをつけてインストールしてから、/python2.6/site-packages/closure_linter-2.2.1-py2.6.egg/
closure_linter/fixjsstyle.py の36行目にargfとなってるtypoiがあるのでそれをargvにすれば動きます。

使い方

使い方は単純でHow to Use Closure Linter – Closure Linter – Google Codeを見ると分かりますが、

gjslint path/to/my/file.js
fixjsstyle path/to/file1.js path/to/file2.js

のようにファイルやディレクトリを指定して実行するだけです。
–strictオプションやディレクトリに対してまとめてやる再帰オプションもあります。またGoogleのコーディングスタイルではJsDocを使う事になってるので、それを無視するオプションもあります。

fixjsstyleはE4Xとか特殊なものは認識してないっぽいので無理に書けると構文エラーを出すようになったりしますが、
Googleのコーディングスタイルはそこまで特殊ではないので、ちょっとした確認に使えたりして便利です。
JavaScriptの整形にはOnline javascript beautifier(これ自体がJavaScriptで書かれているのでEmeditorやNILScriptで動かせるgist: 453042 – クリップボードのJavaScriptコードを整形してクリップボードに返すNILScript – GitHub)とかと併用すると面白いかも。

Introducing Closure Linter – Closure Tools Blog
http://closuretools.blogspot.com/2010/08/introducing-closure-linter.html

Google Web Historyに見たページを自動記録するアドオン(Jetpack SDK)

GoogleにはGoogle – ウェブ履歴というものがあり、検索してどのページを訪ねたかなどが記録されています。
またその記録は検索ページで既読リンクの色にするなどの判定にも使われています。
Google検索から訪ねたサイト以外のURLもウェブ履歴に登録するFirefox拡張機能を作成してみました。
既に

などGreasemonkeyやTomblooパッチなど代わりになる手段は山ほどある気がしますが、Jetpack SDKを使いたかったのと、意外にもFirefoxアドオンとして同じ役割するものが見つからなかったので作ってみました。

他のスクリプトとの違いは大して無いと思いますが、できるだけ無駄な送信を控えるようにしています。

  • 最近訪れたサイトは重複送信しない(100件ぐらいでクリアされます)
  • https://はホストのみを送信
  • ローカルやIPアドレスベースのURLの場合は送らない

ダウンロードはAMOからできるようにしてあります。
Firefoxアドオンのxpiを簡単における場所が無かったので、AMOに登録しておいてあります。

Jetpack SDKでコンパイル?前のソースコードはこちらに

Jetpack SDKで何か作るには

Jetpack SDKで既に3つほどアドオンを作成していますが、0.5だとJetpack prototypeとできることはそこまで変わってないです。(prototypeのギャラリー無くなったみたいですね。8個ぐらい作った気がする)
Jetpack SDKで作る上で参考にしたのは

最後のJetpack SDK Docsはcfx docsで開いて、jetpack-coreあたりに現在使えるAPIが載っているのでそれを見て使い方を調べるとAPIの使い方は分かる感じ。(Jetpack prototypeの頃よりはドキュメントにサンプルもあってマシになりました)
一番ハマるところはcfxとかコマンドでエラーがでるとかその辺だった気がする。
環境はWindows Vistaです。
cfx testallすら通らない場合は-aとか-bオプションを指定してみるといい。 Jetpack SDK 0.4でcfx testallを成功させる方法 (windows) – Cherenkovの暗中模索にっき
毎回オプションを付けるのが面倒になったらlocal.jsonを作りデフォルト値を決めてみましょう。
自分はjetpack用のプロファイルを作りそれを指定してます

{
  "configs": {
    "default": [
      "-a", "firefox",
      "-b", "C:\\Program Files\\Mozilla Firefox\\firefox.exe",
      "-P", "%appdata%\\Mozilla\\Firefox\\Profiles\\h545wqkn.jetpack"
    ],
    "ff37": [
      "-a", "firefox",
      "-b", "C:\\Program Files\\Mozilla Firefox 3.7\\firefox.exe",
      "-P", "C:\\Users\\admin\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\testuser"
    ]
  }
}

package.jsonを作り、libフォルダを作りmain.jsを書いて → さあcfx runで起動しようとしたら、まずはpackage.json内にidが自動生成されます。そしてもう一度cfx runすると下のようなエラーが出てくることがあります。

Traceback (most recent call last):
  File "D:\jetpack\bin\cfx", line 6, in
    cuddlefish.run()
  File "D:\jetpack\python-lib\cuddlefish\__init__.py", line 475, in run
    include_dep_tests=options.dep_tests
  File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 267, in generate_bu
ild_for_target
    add_dep_to_build(dep)
  File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 254, in add_dep_to_
build
    add_section_to_build(dep_cfg, "lib", is_code=True)
  File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 232, in add_section
_to_build
    validate_resource_hostname(name)
  File "D:\jetpack\python-lib\cuddlefish\packaging.py", line 65, in validate_res
ource_hostname
    raise ValueError('invalid resource hostname: %s' % name)
ValueError: invalid resource hostname: jid0-英数字-フォルダ名-lib

これはpackage.jsonのnameに大文字やマルチバイト文字やスペースなどが含まれていると出てきます。(んなの分かるか)
なので小文字英数とハイホンあたりでnameを決めておきましょう。

console.logはコマンドプロンプトの方にでてくるので、それを使って(他に何かあるのかなー)デバッグしながらmain.jsなどを完成させて、xpiをcfx xpiコマンドではき出せば完成です。
まだ設定画面やパネルなどのGUIが簡単に使えなかったりしますが、用途が合えば簡単にアドオンを作成できるのでなかなか面白いです。

Google WebHistory Updater :: Add-ons for Firefox
https://addons.mozilla.org/ja/firefox/addon/213956/

Googleのマルチアカウント機能を有効化する方法

GmailやGoogle CalendarなどGoogleのサービスを、複数のアカウントで同時に使えるようになるMultiple Sign-In機能がリリースされたようなので使って見ました。
現在は以下のサービスでマルチアカウントがつかえるようです。

  • Calendar
  • Code
  • Gmail
  • Reader
  • Sites

有効化する方法はEnabling multiple sign-in : Getting started – Accounts Helpに書いてあります。
簡単に有効化する手順を書くと

  1. アカウント情報を英語のインターフェースにする。
    英語にしないと有効化できてないような気がします。
    自分はiGoogle の設定から言語をEnglishにすることで変更できました。
  2. multiple sign-in settings page へprimary(主)となるアカウントでアクセスする
  3. 有効化を選んでチェックボックスに全部✓をいれてSaveする(この状態だと英語の説明文がでますが)
    既に日本語訳もあったりしました。
  4. Saveしたら一度Googleからログアウトします。
  5. Google Readerなどのマルチアカウントが使えるサービスにログインし直すと、右上のアドレス部分に▼がついてので、そこから”別のアカウントでログイン”をクリックすると別のアカウントでもログインでき、一度ログインすれば切り替えも同じ所からできます。

Multiple Sign-Inは複数のアカウントの切り替えが簡単というだけじゃなくて、同時に複数のアカウントでログインできるので2つのタブで2つのアカウントを同時に使うなどが行えます。

人によってはまだ使えないかも知れません。Gmailが上手くできなかった…
でもGoogle Account Multi-Login for Greasemonkey みたいなGreasemonkey使わなくてもいいのでとても便利。

WordPressのパーマネントリンクを記事タイトルを英単語に翻訳したものにするプラグイン

ややこしいタイトルですが、Wordpressのパーマネントリンクには記事タイトルを元にした投稿スラッグを入れることができるので、日本語の記事タイトルだと日本語がそのままURLになるためあまり見栄えが良くありません。
そこで、記事タイトルを自動翻訳して英単語に直してからそれを投稿スラッグにするというプラグインを作ってみました。

これをダウンロードしてpluginフォルダにいれて有効にすると投稿スラッグが自動的に翻訳された単語を-でつなげたものになります。
具体例)
WordPressインストール後にまずやること
という記事タイトルだった場合は
first-things-to-do-after-installing-wordpress という感じへ変換されます。(Google翻訳)

wordpressで投稿の際のslugを英語だけに自動でする方法 – sugarbabe335
http://d.hatena.ne.jp/sugarbabe335/20081218/1229609082

Googleの検索結果画面にTwitter検索の結果も表示するGreasemonkey(焼き直し)

Googleの検索結果画面にTwitter検索の結果も表示するGreasemonkeyスクリプトです。

以前、Twitter Search Results on Google for Greasemonkey [ http://userscripts.org/scripts/show/43451 ]を元に書いたものの焼き直しです。

Googleの検索結果にtwitter検索の結果を同時に表示するGreasemonkey | Web scratch
http://efcl.info/2009/0826/res1266/

また一から書き直してみた。
機能はほとんど変わってません。

少し似た目が変わったのと、その場でTwitter検索の結果を継ぎ足せるようにしたぐらいです。
インストールはこちらから

Twitter search(ja) result on Google for Greasemonkey
http://userscripts.org/scripts/show/65540

Twitter APIの回数制限をGAE上のプロキシで回避する方法

Twitter API proxyをGoogle App Engine上で動かす方法

プロキシの必要性

プロキシを経由してAPIにアクセスすると何がいいのか

  • TwitterのAPIはアカウント&IPアドレスでカウントされているので、APIの使用回数を増やせる。
    グローバルIPアドレスをPCごとに変えられない環境で2台のPCから見るときに便利
  • Twitterへのアクセスが制限されている環境でも使用できる。
    元々GFW(グレート・ファイアー・ウォール)を超えるために作られたっぽい
  • ちゃんと確認してないけど、GAEはホワイトリストに入ってる気がするので、API回数が20000になったりする事もある。

要はAPI使用回数を増やせるよって話。

必要なもの

まずはGoogle App Engineのアカウントを作成します。(すでに持ってる人は、新しいアプリケーションを作成するだけ)
Google App Engineのアカウント登録とアプリ作成 – 130単位 を参考にアカウントとアプリケーションを作成します。
このときのアプリケーションのIDは後で必要になるので控えといて下さい(Google App Engineのページにアクセスすればいつでも見られるけど)

次に開発環境 – Google App Engine – Google Codeを参考にPythonの実行環境とSDKをダウンロード&インストールします。(ここも既にやってる人はスルー)
Pythonは2.5が推奨されているのでできればそちらをダウンロードした方がいいです。(一応2.6でも動きました)

次に今回、Google App Engine上で動かすプロキシのスクリプトである、birdnestをダウンロードします。
http://birdnest.googlecode.com/svn/branches/gae/ 以下のファイルを全部ダウンロードするのですが、そのままだと面倒なので、
【第17回】EclipseでSubversion – Tech [Friday] プロモバイルエンジニアブログ などを参考にEclipseを使ってSVNをチェックアウトしてまとめてダウンロードしました。


ダウンロードしたファイル

ダウンロードしたファイル

これらのファイルを先ほど作成したアプリケーションID名のフォルダを作りその中に入れておきます。(これは説明を統一するためなので絶対必要な操作ではないかも)
アプリケーションのIDがtwitproxyならtwitproxyというフォルダを作りその中に入れる。

ファイルの編集

ダウンロードしたapp.yamlを編集する必要があります。
一行目のアプリケーション名を先ほど控えてた自分が作成したGoogle App EngineのアプリケーションIDに変更します。

application: アプリケーションのID

テスト&アップロード

Pythonが入っていれば、コマンドプロンプトでPythonと打ち込むとバージョンが表示されます。(エラーになる場合はPython周りがおかしい)
まずは動くかどうかをテストします。
GAEではローカルでテストするためにSDKにサーバがあるのでそのスクリプトを起動して確認します。
同じくコマンドプロンプト上で、

Python "C:\Program Files\Google\google_appengine\dev_appserver.py" 先ほど作成したフォルダへのパス

と打ち込んだ状態(コマンドプロンプトは閉じない)でhttp://localhost:8080/にアクセスとページが表示されると思います。
この上でTwitterクライアントのAPIURLをhttp://localhost:8080/api/ にして使えるか確認できるといいです。
Google App Engineを使ったTwitterBotの作り方 – 星屑日記 を詳しく読むといいかも。

アップロード

次に編集したファイルをGAEにアップロードします。
先ほど同様にコマンドプロンプト上から

Python "C:\Program Files\Google\google_appengine\appcfg.py update 先ほど作成したフォルダへのパス

と打ち込むとアップロードが始まります。

そしてhttp://アプリケーション名.appspot.com/にアクセスしてテストの時と同じページが表示されればアップロードは成功です。

実際にプロキシとして使用する

Echofonをインストールしてextensionフォルダに行きます

vista

C:\Users\ユーザー名\AppData\Roaming\Mozilla\Firefox\Profiles\eプロファイル名\extensions\twitternotifier@naan.net\components

XP

C:\Documents and Settings\ユーザー名\Application Data\Mozilla\Firefox\Profiles\プロファイル名\extensions\twitternotifier@naan.net\components

ここにあるnsTwitterFox.jsを編集します。

var TWITTER_API_URL = “http://アプリケーション名.appspot.com/api/”;

と変更すると、GAE上で動いているプロキシを通してAPIにアクセスすることができます。
基本的にAPIのURL指定を変更できるソフトなら同じ方法でプロキシを通してアクセスできる。

海外のクライアントだとAPIを指定できるソフトも多いです。

Spazの場合だと設定画面にBase API URLを指定できるので、同じようにhttp://アプリケーション名.appspot.com/api/を入れればプロキシ経由で使用できます。
sshot-2009-12-12-2


設置が凄い面倒でセキュリティを気にしない人は

birdnest – a twitter api proxyを同じように使えるかもね。

以下参考

birdnest – Project Hosting on Google Code
http://code.google.com/p/birdnest/
How to set up Twitter API Proxy with Google App Engine | Bruce Yo’s Blog
http://www.bruceyo.info/archives/402
Google App Engineを使ったTwitterBotの作り方 – 星屑日記
http://d.hatena.ne.jp/intheflight/20090611/p1
GFW(グレート・ファイアー・ウォール)

2chをGoolgeから検索する検索プラグイン

Googleを使って2ちゃんねるの中を検索する方法 | nanapi[ナナピ]
http://r.nanapi.jp/379/

これを見てそういえば掲示板機能なんて合ったのを思い出したので、検索バーから一発で検索できるようにFirefoxの検索プラグインを作りました。

使ってみてもそこまで精度はよくないので、ちゃんと調べる場合は2ちゃんねる検索 のほうがいいかな。

「RefControl」でリファラを偽装しておくべきサイト

RefControlというアドオンを使う事でURL毎に、リファラを阻止や偽装することができます。
偽装までしなくても阻止すれば問題ないサイトも多いです。

RefControl
https://addons.mozilla.org/ja/firefox/addon/953

このアドオンを使ってリファラを阻止、偽装しておくべきサイトのメモ

URLのリストはインポートできるので、インポートするのが一番楽です。
ss-2009-09-23-21-07-59

RSSリーダから画像を表示するためにリファラを偽装、阻止するサイト

  • blogs.yahoo.co.jp
  • fc2.com
  • image.itmedia.co.jp
  • plusd.itmedia.co.jp

AmazonはGoogleからのリファラを見て、商品説明の上部に検索結果を表示するようになったためリファラを偽装しています。

  • www.amazon.co.jp

Googleの検索結果にtwitter検索の結果を同時に表示するGreasemonkey

Googleの検索結果画面にTwitter検索の結果も表示するGreasemonkeyスクリプトです。
Twitter検索@penguinanaの方を使ってるのでより日本語に適したものが返ってくると思います。
Twitter検索はほぼリアルタイムで流れているのでより即時性の高い検索結果が見られるので便利です。

sshot-2009-08-26-[17-18-14]

検索結果に表示するTweetsの数は各自編集してください。
デフォルトだと5件表示します。

 

Google Readerのプリフェッチを調節するGreasemonkey

今回はただの紹介です。
Google Readerのプリフェッチ(先読み)の値を変更するGreasemonkeyスクリプトです。
プリフェッチを変更すると何がうれしいのかというと、現在のデフォルトの値はあまり大きくないので、
記事を飛ばしていくと詰まった感じになるため、先読みの値を増やすことでそれを軽減できます。
同じようにスクロールでカクカクする現象も軽減できるそうです。

Google Reader Prefetch More for Greasemonkey
http://userscripts.org/scripts/show/26383

スクリプトのデフォルト値は少し読み込みすぎてる気がするので、自分のパソコンと相談して適当な値にするといいかも。

var first = 25; // default is 5
var next =  15; // default is 1
var list =  60; // default is 20
プロフィール: azu(あず)
Firefoxの事やソフトウェアの紹介や使い道、Greasemonkeyの作成
  • OS:Vista
  • ブラウザ:Firefox
  • Twitterのアカウントはこちら
  • azu_re
  • メールアドレス(Twitterの方が確実)
  • info@ドメイン名
リンク

WebMoney ぷちカンパ

あわせて読みたい