間違って閉じてしまったChromeを元の状態に戻す方法


Chromeを使っていて発見したのでここにメモ。

Chromeにはいくつかショートカットキーがあります。ある日、左側のタブに移動したいと思い、ショートカットキーの『Ctrl+Shift+Tab』をキー入力しようとしました。ところが、Tabキーを押すつもりが指が少しずれてしまい、『Ctrl+Shift+Q』を押してしまいました。そしたら、Chromeが閉じてしまいました。いろいろ調べてみると、Resource Hackerでchrome.dllを編集すると『Chrl+Shift+Q』でChromeを終了するように割り当てることができると書いてあったのですが、自分はそんなことをやった覚えはありません(参考:キーボード ショートカット – Google Chrome まとめWiki)。ちなみに、『Ctrl+Shift+W』や『Alt+F4』でChromeが閉じることは知っています。

それはともかく、これは困りました。Chromeには多数のタブを開いていたので、いちいち開き直すのは面倒だし、どれを開いていたかも覚えていません。

そこでふと、直前に閉じたタブを開き直す『Ctrl+Shift+T』というショートカットキーがあることを思い出しました。いやでも、あくまで開き直すのはタブであってウィンドウじゃないしなぁ……。なんて思って試してみたら、直前に開いていたウィンドウが新しいウィンドウで開き直されました。『Ctrl+Shift+T』にそんな使い方があったとは(なお、IEとFirefoxでも同様に『Ctrl+Shift+T』で直前に閉じたタブを開くのですが、直前に閉じたウィンドウは開き直されませんでした)。

ちなみに、この直前に閉じたタブを開く『Ctrl+Shift+T』というショートカットキー、知らないなら便利なので覚えておいてください。会社でもこのショートカットキーを知らないため、間違ってタブを閉じてしまってショックを受ける人が何人かいたので、教えときました。

amazonの「持っています」に登録するブックマークレット作った


どうもいまだに、『amazon 持っています』と検索すると、このブログの過去記事が上位に表示されるようです(amzon 持っています – Google 検索)。
過去記事:amazonの「持っています」にチェックを入れる3つの方法 | while(isプログラマ)

ただし、上記記事を書いた時と今では登録方法が異なっています。いや、異なっているというより正確には減っています。上記ページで3種類の登録方法を書きましたが、うち2種類が現在使えなくなっています。1ヶ月ぐらい前まではウィッシュリストに入れて削除すると持っていますのチェックがでるので、それにチェックを入れると登録することができたのですが、それも無くなりました(参考:アマゾンの「持っています」登録方法: アマゾンの「持っています」登録が変更された!)。これにより、おすすめ商品に表示されている商品しか「持っています」に登録できなくなってしまいました。

これは正直困ります。困ったすえ、試行錯誤して、「持っています」に登録するブックマークレットを作ってみました。
ブックマークレット:持っています登録

使い方は簡単。上記リンクをブックマークバーにドラッグ&ドロップするか右クリックしてブラウザのお気に入りに登録します。その後、持っていますに登録したいamazonの商品ページに移動して、このブックマークをクリックすると、「持っています」に登録します。成功すれば、『登録しました』というアラートが表示されます(といっても、ログインしてなくても『登録しました』と表示されるので、後で「持っています」にチェックを入れた商品のページで確認したほうがいいです)。なお、削除機能はありません。削除は「持っています」にチェックを入れた商品ページで行ってください。

具体的なコードは下記のとおりです。

見て分かるとおりjQuery依存となっています。もし、amazonがjQueryを利用しなくなったらこのブックマークレットは利用できなくなります。後、amazonの仕様が変更されたら利用できなくなる可能性は十分あります。

それにしても何で、おすすめ商品に表示されてる商品しか持っていますに登録できなくなったんだ……。まあ、おすすめ機能だけ利用されて、商品を買うのは別の場所というのはamazonに利益がありませんしね(自分のことです……)。そもそも、これまでの流れからして、『持っています』の機能が無くなるんじゃないかと思わなくもないです。

VagrantとTeraTermで仮想開発環境を利用する方法


先日、JS+Node.jsによるWebクローラー/ネットエージェント開発テクニックという本を購入したのですが、そこに仮想マシン上での開発環境の構築方法が書かれてあり、すごい便利そうだと思ったのでメモ(自分が利用しているOSがWindowsのため、Windowsでの構築方法となります)。

仮想マシン構築の準備には、VirtualBox(Downloads – Oracle VM VirtualBox)とVagrant(Download Vagrant – Vagrant)のインストールが必要。詳しく書くと冗長なので(というより面倒なので)、下記を参考。
参考:VirtualBoxをWindowsにインストール | VirtualBox Mania
参考:Vagrant をWindowsにインストールする手順 | WEB ARCH LABO

インストールを終えた後は、仮想マシンを作成したいディレクトリを作成します(どこでもいいです)。そのディレクトリ上で、コマンドプロンプトを開いて、『vagrant init』というコマンドを実行します(余談ですが、エクスプローラからコマンドプロンプトを開くには、「Alt」+「D」でカーソルをアドレスバーに移動し、『cmd』と入力してエンターキーを押すだけで、カレントディレクトリを引き継がれたまま、コマンドプロンプトを開きます。参考:(追記あり)Windowsエクスプローラからコマンドプロンプトを一瞬にして開く方法 | ライフハッカー[日本版])。

すると、ディレクトリ内に、Vagrantfileというファイルが作成されます。このファイルをメモ帳などのテキストエディタで開いて、config.vm.boxを下記のように記述します。これは、Boxファイルという、仮想マシンファイルを自動でダウンロードするように指示する指定です。

書籍のほうでは、『chef/centos-6.5』となっていますが、この指定では利用できなくなったようです(参考:Node.jsによるWebクローラー開発テクニック – クジラ机ブログ)。
Discover Vagrant Boxes | Atlas by HashiCorpに記載のある値なら、うまくいくようです。

ついでなので、書籍を参考に作った自分の環境でのVargantfileを下記にリンクしておきます。
Vagrantfile
先ほどのconfig.vm.box以外だと、config.vm.networkのコメント(最初の#)を外し、config.vm.synced_folderで二箇所のフォルダを共有するようにしています。

上記の指定だと、Vagrantファイルのあるディレクトリ内のdataというディレクトリを、仮想ディレクトリのルートにあるvagrant_dataと共有するようにしています(home-srcディレクトリについても同じ)。ここで気をつけてほしいのが、仮想マシンにあるディレクトリを共有指定にしないようにしてください。試しにやってみたところ、中身が空になってしまいました(といっても、config.vm.synced_folderの指定を外せば元に戻ります)。

その後、『vagrant up』と実行すると仮想マシンが起動します。初回は、Boxファイルがダウンロードされるため少し時間がかかります。

仮想マシンにログインするには、SSHの情報が必要です。『vagrant ssh』というコマンドを実行すれば、SSH接続に必要な情報が表示されます。自分の環境では下記のようになりました。

Host:以降がSSH接続に必要な情報です(それより上は、SSH接続できないので、Cygwinなどを使うようにという記述だと思われるので、気にしなくてよさそうです)。

というわけで、つづいて、SSHクライアントをダウンロードします。書籍ではPuttyやTeraTermやPoderosaなどがあると紹介した後に、Poderosaを利用してあるのですが、調べてみると不安定とあったので、業務でも使ったことがあるTeraTermを使うことにしました(Tera Term – 窓の杜ライブラリ)。

インストールした際に、拡張子ttlを関連付けさせておくといいと思います。その後、自動ログイン用のTTLファイルを下記サイトを参考に作成します。
参考:TeraTermマクロサンプル-SSH自動ログイン(接続情報固定版) | Tera Term(テラターム)の便利な使い方
自分は下記のようにしました。

ついでに、vagrant-up.batという名前で、バッチファイルも作成します。

これで、このバッチファイルを実行するだけで、仮想マシンが起動し、自動的にTeraTermも立ち上がってログインするようになりました(本当は、TeraTermを終了すると仮想マシンを停止するようにしたかったのだけど、うまくいきませんでした)。

探してみると、Vagrant TeraTermというプラグインを見つけたのですが、自分の環境ではうまく動きませんでした(ダウンロードはできたように見受けられるのだけど……)。
参考:Vagrant Teraterm pluginを作ってみた – Qiita
参考:vagrant teraterm が便利すぎてしょうがない件 – 戦場のプログラマー

ログイン後は、下記のコマンドを実行しましょう。こうすることで、時刻を日本標準時刻に合わせることができます(参考:サーバー(CentOS 6.4)の時刻を日本標準時刻に合わせる – ponkiti’s blog)。

というわけで、開発環境も作成できたので、もう少し触っていきたいと思います。