2クリックで Chrome 44 のユーザーを切り替える方法

Google Chrome 44 では、ユーザーの切り替えに使用するアバターメニューの設定が変更され、試験運用機能(chrome://flags)では変更できなくなりました。

以前、Chrome 39 がリリースしたときに更新したこの記事は、 Chrome 43 まで有効な情報となってしまいました。

インターネット上には、起動オプションを追加することで従来のメニューに戻す方法が多く紹介されていますが、今回は「新しいユーザーメニューを有効にしたまま」

  • 2クリックでユーザーの切り替え
  • 8個以上のユーザーを切り替え

する方法を紹介したいと思います。

“2クリックで Chrome 44 のユーザーを切り替える方法” の続きを読む

スパムコメント誤判定を修正しました

2014年12月22日より7ヶ月間、このブログにおけるスパムコメントの判定が全てスパム扱いとなっており、正常なコメントも投稿できない問題がありました。

現在は修正し、投稿できることを確認しています。

影響のあったコメント

期間中に投稿されたコメントを確認しました。

こちらの記事の3件のコメントが誤判定により無視されていました。
実際にスパムであったコメント・トラックバックは422件でした。

プラグインを利用した、外部サービスのコメントはこの影響を受けていません。

  • Facebook ログインによるコメント
  • ツイートをコメントとして表示

原因

このブログでは、日本語が含まれない・URLが多すぎる・外部のスパムリストに登録されているIPアドレスからのコメントは、プラグインにてブロックしていました。

2014年12月22日にリリースされた Version 2.6.5 より従来利用していた「スパムちゃんぷるー(ベータ)」のサービス終了に伴い、フィルタが変更されました。

・バージョン2.6.5  2014/12/22  スパムフィルタを自身で設定できるように変更しました。  選択肢「bsb.spamlookup.net, bsb.empty.us, list.dsbl.org, all.rbl.jp」  及び自由記入欄にてカンマ区切りでサービスのURLを入力できます。  ※記述に誤りがありますと通信が返ってこないためコメント出来ない可能性がありますのでご注意ください。

プラグインの設定で「スパムブラックリストサービスに登録されているIPアドレスからのコメントを拒否する」を無効に変更すると、コメントができるようになりました。
スパムフィルタは bsb.spamlookup.net が有効になっていましたが、ブラウザでそのページを確認したところ自分の IP アドレスはリストに登録されていませんでした。

また、別のサーバーにあるテスト用の WordPress で確認したところ、上記の設定を有効にしていてもコメントができたので、サーバーの問題やプラグインの相性も考えられます。

まとめ

スパムフィルタの設定を変更した際は、自分でも動作を確認していましたが、プラグインの更新までは考えていませんでした。

現在は、IPアドレスによる判断は行わず、内容のみでスパムを判断しています。
フィルタを通り抜けるスパムコメントが増えるようであれば、通常のコメントはできる範囲で対策を考えたいと思います。

ConoHa で WebSocket 接続を試みるも 502 エラーが出現

またまたMacbook が欲しいために「ConoHa」の API に関する記事を公開します。

タイトルにもありますが、今回は上手くいかなかった例を紹介します。
どなたか詳しい方がいらっしゃれば、アドバイスをいただけると嬉しいです。

挑戦したいこと

先日更新した記事で、ConoHa には noVNC コンソールと HTTP のシリアルコンソールがあると紹介しました。

API ドキュメントにはあるものの紹介していないコンソールがありました。

WebSocket については Wikipedia にもありますが、サーバーとクライアントを常時接続するようなプロトコルで、プロキシサーバーが必要な環境でも接続できるのが特徴です。

WebSocket 接続用 URL の取得

前回紹介した PowerShell のスクリプトの

{"os-getVNCConsole":{"type": "novnc"}}

{"os-getSerialConsole":{"type": "serial"}}

に書き換えるだけです。

$apiUser = "APIユーザー名"
$apiPassword = "APIパスワード"
$tenantId = "テナントID"
$identityServiceUrl = "https://identity.tyo1.conoha.io/v2.0"
$computeService = "https://compute.tyo1.conoha.io/v2"
$uuid = "VPS設定-UUID"
# 有効な期間のトークンがあれば
$token = "" 

# トークンの取得
function getToken([string] $tenantId, [string] $apiUser, [string] $apiPassword, [string] $authurl){
    $body = '{"auth":{"passwordCredentials":{"username":"' + $apiUser + '","password":"'+$apiPassword+'"},"tenantId":"'+$tenantId+'"}}'
    $url = $identityServiceUrl+"/tokens"
    $result = Invoke-RestMethod $url -Method POST -Body $body
    return $result
}

# コンソールの URL 取得
function getWebSocketConsole([string] $tenantId, [string] $uuid, [Hashtable] $tokenHeader, [string] $computeService){
    $body = '{"os-getSerialConsole":{"type": "serial"}}'
    $url = $computeService + "/" + $tenantId + "/servers/" + $uuid + "/action"
    $result = Invoke-RestMethod $url -Method POST -Body $body -Headers $tokenHeader
    return $result.console.url
}

# 処理
if ($token -eq "") {
    $mytokens = getToken $tenantId $apiUser $apiPassword $identityServiceUrl
    $token = $mytokens.access.token
}
$tokenHeader = @{"X-Auth-Token" = $token}
$url = getWebSocketConsole $tenantId $uuid $tokenHeader $computeService
# URL 表示
Write-Output $url

成功するとこのような wss で始まる WebSocket の URL が得られます。

wss://console.tyo1.conoha.io/?token=○○

WebSocket クライアントからの接続

とりあえず WebSocket の接続サンプルを使うことにしました。

JavaScript

WebSocket の公式サイトにテストがあったので試してみました。

WebSocket の URL を入力して接続しても、ERROR:undefined と表示されてしまいました。
Creating your own test を自分で書き換えても同様のエラーが発生しました。

テストサーバーである、
ws://echo.websocket.org/
wss://echo.websocket.org/
は問題なく接続できるので、回線が WebSocket を制限しているわけでもなさそうです。

ブラウザの開発者ツールで確認してみると、502 Bad Gateway エラーが発生しているようです。

[H27.07.17]ConoHa WebSocket 502

C#

こちらのブログを参考に、C# での確認も行いました。

こちらも、ws://echo.websocket.org/ や wss://echo.websocket.org/ は問題なく接続できました。
違うネットワークから接続してもだめでした。

サポートに問い合わせてみた

困ったので、ConoHa のサポートに問い合わせてみました。

回答は「APIで接続用URL取得後の動作については案内が困難」とのことでした。
クライアントの問題や利用者の回線の問題も考えられるため、そこまではサポートできないというのも納得できます。

今回は、こうしてブログに書くことによって、誰かの参考になればと思います。

おわりに

現在友達の紹介キャンペーンを実施しており、こちらのリンクから ConoHa に登録していただくと、1000円分のクーポンがもらえますので是非登録し、試してみてください。

PowerShell の Invoke-RestMethod を使って ConoHa の API を触ってみた

一つ前の記事に引き続き、「ConoHa」の API に関する記事を公開します。

以前、旧 ConoHa のオブジェクトストレージの API を用いて PowerShell で操作してみようという記事を公開しました。

そのときのコメントで、Tonghyun Kim さんが

Powershellなら、Invoke-RestMethodはどうでしょう。

とアドバイスしてくださったので、今回はそれを用いて新 ConoHa の API を操作したいと思います。

準備

Invoke-RestMethod を使用するには、PowerShell 3.0 が必要です。
Windows 8.1 では問題ありませんが、Windows 7 でこれまで PowerShell の開発をしたことがない方は気をつけてください。

スクリプトの実行がシステムで無効になっているため、ファイル ○○ を読み込めません。詳細については、「get-help about_signing」と入力してヘルプを参照してください。

上記のメッセージが表示される場合、管理者でPowerShellを起動し以下のコマンドを実行すると解決します。

Set-ExecutionPolicy RemoteSigned

トークンの取得

“PowerShell の Invoke-RestMethod を使って ConoHa の API を触ってみた” の続きを読む

ConoHa の API を使って分かった!3種類のコンソールについて調べてみた

GMOインターネット株式会社の「ConoHa」では API が公開されており、アイデア次第では多くのことができそうです。

今回は、API ドキュメントページを見て、VNC コンソールとシリアルコンソールの違いと、それらのコンソールの URL を API を用いて自動で取得する方法について調べてみました。
確認に利用した C# のソースコードは最後に記載しています。

ConoHa 標準のコンソール

[H27.07.14] ConoHa 通常のコンソール

ConoHa のコントロールパネルから表示できるため、コンソールといえば、これという方も多いでしょう。

特殊キーの送信や、複数行のテキスト送信も可能です。
弱点は、URLは一定ですが、ブラウザを閉じた後の再接続時にログインが求められることです。

“ConoHa の API を使って分かった!3種類のコンソールについて調べてみた” の続きを読む