2011年2月28日月曜日

Googleレシピ検索

好き嫌いありますか?

私はグリンピースがダメ。。

チャーハン食べたいけど、
グリンピース入ってるしとか、
天津飯の上に乗ってる意味ないよねとか、
カレーパンに紛れこんでテンション下がることも多々あります。

じゃあ、自分で作ればいいじゃん・・・。

そんなときに役に立つのが、”Googleのレシピ検索”です。

使い方は簡単。

1.食べたいメニューを検索します
2.検索結果から左のメニューの中から、”レシピ”をクリックします。
3.すると、下に食材が表示されます。
4.食材の横に””と””のチェックがあります
5.いらない食材の”無”にチェックすると、
その食材を除外したメニューが表示されます。
※グリーンピースを使わないレシピを検索してみました。



これで苦手な食材を回避できます!!


マイクロアドBTパートナーでおこづかいゲット!

2011年2月27日日曜日

[Android]ストップウォッチを作った

ストップウォッチを作ってみました。
→タイマー(android.widget.Chronometer)の使い方です。

画面レイアウトはこんな感じ

=== ソース ===
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;

public class ChronometerActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button b1 = (Button)findViewById(R.id.Button01);
b1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startChronometer();
}
});

Button b2 = (Button)findViewById(R.id.Button02);
b2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
stopChronometer();
}
});
}

private void startChronometer() {
Chronometer c = (Chronometer)findViewById(R.id.chronometer);
// タイマーリセット
c.setBase(SystemClock.elapsedRealtime());
c.start();
}
private long stopChronometer() {
Chronometer c = (Chronometer)findViewById(R.id.chronometer);
c.stop();
return SystemClock.elapsedRealtime() - c.getBase();

}
}


実際に動かしたら、こんなの。

いじょ

マイクロアドBTパートナーでおこづかいゲット!

[Android]起動時にperformLaunchActivityエラー

デバッグ実行時に「performLaunchActivity」エラーが。。

以下のサイト「Immortalityさん」に解決法が!
助かりました。ありがとうございますm(__)m

原因は、
プロジェクト作成時に作成したActivityのクラス名を後から変更したため。

クラス名って変えることがあるので、注意しないとね。

マイクロアドBTパートナーでおこづかいゲット!

2011年2月26日土曜日

[Android]Intent起動から地図起動できない

以下のように実装
画面にButton03を配置し、コード上でClickイベントを紐付ける

onCreateメソッド内
=====
Button b3 = (Button)findViewById(R.id.Button03);
b3.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Map起動
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("geo:34.402762,132.459075"));
startActivity(intent);
}
});

=====
実行すると例外(ActivityNotFoundException)が発生します

AndroidManifest.xmlに下記を追加すると強制終了します
<uses-library android:name="com.google.android.maps"></uses-library>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

なんで~?

マイクロアドBTパートナーでおこづかいゲット!

[Android]ButtonをClick時の実装

ボタンのClickイベントの実装方法

画面にボタンを配置します
※ここまでは一緒


その1:OnClickListenerを継承する方法

解説していきます
10行目でOnClickListenerを継承します
    implements OnClickListener{

18行目でボタンを取り出します
        Button button = (Button)findViewById(R.id.Button01);


19行目でリスナーを登録します
        button.setOnClickListener(this);


22行目以降でonClickメソッドをオーバーライド実装します
※10行目でOnClickListenerを継承した場合、実装する必要があります

        @Override
        public void onClick(View v) {

25行目で押されたボタンの種類を確認します
      if(v.getId()==R.id.Button01){

26行目で処理を実装します
    finish();




その2:OnClickListenerを継承しない方法



解説していきます。
16行目でボタンを取り出します
        Button b1 = (Button)findViewById(R.id.Button05);

17行目から作成したボタンにClickリスナーを登録します

        b1.setOnClickListener(new OnClickListener() {

18行目にクリックイベントを登録します
       public void onClick(View v) {

19行目で処理を記述します
        finish();




ほかにも実装方法はあると思いますが、
とりあえず以上です。

マイクロアドBTパートナーでおこづかいゲット!

HelloAndroidアプリ作成

AndroidでHelloAndroidアプリを作ってみました。
・画面に”はろーあんどろいど”と表示
・ボタンをクリックすると、終了します

eclipse と App Inventor でそれぞれ作成してみました。


[画面レイアウト]
App Inventor

eclipse


画面の実装方法はほぼ同じです。


[内部処理の実装]
App Inventor

eclipse

App Inventorはコードを書かない分、実装が簡単。
eclipseは細かな実装が可能。

[エミュレータ]
App Inventor

eclipse


どちらも同じですね。




マイクロアドBTパートナーでおこづかいゲット!

2011年2月25日金曜日

EPUBについて調べた

電子書籍フォーマット「ePub」について、
規格など分かっていない点が多かったので、改めて調べてみました。

まずは、”Wikipedia
概要、問題点、リンクなどまとまっていて、分かりやすい。
http://ja.wikipedia.org/wiki/EPUB

続いて、”公式サイト(IDPF)
英語です。。
分からない訳ではないけど、ちょっと苦手。
克服しないとな。ということで、断念。
http://www.idpf.org/

EPUBは3つの規格から成り立っている
・OPF
・OPS
・OCS


マイクロアドBTパートナーでおこづかいゲット!

2011年2月24日木曜日

アイデアは考えるな。

「アイデアは考えるな。」を読みました。


面白法人カヤックの柳澤大輔さんの著書。

まずは、
帯の「すごい企画を1個出すより、すごくない企画を100個出せ!」に共感。


アイデアの出し方というより、
どうやってアイデアを発想するかがタメになる。

”面白法人”と名乗っているだけあって、
どうやったら”面白く”なるのか、
”面白く””楽しく”しているとどんな風になるのか、
とてもポジティブになれる。

”神様を欺く”のくだりが印象的だったな。
これを意識するだけで、普段の生活が楽しくなる。


マイクロアドBTパートナーでおこづかいゲット!

2011年2月22日火曜日

Googleさんからの悲しいお知らせ

Googleさんから以下のメールが届きました。
====================
サイト運営者様

記録を確認しましたところ、お客様の AdSense アカウントにおいて不正行為の危険性があることがわかりました。不正行為により AdWords 広告主の費用が増大するのを防ぐため、お客様の AdSense アカウントを無効にさせていただく必要があります。未払いの収益と Google に分配された収益はすべて影響を受けた広告主に払い戻されます。

これは Google の広告システム、特に広告主とサイト運営者の関係を公正に維持するための措置ですのでご了承ください。ご理解のほどよろしくお願いいたします。

今回の措置、異議申し立てを行う方法、不正行為全般についてご不明な点がある場合は、次の URL で詳細をご覧ください。
http://www.google.com/adsense/support/bin/answer.py?answer=57153

よろしくお願いいたします。

Google AdSense チーム

====================


ちょっとショック。。いや、だいぶショックです。

ちょっと前に登録している銀行に
グーグルインク(Googleによるテスト入金)が支払われていたので、
「よーし頑張るぞー!」とモチベーション上がっていたのに。

アカウントがなぜ無効にされたかは、教えてくれないのですorz
異議申し立てしても復活する可能性は低いみたいです。

世の中には”アドセンス狩り”なんてものもあるようです。

みなさんも無効化されないように、
アドセンスのプログラムポリシーを再確認しておいた方がよいですよ。


マイクロアドBTパートナーでおこづかいゲット!

2011年2月18日金曜日

Android開発:SQLite

だいぶ間が空いてしまいました・・・。


こちらの連載を元にAndroidアプリの作成技法も学んでいます。


今回は、
「第8回 AndroidのSQLiteを学ぶ」を勉強します。

添付されているサンプルソースを見ないとアプリの作りが見えにくいです。
ポイントとなるところは、記事の中で説明されています。

サンプルでは3つのクラスで構成されています。
・Main.java ・・・ 起動時に呼び出されるアクティビティ。
・DBOpenHelper.java ・・・ データベースの作成・クローズを行うクラス。
・MainStore.java ・・・ データベースへの追加、更新を行うクラス。


SQLの知識がないと少し厳しいかも。
(でも、SQLは難しくないのですぐ分かります。)


まずは、テーブルの作成について。
"CREATE TABLE IF NOT EXISTS Test ( _id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , caption TEXT )"
→ もしTestという名前のテーブルが存在しなければ(IF NOT EXISTS Test)、
”_id”という数値型(INTEGER)の一意なキー(PRIMARY KEY AUTOINCREMENT NOT NULL)で、
表示名はTEXT(caption TEXT)というテーブル作成します(CREATE TABLE)


続いて、テーブルの更新
"ALTER TABLE Test add add_text TEXT"
→列を追加します

それ以外に、
・レコードの追加
・レコードの更新
・レコードの削除


を押さえておくとよいでしょう。

今日はここまで。


blogram投票ボタン

2011年2月17日木曜日

電子書籍フォーマット「EPUB」の公開ドラフト版

"
"



ランキングに参加しています。ポチッとお願いします。blogram投票ボタン

メモ:AR交通事故マップ

交通事故は同じ場所でなんどもおこる。
いつも通る場所でも以外とおきてるもの。
何とか知る手段がないかと考えた。
ARでやればいいんでないでしょうか?

頻発地帯は赤色で見えるようにしたり。
今のとこ携帯を考えるけど、
車の窓に組み込めたらいいな

メモ:twitalk( ツイットーク )

Googleの音声認識エンジンを使用して、Twitterにつぶやく
もうだれか作ってそう。。

blogram投票ボタン

2011年2月16日水曜日

App Inventor for Androidのヘルプ

App Inventor には以下のコンポーネントが用意されています。
が、どのコンポーネントがどんなプロパティ、イベントを持っているのか分かりません。
(ヘルプ見れば分かるけど、英語なので自分用に整理しようかなと思ってます。)



  











ランキングに参加しています。
blogram投票ボタン

2011年2月15日火曜日

バレンタインデー

今日はバレンタインデー。
ということで職場で義理チョコ貰った。

おうちに帰って冷蔵庫を開けると、
チョコレートケーキが2つ重なっていて、
その上に な ぜ か メモが??


うん、うん、優しくするね。
字、上手にかけるね。って。。。

1歳にしては字上手だし、いつも優しいはずなのに。
何かしら(嫁)の意図を感じます。

娘と嫁から1つずつ貰ったケーキを食べようとすると、するどい視線が!?

結局、自分(嫁)も食うんか~~い!!!

これでお返しはそれなりのものを要求されるのは、割りに合わんです・・・。

P.S.
「お犬さん♂にもあげた?」
「忘れた」

2011年2月13日日曜日

App Inventor for Android

Googleの開発ラボで
App Inventor for Android”なるものを見つけました。

携帯電話端末用のアプリケーションを簡単に作成できます。


とのこと。

どんなものか使ってみましたが、結構簡単そう。
多少慣れが必要ですが、Tutrialを見ながらやっていけば、なんとなくアプリ作れます。
※イベントとかコンポーネントとかの意味を知っている前提で。


blogram投票ボタン

ミルキー鉄男

今日のお昼は呉ポートピアパークへ。

冬のシーズンになると、瀬戸内近郊では、
カキのイベントがいろいろと開催されています。

という訳で、今日のお昼は”牡蠣(カキ)
今シーズン初カキです♪

手のひら位の大きさのカキを殻ごと炭火で焼いて食します。

平べったい方を下にして3分焼いて、
ひっくり返して3分以上焼いて出来上がり。

出来上がったら、
利き手でない方に軍手をはめて、
利き手で道具を使って殻をあけます。
※テクニックとかは必要なし。

1kg = 1000円で10個くらい食べました。
やっぱおいしいね♪

半生もあったけど、いまのところお腹は大丈夫。
あたると怖いので、しっかり焼くべし。


その他メニューには、
カキ飯、じゃこ飯、ホタテ、サザエなどなど。
頼まなかったけど、とてもおいしそうでした。

お店の入り口と看板に
”ミルキー鉄男”なるキャラクターが!!
何者なんだろう・・・。



blogram投票ボタン

2011年2月12日土曜日

HTMLパーサ「Html Agility Pack」を使ってみた

「ブログの本文だけを抜き出したい。」と思い、
"ブログスクレイプ"というツールを作成しました。

その時に
"Html Agility Pack"というHTMLパーサ(HTML解析ツール)を使ったので、
ノウハウをまとめておきたいと思います。

"Html Agility Pack"については、
以下のサイトを参考にさせて戴きました。ありがとうございます。

Html Agility Pack公式サイト

・マイコミジャーナルさん
.NET向けHTMLパーサー「Html Agility Pack」で簡単スクレイピング

・neue ccさん
C#でスクレイピング:HTMLパース(Linq to Html)のためのSGMLReader利用法


開発環境は以下の通りです。
・Microsoft Visual C# 2005 Express Edition
・Windows Vista Ultimate SP2


以下、コードの説明をしていきます。
※ブログ用にコードを編集しているので、おかしな箇所があるかもしれません。。


1.URLを直接"Html Agility Pack"に渡しても良いのですが、
文字コードによって文字化けしてしまうので、
文字化け対策としてStreamReaderを使用して、 
文字コード(EUC)を使用してHTMLを取得しています。
(文字化け対策)

//Uriクラスに格納
String strUri = this.txtUrl.Text;
System.Uri uri = new System.Uri ( strUri );

//Webサイトに接続してHTMLを取得
System.Net.WebClient web = new System.Net.WebClient();

//指定の文字コードでHTMLを取得する
Stream st = web.OpenRead( uri.AbsoluteUri );
StreamReader sr = new StreamReader( st, Encodeing.GetEncoding( 51932 ));
String html = sr.ReadToEnd();
sr.Close();
st.Close();


2."Html Agility Pack"を使います。
1.で取得したhtmlを"Html Agility Pack"に渡します。

//HtmlDocumentクラスにHTMLをセット
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml( html );


3.XPathを使ってコレクションを抽出します。
keywordは、
tableタグのclass要素がcontents_tableである要素を抽出するという意味。

//キーワードを設定する
String keyword = @"//table[@class=""contents_table""]";

//XPathを使ってコレクションを抽出
HtmlNodeCollection body =
doc.DocumentNode.SelectNodes( keyword );


4.取得したノードをforeachで出力しています。
どのノードからHTMLを取得するかによって、
node.OuterHtml、node.InnerHtmlなどを使い分けます。

//コレクションから値を取り出す
StringBuilder strTemp = new StringBuilder();
foreach( HtmlNode node in body )
{
strTemp.Append( node.OuterHtml );
}


5.取得したHTMLをファイルに出力します。
ここではStreamWriterを使用して、文字コード(EUC)を指定しています。
(文字化け対策)

//ファイルに書き込む
StreamWriter sw = new StreamWriter ( stream, Encodeing.GetEncoding( 51932 ));
sw.Write( strTemp.ToString() );
sw.Close();


大切なのは、
・手順3でどのコードを抜き出すか
・手順4でどのノードを出力するか
・文字化け対策
だと思います。


もっと簡単に実現できる方法があるかと思いますが、
参考程度にしていただけると助かります。


blogram投票ボタン

2011年2月11日金曜日

ブログスクレイプ

Windowsアプリを作成しました。

ブログの本文を抽出するツールです。
抽出すると、
XHTML形式のファイルを出力します。

ダブルクリックして表示できます。
電子書籍エディタ「Sigil」にインポート可能です。

対応ブログ
・FC2ブログ
・Blogger

今後も随時対応予定です。


アプリブログ
prueba-APPS: ブログスクレイプ

Vector

ご意見・ご感想お待ちしてます。


blogram投票ボタン

アンドロイダー「一周年企画」

以前ご紹介したアンドロイドレビューサイトの
アンドロイダー」さんが一周年企画をしています。

みんなのアプリを作ろう!! ~企画編~


こんなアプリがあったらいいのに・・・
というアイディアを募集しています。

応募も簡単で、投稿フォームに
・アプリ名
・アプリの内容
を書くだけ。

パワポなどのプレゼン資料はいりません。

応募期間は、2011/2/4 ~ 2/27まで

ノミネートされると、3万円
みんなのアプリ賞に選ばれると、+5万円


賞金に釣られて、私も応募してみました!

ノミネートされたアイディアは、
実際に作ってくれるみたいなので、
応募してみてはいかがでしょうか。



blogram投票ボタン

2011年2月9日水曜日

androidな生活

忍者サイトマスターさんで新しいコミュニティを作ってみました。

その名も
「androidな生活」


アンドロイドを使う人、アンドロイドアプリを作る人のためのコミュニティです。
こんなアプリが欲しいなどのアイディアや技術情報の交換などができればいいなと思っています。
まだまだ参加者は少ないですが、興味持たれた方はぜひご参加くださいm(__)m


サイトのアイコン(同盟シール)です。


blogram投票ボタン