カテゴリー: 技術

Android タブレット アプリ開発でNetworkOnMainThreadException発生

投稿者:isc_blog

Androidスマートフォン向けアプリを
Androidのタブレット上で動作するように改造していたら
動作中に「NetworkOnMainThreadException」が発生しました。

・・・なんだかわからなかったので調べたところ
こんな記事がありました。
RainbowDevilsLandの記事より
NetworkOnMainThreadException
内容によると

携帯向けのAndroidアプリをAndroid3.0のタブレットで動作させると、NetworkOnMainThreadExceptionが発生している箇所があった。
どうもAndroid3.0からメインスレッド(UIスレッド)から通信を行うとNetworkOnMainThreadExceptionが発生するようになったようだ。

まさにそのとおりです。

【これを回避する方法】・・・(かもしれない)
エラーの文言通り、メインスレッド上に通信処理を記述しなければOKか・・・と思い
(まぁ、もともとメインスレッドに処理書いてた私が悪いっすね)
通信処理を外に出したユーティリティクラスを作ってそれを呼ぶようにしました。



あ、なんとか動いた。(NetworkOnMainThreadExceptionが出ない)

・・・そんなことか・・・
チャンチャン♪

2011年8月12日

WordPressで地図表示 Geo Mashup

投稿者:isc_blog

WordPressで記事投稿の際に地図表示したいなぁ~と思ったことありませんか。

そういうときにぴったりのプラグイン発見しました。

Geo Mashup
※WordPress上でインストールする際はインストール名「Geo Mashup」で検索してください。

使い方は簡単でした。
インストール後記事投稿の際にこんなフォーム?が表示されていますので地図を設定します。

記事中の表示したい箇所に
[geo_mashup_map] ※実際は [ と ] は半角記号です。
と書くとOK 地図表示されます。


該当場所を選択して 「Save」を押します。

[geo_mashup_map]
※サンプル 弊社

※参考文献:
WordPressとGoogleマップを連携させるのに便利な地図プラグイン|WordPressとGoogleマップを連携させるのに便利な地図プラグイン

2011年8月11日

HTML5でのページめくりがすごい

投稿者:isc_blog

こんな記事があったのでびっくりしました。
HTML5で超リアルなページめくり効果を実装するチュートリアルとサンプル|PHP SPOT 開発日誌

ここで紹介されている本をめくっているような動きはFLASHではなくHTML5で作られているそうです。

上記のリンクから実際に見てみて下さい。

DEMOを元にサンプルを作ってみましたが日本語もOK(UTF-8)でページの追加は<section>から</section>までをコピペすればどんどん増やせます。
↓サンプル
サンプル

参考URL:
Create a page flip effect with HTML5 canvas ※本家英語サイト
※上記のデモページ

2011年8月10日

YQLってすごい!Yahoo! Query Language

投稿者:isc_blog

YQLっていうすごいサービスを発見しました。
ウェブ上の情報を取得・・・抽出してXMLかJSON(選択)で出力する っていうサービスみたいです。

そして英語が苦手な私はよくわかっていない・・・

ただ、なにかに使えそうなので、書いておきます。

YQLを知ったのはこちらの記事↓
YQLを使用してWordPressのRSSをjsonで取得してjQueryで表示する|webOpixel
※[DEMO]で見られるページのコードが短いっ! ※ご自身で確認なさって下さい。

例えば、このブログのRSSをJSONで取得したい場合は
YQLのコンソールに進みます。
で、YOUR YQL STATEMENT っていうところに
[sql]
select * from rss where url=’http://blog.iscw.jp/?feed=rss2′
[/sql]
と入れて
[JSON]選んで「TEST」ボタン押すっ!

するとこんな画面が表示されます・・・
(さらに…)

2011年8月8日

ちょいメモ WORD文書内のテーブルを分割する方法

投稿者:isc_blog

ふとWORDで文書作っていて・・・
「なにぃ!」というところがあって調べたのでメモ!

それは「WORDのテーブルの中で分割する方法」です。

結果こちら↓
Word2003以前と2007以降で違います。

~WORD2003以前はこちら

くっついた表を2つに分ける−表の分割|インストラクターのネタ帳

WORD2007~はこちら

Word2010で表の分割は?|インストラクターのネタ帳

助かりました。ありがとうございました!

2011年8月7日

WindowsでObjective-C やってみた

投稿者:isc_blog

先日、Macbookをヤフオクでゲット!
でもまだ来ていません。

・・・が、Objective-Cやりたい病が収まらないのでWindowsでやってみました。

参考資料はこちら↓↓
WindowsでObjective-C | ほんまの走り書き技術メモ
いやぁ感謝します!!

GNUstep Windows Installerより下記順番にダウンロード→インストール

GNUstep System
GNUstep Core
SystemPreferences.app
Gorm.app
Calculator.app




その後、テキストエディタを用意して hello.m ファイルを作ります。
※適当なフォルダに保存します。
[cpp]
#import <stdio.h>
#import <objc/Object.h>

@interface TestClass : Object
– (void) getMessage;
@end

@implementation TestClass
– (void) getMessage {
printf("Hello Objective-C World\n");
}
@end

int main(int argc, char *argv[]) {
id obj = [ TestClass alloc ];
[ obj getMessage ];

return 0;
}
[/cpp]
インストールしたGNUstepの中に移動
msys.batを起動しコマンドを打ちます。

まず、hello.mを作成したフォルダに移動

gcc -o hello hello.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString -enable-auto-import
※↑一行です。
と打ちます。

すると・・・なにも出ないですが・・・コンパイル完了です。

./hello.exe と打って実行!


$ ./hello.exe
Hello Objective-C World

出来ました!
なんかやっぱりこの瞬間のためにプログラマやってますなぁ!

2011年8月6日

WordPressプラグイン「Throws SPAM Away」アップデートしました。→1.3

投稿者:isc_blog

WordPress用スパム対策プラグイン「Throws SPAM Away」をアップデートしました。
Version 1.3 になりました。

Throws SPAM Away

コメント内に日本語文字列が一つも存在しない場合あたかも受け付けたように振る舞いながらも無視

今回のアップデートでは下記の機能が追加となりました。
・コメント欄下に現れるメッセージの設定機能
・エラーだった場合に遷移する画面上の文言設定

また、前のバージョンまでの不具合も修正しております。

アップデートよろしくお願い致します。

このプラグインは海外からのスパムコメントに悩んでいらっしゃる方向けの「海外からのコメント排除」ツールです。
コメント記述時にコメント内の文字列をチェックし「日本語」が規定数以上(デフォルト三文字)含まれていないと
「あたかも受け付けたようい振る舞いつつ・・・投稿していない」という挙動をします。
コメント投稿時に文字認識での認証を入れてもダメだったサイトに最適です。

日本語が何文字以上含まれていないといけないか・・・の設定及び
エラー画面の表示時間、エラー文言、コメント欄の下に表示される注意文言が変更出来ます。

海外のお客様が多いサイトでは使用しない方が良いと思われますのでご注意下さい。

是非、試してみてください。

※注意!!:「書けちゃうじゃん!」という方、ログアウトしてください。ログインしている方には効かないようになっています。(説明追記しないといけないな・・・)

2011年8月5日

MySQLとPostgreSQLと・・・

投稿者:isc_blog

PHP+PostgreSQL(8.2.4)用に開発したアプリケーションをPHP+MySQL(5.1.22)に移植しようとした際に引っかかった点を書き残しておきます。

まず、はじめに私自身はどちらかというとOracleのSQLが最も得意で
あとは順に MySQL>SQLServer>PostgreSQL>Other という感じのスキルです。

で、今回、PHP+PostgreSQLでの開発だったのですが
PostgreSQLが大得意な方ならもっとこう違った書き方があるじゃん!という書き方をしていない前提です。

なので普段MySQL向けのSQLを書くことが多い方がPostgreSQLを使用する場合の注意点と言ってもいいかもしれません。

では、本題。

【日付の計算が違う】
例えば
データ投入日付が10日以内のデータを表示する・・・
みたいなSQL文です。

PostgreSQLの場合
[sql]
SELECT *
FROM user_tbl
WHERE CAST(insert_date AS DATE) + CAST(’10 days’ AS INTERVAL) >
current_timestamp
[/sql]
こんな感じ・・・

MySQLの場合だと
[sql]
SELECT *
FROM uset_tbl
WHERE DATE_ADD(insert_date, INTERVAL 10 DAY) > NOW()
[/sql]
こんな感じになります。

結構、こんな感じのSQLが多いと大変ですね。

【LIMIT OFFSETの使い方が違う】
PostgreSQLの場合は
[sql] 
offset 100 limit 10
[/sql]
と書いた場合
100件目から10件抽出 という意味なんですが

MySQLの場合は
[sql]
limit 100,10
[/sql]

100件目から10件抽出になります。
MySQL5以降の場合実はPostgreSQLから継承した書き方も出来ます。
[sql]
limit 10 offset 100
[/sql]
これも同じです。(10件中抽出、100件目から。)

で、問題なのが、PostgreSQLの場合は 「100件目から全部」みたいなSQL
[sql]
offset 100
[/sql]

が書けるのに対し、MySQLでは「limit」を書かずに「offset」を書くことが出来ないため
同じSQLは書けません。
※実際に試してNGだったのと、いろいろ調べましたがどの文献も「limit」の限界ありきのものしかなく「offset」の使用に関しても「limit」ありきな見解だったので「出来ない」と思っています。なにか手は無いものでしょうか。
※まぁ、Oracleならもっと複雑に書くべきところなので仕方ないですね。PostgreSQLのメリットということで・・・
※参考まで・・・Oracleでのlimit,offsetもどきを実践してくださっている文献

【MySQLのauto_incrementは・・・PostgreSQLで・・・】
MySQLのauto_increment はPostgreSQLで SERIAL になります。
具体的には

MySQL
[sql]
CREATE TABLE tablename (
colname MEDIUMINT NOT NULL AUTO_INCREMENT
);
[/sql]

PostgreSQLでは・・・・

[sql]
CREATE TABLE tablename (
colname SERIAL
);
[/sql]
すでに存在するテーブルに対して追加で行う場合は
[sql]
ALTER TABLE tablename ADD COLUMN 列名 SERIAL
[/sql]
となります。



今回あまり複雑なSQLを書いていないのでこのくらいです。

2011年8月3日