カテゴリー: 技術

日本語を含むJSONデータを取得するテストを行う際に便利なGoogle Chrome拡張機能

投稿者:isc_blog

WebAPIから日本語を含むJSONデータを取得して内容を精査するテストを行っていますが
ログを見てJSONの生データのままだと
「\u65e5\u672c\u8a9e\u3092\u542b\u3080JSON\u30c7\u30fc\u30bf」
こんな感じでわけがわからなかったので
愛用のGoogle Chromeに入っている拡張機能を使いました!

これです↓↓↓
Native2Ascii速攻!
※作者は私です。手前味噌ですみません。

「\u65e5\u672c\u8a9e\u3092\u542b\u3080JSON\u30c7\u30fc\u30bf」というデータが・・・

こんな感じで上記のわけわからない「\u65e5\u672c\u8a9e\u3092\u542b\u3080JSON\u30c7\u30fc\u30bf」をコピペ

「ascii2native」ボタンを押すと・・・

「日本語を含むJSONデータ」になりました!

こんな感じにしてくれます!

便利です!手前味噌ですが・・・

「native2ascii」ボタンは「日本語を含むJSONデータ」を「\u65e5\u672c\u8a9e\u3092\u542b\u3080JSON\u30c7\u30fc\u30bf」に変換するものです。本来はこちらの用途が使用したいために作成したものだったんですが、最近は意外にescapeよりもunescapeにお世話になっています。

関連記事:
Google 拡張機能 そして世界公開へ・・・のはずが
Google 拡張機能 ・・・ 結局 公開しました!

2011年6月22日

Android ImageViewにウェブ上の画像表示

投稿者:isc_blog

Android開発しているとAndroid開発ネタばかりに偏りがちです・・・
が、仕方ないっス。
今日のAndroidネタは・・・

Androidでウェブ上の画像を表示する必要があり
ImageViewを使用して
ImageViewのメソッド setImageURI でURI指定すればいいのかな・・・と思い

[java]


ImageView iv = (ImageView) findViewById(R.id.imageview);
Uri.Builder ub = new Uri.Builder();
ub.scheme("http");
ub.authority("~ドメイン~");
ub.path("images/image.jpg");
iv.setImageURI(ub.build());


[/java]

と記述したが・・・全然表示されない・・・

調べたところ、setImageURI ではうまくいかないという記事を発見。(下記URL)

iRSSの日記|ImageViewにhttp経由の画像を表示する方法

記事にもあるように Drawable を生成して
ImageView の setImageDrawable(Drawable drawable) にセットしてあげる必要があるらしい。

で・・・こんなふうにしました。

[java]



InputStream is = (InputStream) this.fetch(ub.build().toString());
Drawable drawable = Drawable.createFromStream(is, "");
is.close();



[/java]
Android SDK 逆引きハンドブック を参考にしました。
※Exceptionの処理は適宜入れてください。

こんな感じでDrawableを生成したら・・・

表示されました!!

※ImageViewあたりのソース(最終的)
[java]


ImageView iv = (ImageView) findViewById(R.id.imageview);
Uri.Builder ub = new Uri.Builder();
ub.scheme("http");
ub.authority("~ドメイン~");
ub.path("images/image.jpg");
InputStream is = (InputStream) this.fetch(ub.build().toString());
Drawable drawable = Drawable.createFromStream(is, "");
is.close();
iv.setImageDrawable(drawable);


[/java]

2011年6月20日

WordPress エラー324 問題

投稿者:isc_blog

本日、突然当ブログが表示出来なくなりました。
「エラー 324 (net::ERR_EMPTY_RESPONSE): 不明なエラーです。」
と画面に出るので調べたところ
原因自体は不明・・・・ですが
復旧方法がありました。
PHP&symfonyで作るWEBサイト(PHP5)|運用中のWordPress接続できなくなりなぜか、wp-admin/install.php画面が表示。

上記ブログから解決策は・・・

mysqldumpで一度バックアップを取って、そのバックアップを復元すると解消する

ということが判明

こちらのブログにはレンタルサーバーがXREAだった場合の対処方法が記載されていますので参考まで。
Cafetish’s Blog|不明なエラーでWebサイトが表示されない

とにかく
mysqldumpでDBのダンプを取りそのダンプで復旧したら治りました。

mysqldumpの方法は下記サイトが参考になります。
phpspot|mysqldumpでバックアップ&復元

今回はあせりました(^_^;)

2011年6月16日

Androidアプリ開発時困って調べたこと

投稿者:isc_blog

今回はAndroidアプリ開発中に困って調べたことの忘備録的投稿です。

Androidアプリ開発に普段「eclipse」を利用しています。
そのeclipseにADTプラグインを入れて開発しています。

開発中、エミュレータで動作確認中にログを見ようと思ってLogCatで確認・・・・アレ?ログが出てこない

ってことがあったので調べました。
すると、こんな記事がありました。

kazzzの日記:Logcat Viewにログが表示されない時に試すこと

引用・・・・

1. DDMSパースペクティブを開く
2. Devicesタブを選択する
3. 対象のエミュレータ又は機器を示すアイコン(大抵は頂上だ)をクリック

※詳細は画像付きの上記Webサイトを御覧ください。

「おお!治った!」※ログがバラバラ出力されてちょっとびっくり中・・・(笑)

また、WebViewを使用しているアプリではたまにエミュレータ上で動作中に「UnknownHostException」が発生する場合があります。
Webからそのままページを表示させると
「ページが見つかりません。」画面・・・ガーン!
と思って通常のPCにインストールされているブラウザから見たら何の問題もなく表示されています。

そして、調べました・・・・
するとこんな記事がありました。

CTOA日記:android開発 UnknownHostExceptionがエミュレータで起こる

こちらの解決法は・・・
以下引用・・・・

エミュレータのDNSのバグのようです。
対象のURLをIPアドレスに書きかえるか、エミュレータ自体を再起動すれば解決しました。

とのこと。

たしかに、エミュレータ立ち上げっぱなしでプロジェクトから
「Run as Android Application」押しまくってたので、そうなっちゃったんですね。

※画像はイメージです。

エミュレータ再起動であえなく解決!

2011年6月15日

CMSで作ったサイトをまるごと静的にバックアップする方法

投稿者:isc_blog

CMS(WordPress)で作ったサイト(このブログ)を静的HTMLでバックアップしようとして
WebBoxなどのツールを使ったんですがなんだか取得しきれていなかったのでいろいろ調べました。

で、ツールを使って取得する方法を調べたら
FireFoxでアドインツールを使って出来るらしい・・・
参考サイト:firefoxのプラグインScrapBookを使ってブログサイトなどをまるごと保存する|ろばのみみ
ここで使用しているFireFoxのプラグインがこちら → ScrapBook ADD-ON

おぉ!どんどん取れました!
ただし、ディレクトリ構成などが平たくなってしまい
ちょっとこのままでは・・・という感じだったので他の方法をさがすことに・・・

で、次の方法がLinuxのwgetコマンドを使用剃る方法・・・

参考サイト:CMSのサイトを静的ファイルにバックアップする方法
参考サイト:stn8:wgetで動的ページを静的ページに変換してダウンロード

こちらに載っていた方法でコマンドを叩いてみる・・・
※Windows環境でCygwinにてコマンド叩きました。(Cygwinにはあらかじめwgetをインストールしておきました。)

[html]

wget –mirror –convert-links –restrict-file-names=windows –html-extension http://blog.iscw.jp

[/html]
うーん、なんだかindex.htmlで止まっちゃう・・・

[html]

wget –mirror –convert-links –backup-converted –restrict-file-names=windows –html-extension http://blog.iscw.jp

[/html]
こちらも・・・・index.htmlから動かず・・・

最終的にWindows環境でCygwinを使用して出来た・・・のがこの方法でした。
参考サイト:サイトリッパーの提案?

[html]

wget -erobots=off –no-parent –wait=3 –limit-rate=20K -r -p -U "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -A htm,html,css,js,json,gif,jpeg,jpg,bmp http://blog.iscw.jp

[/html]

-U オプションが効いたのか、こちらのユーザーエージェントを示すことでどんどん取得できちゃいました!

この方法使えそうだな~

ただし、取得したファイルの中身の「http://blog.iscw.jp」というURLの記述部分は移設する場合など時によっては文字列置換しないといけません。

まぁ、まるごと取得出来ただけヨシとしましょう!

2011年6月14日

AndroidのWebViewにてBASIC認証を行う

投稿者:isc_blog

【AndroidのWebViewにてBASIC認証を行う方法】
Androidの開発でWebViewにてBASIC認証を行いたくなり調べたので覚え書きとして掲載します。
下記参考文献よりコピーし変数等をリテラルにしてしまった上でのソースになっています。

参考文献:
ダメ男のブログ | androidでWEB接続 その1

※onCreateメソッドのみ抜粋
[java]
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// WebView インスタンス生成
WebView webview = (WebView) findViewById(R.id.webview);

// JavaScript有効
webview.getSettings().setJavaScriptEnabled(true);

// Basic認証行う
WebViewDatabase.getInstance(this).clearHttpAuthUsernamePassword();
// "MembersOnly"の部分の引数はBasic認証で表示される文言がそのままでないと行けないみたいです。
// 「~ホスト~」の部分は 「www.test.com」のように記述
webview.setHttpAuthUsernamePassword("~ホスト~", "MembersOnly", "~名前~", "~パスワード~");
webview.setWebViewClient(
new WebViewClient() {
// ログインcookie
private String loginCookie;

//
@Override
public void onLoadResource(WebView view, String url) {
CookieManager cookieManager = CookieManager.getInstance();
loginCookie = cookieManager.getCookie(url);
}

// 認証リクエストがあった場合の挙動
@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
String[] up = view.getHttpAuthUsernamePassword(host, realm);
if (up != null && up.length == 2) {
handler.proceed(up[0], up[1]);
}
else {
Log.d("ERROR", "Could not find username/password for domain: " + host + "with realm = "+ realm);
}
}

// 認証後の挙動
@Override
public void onPageFinished(WebView view, String url) {
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setCookie(url, loginCookie);
}
}
);

// ロード
webview.loadUrl("http://~BASIC認証後表示するページのURL~");

// トースト表示
Toast.makeText(this, "Starting…", Toast.LENGTH_LONG).show();
}
[/java]

注意としては参考文献にもありますように・・・
「BASIC認証で表示される文言はそのまま記述する」というのと
「~ホスト~」には”www.yahoo.co.jp”のようにホスト名のみ記述する
という点です。

2011年6月13日

Google Chome 12安定版登場の記事

投稿者:isc_blog

昨日、IE10が出るんですねぇ。早いですねぇ。

と書いたのですが、6月9日付けでマイコミジャーナルさんに「Chrome 12安定版登場 – 3D CSS H/Wアクセラレーションほか」の記事が掲載されていました。

記事によると新機能は下記のとおり

・3D CSSハードウェアアクセラレーション
・スクリーンリーダーサポートの改善
・Google Gearsの排除
・アドレスバーからアプリケーションを起動する機能
・同期設定を設定画面へ統合
・悪質なファイルのダウンロードを防止する新しいセーフブラウジングプロテクション機能
・Flashクッキーを簡単に削除する機能の提供

※3D CSSハードウェアアクセラレーションは対応するハードウェア構成が必要とのこと

こちらも要チェックですね。

Google Chromeダウンロード

2011年6月12日