FC2ブログ

Pipes で RSS


RSS といえば、Google リーダーを使っていますが
残念ながら、すべてのサイトでRSS提供はしていません

そこで、今回興味をもったのが
日経 Linux (リナックス) 2011年 12月号 [雑誌]
に掲載されていた Yahoo! Pipes を使って
WebページからRSSを生成するプログラムの作成

それではまずは、米国の Yahoo! のアカウントを取得します

なぜなら、このYahoo! Pipesは 米Yahoo! が提供するサービス
であるためです

http://pipes.yahoo.com/pipes
へアクセスし、画面右上の Join Now をクリックします

Screenshot-Ubuntu 64-bit - VMware Player-3

次の画面で登録に必要な個人情報を入力します

Screenshot-Ubuntu 64-bit - VMware Player-4

英語で表示されているのでわかりにくいかもしれませんが
入力すべき項目は

氏名 Name

性別 Gender
(男性なら Male 女性なら Female )

誕生日 Birthday
Select MOnth で上から1月~12月になっています
Day に日 Year に年数
1975年12月20日なら December 20 1975 となります

居住国 Country
日本なら Japan を選択

郵便番号 Postal Code
になります

Language の選択がありますが、日本語には対応していません
------------------------------
次に
Selcet an ID and password の項目で
希望の Yahoo ID を入力します
ただし、他の人とかぶるのはダメです

Password を入力し
Re-type Passwoerd で確認のため、もう一度パスワードを入力します

このときに、よこに strong という文字とバーがでますが
これはパスワードの強度です
英数字の組み合わせ、大文字小文字の組み合わせ、長さなどが影響しています

-------------------------------------------
この次に、In case you forget your ID or password
つまり、IDやパスワードを忘れたときの対処です

Alternate Email (optional)
にいざというときに届けてもらうメルアドを入力します

次に、秘密の質問を決めます
Secret Question 1 の中から選択します
例えば、この中の1つ
What is your oldest child's nickname?
なら子供のときのニックネームは?
となり、自分にのみわかりそうな答えを

Your Answer のところへ入力します

そして、もうひとつ秘密の質問を設定します
Secret Question 2 の中から選択します

今回は、What is the name of your favorite books ?
あなたの好きな本の名前は?

で答えを Your Answer のところへ入力します

-------------------------------------------------------------
ここまで入力したら、次に
Type the code shown のところに
認証用の文字を入力します

すこし歪んでいるような書体で書いてあるのでわかりにくいですが
頑張って入力してください

入力しにくいときには
Try a new code をクリックすると別の文字に切り替わりますで
入力しやすい文字になるまで変えることもできます

最後に
Create My Account をクリックすれば
アカウント作成の確認画面になりますので

contine をクリックします

アカウント作成が成功すると
ログイン状態になります

次回はいよいよ Pipes の作成を行って行きます

スポンサーサイト



テーマ : Linux
ジャンル : コンピュータ

Android Twitter アプリ作成 その2


Android Twitter アプリ作成
アプリの登録をして、

Consumer key
Consumer secret
Access token URL
Callback URL

を取得したら

次に twitter4j をダウンロードします

http://twitter4j.org/ja/index.html#download
へアクセスし
最新安定版ビルドをダウンロードします

2011/11/29 の時点では
twitter4j-android-2.2.6-SNAPSHOT.zip(Android向けのスリムバージョン)
が新しいようです

書籍に載っていたのは
twitter4j-android-2.1.12-SNAPSHOT.zip
でしたので、もしかしたら
再現できずに途中でつまづくかもしれませんが
まずは実験です

ダウンロードしたら、解凍します

使っている環境が ubuntu なので、
ホームディレクトリのダウンロードディレクトリにありますので

mkdir twitter4j
cd twitter4j
unzip $HOME/ダウンロード/twitter4j-android-2.2.6-SNAPSHOT.zip

これで解凍します

これで下準備完了なので、
さっそくEclipse でプロジェクトを作成します

ついでに、テスト環境も作成するので
JUnit でテストできるようにします

今回はプロジェクト名を twitter4j にしてみました

ここへ twitter4j のライブラリをコピーしたいので
プロジェクトを右クリックして
new > Folder

フォルダを新規作成します

すると、assets ディレクトリの下に
libs ができます

ここへ
先ほど解凍した $HOME/twitter4j/lib/twitter4j-core-android-2.2.6-SNAPSHOT.jar
をコピーします

コピーはドラッグ&ドロップでOKです

最後にプロジェクトを右クリック > Properties

Java Build Path をクリックし
Add JARs ... をクリック

ディレクトリの中から
witter4j-core-android-2.2.6-SNAPSHOT.jar
を選んでOKを押せば完了です

ちなみに、私の場合は
Twitter4j プロジェクトの中の libs ディレクトリにあります

twitter4j.png

テーマ : プログラミング
ジャンル : コンピュータ

Android Twitter アプリ作成


まず、最初に
過去記事のtwitter のアプリ登録

を参考に、Twitter アプリの登録をします

これは自分の過去記事なので、
もっとわかりやすい説明としては
Twitterアプリケーション登録の仕方

が参考になります
こちらは画像なども入っていますのでとても参考になります

それでは、作成開始です

まず
https://dev.twitter.com/
へアクセスし

Create an app をクリックします

次に、ログインする画面になりますので、
twitter アカウントとパスワードを入力

*がついているところは必須項目の入力事項です

まず
Name にはtwitter アプリの名前
これは、公開されるので、他の人とかぶるのはダメです
http: で始まるドメインとおなじですね
ただし、twitter の文字をふくむことはできませんので注意

Description
これには、アプリの概要をかきます
Android テストアプリとかそんなかんじで

Website
これは、自分のWebサイトのURLを書き込みます
ない場合には、この機会に適当にブログをつくってみましょう

Callback URL
これはほとんどつかうことはないようです
(本来は使うかもしれませんが、今回はテストなので)

あと、使うときの規約に同意しましたという意味の
Yes I agree
というチェックボックスへチェックをいれます

最後に、ちょっとわかりにくいのですが
認証の文字が崩したようなかんじで載っているので
これをスペースでわけて入力します
例えば、
ABC EDF
みたいなかんじで

最後に create twitter application
をクリックします

これで、作成が完了すると
Consumer key
Consumer secret
Access token URL
Callback URL
がわかるので、メモしておきます

テーマ : プログラミング
ジャンル : コンピュータ

Capistrano を使って複数サーバーのコントロール


Capistrano を使うことで、複数のサーバーで任意のコマンドを同時に
実行できるらしいので、さっそく実験

さすがに複数マシンを用意するのは現実的ではないので、
VMware Player でクライアントとサーバーのマシンを作成

使っているマシンは ubuntu にしてみました

ただし、注意点として
クライアント、サーバーともに
共通のユーザをつくってパスワードも同じじゃないとダメらしいです

ちなみに、操作性をあげるため、VMware Tools をインストール
しています

Virtual Machine > Install VMware Tools
の後に

cd /tmp
tar zxvf /media/VMware\ Tools/VMwareTools-8.8.1-528969.tar.gz
cd vmware-tools-distrib/
sudo ./vmware-install.pl
の後に再起動すれば反映されます

まずはクライアント側で
sudo apt-get install ruby1.8
sudo apt-get install rubygems1.8
で ruby と gems をインストール

sudo gem install capistrano
で capistrano をインストールします

次に
echo "export PATH=/var/lib/gems/1.8/bin:\$PATH" >> ~/.bashrc
でライブラリ参照パスを設定

source .bashrc
で設定を反映

ssh-keygen -t rsa
で公開鍵ファイルを作成
パスフレーズを聞かれるけど、ひたすらEnter でパスフレーズなしのものを作成

ここまでがクライアントの設定

今度はサーバー設定
sudo apt-get install ssh
でssh サーバーをインストール

ついでに ifconfig でIPアドレスを確認しておきます
192.168.10.114

次に、クライアントで scp を使って鍵のコピー
scp .ssh/id_rsa.pub snowpool@192.168.10.114:~
でコピー
文法としては、
scp ファイルの置き場のパス ユーザ名@IPアドレス:コピー先のパス

となります

またサーバに戻って設定をします
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
で認証済みの鍵として登録

chmod 600 ~/.ssh/authorized_keys
でパーミッション変更

ここまで完了したら、次に
またクライアント ubuntu に戻ります

vimcapfile でファイルを新規作成

日経 Linux 2011-12 についているDVDにスクリプト内容が記述されているので
これを使いました

ただし、注意点として ubuntu 11.10 の場合エラーになります

そのまま
cap addJava_home
を実行しても
Invalid gemspec in [/var/lib/gems/1.8/specifications/capistrano-2.9.0.gemspec]: invalid date format in specification: "2011-09-24 00:00:00.000000000Z"
/usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:926:in `report_activate_error': Could not find RubyGem capistrano (>= 0) (Gem::LoadError)
from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:244:in `activate_dep'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:236:in `activate'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:1307:in `gem'
from /usr/local/bin/cap:18

というようにエラーになります

原因は
[ruby][tips]gemのインストール時に invalid date format in specification でエラー

に載っているように
日付のフォーマットの記述がおかしくなっているためでした


sudo vim /var/lib/gems/1.8/specifications/capistrano-2.9.0.gemspec
でファイルを開き

s.date = %q{2011-09-24 00:00:00.000000000Z}


s.date = %q{2011-09-24}
へ修正

これで、無事に実行することができます

まだ、構文などの詳しいところは勉強中です


テーマ : Linux
ジャンル : コンピュータ

数値のフォーマット情報を取得する

PHPで通貨関連表記できそうなものがあったのでメモです


実行環境における数値のフォーマットに関する情報を調べるには
localeconv() を使う

localeconv() は
ローカルな数値および通貨フォーマット情報を格納した連想配列を返す

連想配列キーは以下のようになる

decimal_point
小数点文字

thousands_sep
1000ごとの区切り文字

grouping
数値集合を有す配列

int_curr_symbol
国債通貨記号

mon_deciamal_point
通貨用の小数点文字

currency_symbol
ローカル通貨記号

mon_thousands_sep
通貨用の1000ごとの区切り文字

mon_grouping
通貨集合を有する配列

positive_sign
正の値を表す記号

negarive_sign
負の値を表す記号

int_frac_digits
国債分割桁

frac_digits
ローカル分割桁

テーマ : プログラミング
ジャンル : コンピュータ

iPod touch を複数PCで同期



で iCloud を使ってみようとおもうのですが
どうやら iOS 5 以降のようなので、まずはシステム更新のひつようがありそうです

まずは、念のためバックアップしたかったのですが
現在使用しているノートパソコンで iTunes のアップデート&インストールが
できないため
VMware Player へインストールした Windows XP で
アプリなどのバックアップすることにしました

とりあえず iTunesをインストールし
次に、
1台のiPodを複数のパソコンで管理・iTunesで同期する方法
を参考に、まずはアプリを同期します

あとは、動画と音楽をバックアップする方法を調べてみます

テーマ : PC周辺機器
ジャンル : コンピュータ

OAuth 認証の認証手順(簡単な説明)


最初に、利用者登録をします

次に、コンシューマキーとコンシューマシークレット
を発行してもらいます

そしたら、コンシューマキーと
コンシューマシークレットを送信します

未承認のリクエストトークンが返ってくるので
ユーザIDとパスワードを入力し
Twitter の認証用画面にリダイレクトします

これで、認証されると
承認されたリクエストトークンが送られてきます

この承認のリクエストトークンを使うことで
アプリはTwitter サービスを利用できるようになります


このあたりのことを実際に動画でおこなっているものもあります

以前参加しました
Web サービス API 勉強会
でも取り扱っていましたので、ここを参考にするとよりわかりやすいと思います

Ustream でも動画配信されていましたので、実際に動画をみながらおこなうと
よりわかりやすいと思います

サンプルなどを探すには
web api twitter などというように検索すると
いろいろとでてきますので、こちらも試してみると
いろいろなヒントが得られるかもしれません

テーマ : プログラミング
ジャンル : コンピュータ

Twitter4j


ドキュメントサイトは
http://twitter4j.org/ja/index.html
ちなみに、これは日本語

Twitter4j 1は Twitter が公開しているAPI のラッパークラス
自分でAPI を実行する処理を記述しなくてもTwitter4j でAPIを実行し
結果を受け取る処理を実行してくれる
100% Pure Java で記述されているので、ライブラリは他に必要ない

もう一つ重要なキーワードが OAuth 認証

これは、オーオースと読みます
Twiter では OAuth 認証を使います
昔はBasic 認証だったけど、セキュリティ問題から
OAuth 認証に変わりました

この認証方式は、マッシュアップをするときによく使われます

OAuth に関しては
APIアクセス権を委譲するプロトコル、
OAuthを知る



とか

第147回 便利と危険は裏返し ~ 知っておきたい、OAuthの仕組み ~

などで詳しい説明が載っています

ほかにも OAuth 認証 で検索するとでてきます

テーマ : プログラミング
ジャンル : コンピュータ

Could not find YouTubeSearchAPIs.apk!の対処(未解決)

YouTube アプリでライブラリを利用するように変更したところ
エラーになってしまうため、解決するために情報収集してます

Android】「Could not find *.apk」のエラー対処

を参考に対処してみました

まず、debug.keystore を探さないといけないので
sudo find /home -name debug.keystore
でファイルを検索

$HOME.android/debug.keystore
に存在するので、これを元に対処

find コマンドは、システムからファイルを検索できるコマンド
使い方は
どこにあるか分からないファイルを検索

を参考にしてみました

rm -f .android/debug.keystore
でファイルを削除

次に、Eclipse で
Project > Clean を実行

どれを消すか聞かれるけど、とりあえず全部消してみるので
clean all projects
を選択してOK

しかし、これでもダメ
とりあえず、サンプルをインポートして実行するには問題ないのですが

自作のほうや、インポートした変更前のサンプルを改造すると
エラーになります

ソースなどを眺めて、解決策を調べてみます

テーマ : プログラミング
ジャンル : コンピュータ

脆弱性スキャン開始

まずは、ログインしてから
Task タグのところにあるメニューアイコンをクリックします

Screenshot-Ubuntu 64-bit - VMware Player

でてきた入力画面で
Name には管理タスク名を入力
今回はとりあえず test

Scan Config はそのままの Full and fast でフルスキャン

scan targets はどのサーバーを対称にするかなので
そのまま localhost を選択します

これらを入力したら、create ボタンをクリック

すると、新しいタスクができているので、再生ボタンをクリックすると
解析が始まります
結構時間がかかりますので、解析には時間に余裕を持って行ってください

Screenshot-Ubuntu 64-bit - VMware Player-1


ある程度待ってから refresh ボタンをクリックすると
Status が Done になっているので、これをダブるクリックし

Report をクリックするとスキャン結果のレポートが表示されます

テーマ : Linux
ジャンル : コンピュータ

サーバーの脆弱性の解析

OpenVAS を使うことで、ネットワーク経由でアプリを
スキャンし、セキュリティホールを見つけてくれます

よくあるパターンで
パッケージの更新忘れや
ソースからインストールしていて放置
などの脆弱性検出が可能

また、是に寿悪性を深刻度で分類してくれるのでアプリがわかりやすいなどなど

日経 Linux と
OpenVAS セットアップ on Ubuntu10
を参考にインストール&設定


Ubuntu はペッケージがるけど、最新版はまだ使えないので
開発元のrepository を追加して最新版をインストールできるように設定
sudo sh -c "echo \"deb http://download.opensuse.org/repositories/security:/OpenVAS:/STABLE:/v4/xUbuntu_11.10/ ./\" >> /etc/apt/sources.list"


sudo apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys BED1E87979EAFD54
で配布元サイトの公開鍵を追加

sudo apt-get update
でパッケージリスト更新


sudo apt-get install greenbone-security-assistant gsd libmicrohttpd10 libopenvas4 openvas-administrator openvas-manager openvas-scanner openvas-cli sqlite3
でサーバーとクライアントのパッケージをインストール

インストール完了後、OpenVAS サーバとクライアントの設定

まず、SSL通信に使うためのデジタル証明書を作成

test -e /var/lib/openvas/CA/cacert.pem || sudo openvas-mkcert -q


test -e /var/lib/openvas/users/om || sudo openvas-mkcert-client -n om -i

を実行

次に、データベースとプラグインの更新
sudo openvas-nvt-sync
sudo /etc/init.d/openvas-manager stop
sudo /etc/init.d/openvas-scanner stop
sudo openvassd
sudo openvasmd --migrate
sudo openvasmd --rebuild

次に、サービスを起動します

sudo killall openvassd
sudo /etc/init.d/openvas-scanner start
sudo /etc/init.d/openvas-manager start
sudo /etc/init.d/openvas-administrator restart
sudo /etc/init.d/greenbone-security-assistant restart

最後に OpenVAS の管理者になる Admin ユーザを追加
test -e /var/lib/openvas/users/admin || sudo openvasad -c add_user -n admin -r Admin
このとき、パスワードを聞かれるけど、これは
sudo コマンドを使っているためなので、打つパスワードは
ubuntu のものになります

ユーザ作成後、gsd を実行すると Login 画面がでてきます

Profile には適当に名前を入れます
今回は test

次に
Serveraddress には、サーバーIPアドレスもしくは
自マシンのみなら localhostを指定
(今回はlocalhost に指定)

Username には admin
password には sudo のときに入れるユーザパスワードを入力します

テーマ : Linux
ジャンル : コンピュータ

PHPで文字列の暗号化

PHPでは、文字列の暗号化ができます

忘れないうちにメモ

crypt() の暗号化アルゴリズム一覧

CRYPT_STD_DES
標準DES アルゴリズム
0~9
A~Z と a~z の文字列のみ指定可能
最初の8文字しか暗号化しないので注意
シードは2文字

CRYPT_EXT_DES
拡張DES アルゴリズム
_の後に4バイトの反復回数、4バイトのシード文字列を指定
0~9
A~Z と a~z の文字列のみ指定可能
シードは9文字

CRYPT_MD5 
MD5アルゴリズム
シードは $1$で始まる12文字

CRYPT_BROWFISH
BlowFish アルゴリズム
シードは$2a$ で始まる33文字
$2a$の後に2桁のコスト値、その後に$で囲んだシード22桁の
文字列を指定
0~9
A~Z と a~z の文字列のみ指定可能

CRYPT_SHA256
SHA256アルゴリズム
シードは$5$ で始まる文字列
$5$ の後に16桁のシード文字列を指定
シード文字列に round~回数$をるけることで
ハッシュループ回数も指定できる
0~9
A~Z と a~z の文字列のみ指定可能

CRYPT_SHA512
SHA512アルゴリズム
シードは$6$で始まる文字列
$6$の後に16桁のシード文字列を指定
0~9
A~Z と a~z の文字列のみ指定可能
シード文字列に round~回数$をるけることで
ハッシュループ回数も指定できる

テーマ : プログラミング
ジャンル : コンピュータ

android アプリのバージョンアップ

Android アプリの開発において
バージョンアップする方法についてのメモです

Android アプリを開発して、バージョンをあげるには

AndroidManifest.xml を編集します

編集するのは
android:versionCode="1"
android:versionName="1.0"
の部分

android:versionCode="1"
は、Android システムに向けての情報
バージョンアップするときには、この数値を1ずつあげていきます

android:versionName="1.0"
こちらは、ユーザ向けの情報
よく、ダウンロードするときに ver1.0 とか
ver1.1 とか書いてあるところにあたります

これらを修正して、再度アップロードすれば、
バージョンアップしたアプリの公開なのですが
新しく公開したときことは異なり、バージョンアップしたときは
新規アプリ扱いにはなりませんので
自分でマーケティングする必要があります

最近だと twitter, facebook で告知するといいのかもしれません

テーマ : プログラミング
ジャンル : コンピュータ

Yahoo Map API の情報収集開始

Google Maps API が来年から有料となるため、
Yahoo 地図に乗り換えるべく、情報収集しています

検索だけでは効率が悪いため、Google アラートに登録し
情報収集することにしました

現在、参考になりそうなサイトとして

Yahoo!地図WEB APIでマップ表示

Yahoo!地図APIに挑戦

Yahoo!地図 JavaScriptマップAPI入門

ゼロからはじめるYahoo! Maps API

MIT Media Lab新所長、伊藤穰一とPivotalのCTO,Ian McFarlandが語る会に行った

です

テーマ : インターネットサービス
ジャンル : コンピュータ

Android でライブラリプロジェクト


ソースコードをコピーするとプロジェクト間でコピーする前後で
機能差、バグ、バグの修正など、それぞれのバージョンで違うという状況が発生する

この場合、共通クラスを修正すると
他のプロジェクトにも繁栄するという面倒な作業が.......

これを一ヶ所にまとめれば、非常に効率的になる

というわけで
ライブラリプロジェクトを作成して
共通クラスをコピーしなくても使えるようにする

まずは、今回作成したYouTubeSearch プロジェクトに対してライブラリを適用

新規プロジェクトを作成して
プロジェクト名は
APILIBs

create acrtivity のチェックはいらないのではずして
build target は android 2.2
package name にはnet.linuxliker.APILIBs
テストもしてみたいのなら
JUnit テストプロジェクトも作成する(ただし、こちらはまだできていない)

とりあえず、できたら、プロジェクトのプロパティの設定

プロジェクトを右クリックして
Properties を選択

Android をクリックし、右側画面の下側にある
is Libray をチェック

Apply を押して適用します

liblary.png

テーマ : プログラミング
ジャンル : コンピュータ

Webサーバーログの多面解析

日経 Linux (リナックス) 2011年 12月号 [雑誌]
を参考に、Webサーバログの多面解析ソフト
Visitors をインストールしてみました



まずは、環境を整えます

sudo apt-get -y install ssh nautilus-open-terminal tasksel
sudo apt-get -y install vim
sudo apt-get -y install ia32-libs
sudo apt-get install build-essential graphviz
で必要なものをインストールします

ssh は、リモート操作に必須
nautilus-open-terminal は右クリックで端末を開くため
tasksel は LAMP を簡単構築するためです
vim はテキストエディタ
ia32-libs は32ビット互換ライブラリ
build-essential はC言語関連パッケージ
grahviz はグラフ作成です

sudo tasksel で起動して
LAMP を選択してインストールします

wget http://www.hping.org/visitors/visitors-0.7.tar.gz
でファイルを取得し
tar zxvf visitors-0.7.tar.gz
で解凍

cd visitors_0.7/
make
でファイルのコンパイル

sudo cp visitors /usr/bin/
でファイルを移動します

これで準備OKです

解析の手法は書籍どおりでOK

最後のほうで、自身のサイトのドメイン名を使うところがあるけど
これは
tasksel で apache2 がインストールされているから
http://localhost を指定すればOKです

実行した後、解析結果は
$HOME/visitors_0.7/
の中に
20111118_report.html
というように、年月日_report.html で保存されているので

解析結果をみたいのなら
このファイルをダブルクリックすれば
ブラウザが立ち上がり、解析結果をみることができます


テーマ : Linux
ジャンル : コンピュータ

is_array() について

PHPのめもです

配列かどうか調べるには
is_array() を使う

is_array() は、引数の変数の方が配列型であるなら、TRUE
そうでないなら FALSE を返す

is_array()
の使い方は
論理値 = is_array(変数);

sample では、ちょっとした三項演算子をまぜている

たとえば
echo "\$bool_var は".((is_array_($bool_var))? "配列だよ" : "配列じゃねぇ");

さて、これの解説
echo で、表示しているのが
\$bool_var は
というところ、
\がついているのは $の意味を無効化するため
無効化しないと、変数として作動してしまう

.(処理);
で続いているところの解説

. はPHPではその後に文字を書くことを意味している
つまり、その後の処理内容がかかれる

もし、is_array() の結果が配列なら
\$bool_var は配列だよ
となり、違うなら
\$bool_var は配列じゃねぇ
となる

あと、三項演算子が使われているけど、これを応用すると
いろいろとできる
今回の場合、is_array() の結果を三項演算子で使っている
まず、is_array() の実行結果が三項演算子の処理の条件にしていて
True なら、(配列の場合)
配列だよ
が実行され
FALSE なら(配列以外の場合)
配列じゃねぇ
が実行される

テーマ : プログラミング
ジャンル : コンピュータ

YouTube の Data API メモ



Google Android WebAPIプログラミング入門
をみながら YouTube Data API のサンプルを再現してみたときに
つまづいたことがあったのでメモです

インターネットに接続するのに必要なパーミッション
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

そして
アプリを実行して、検索結果のリストを出すときに
<activity android:name="SearchActivity" android:icon="@drawable/icon" android:label="@string/app_name"></activity>
が必要になります

ちなみに、サンプルソースをダウンロードして、
プロジェクトをインポートしたときに

インターネットに接続するのに必要なパーミッション
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
が AndroidManifest.xml の中で抜けているため、
そのまま実行してもエラーとなりますのでご注意

また、JUnit Test のところも
数値が異なるため、JUnit のテスト結果にある
エラーメッセージを参考に、コードの修正が必要になります

テーマ : プログラミング
ジャンル : コンピュータ

Pocket WiFi GP02 検討中

Pocket WiFi GP02 への機種変を最近検討しています

現在、使用している端末が D12HW というかなり古い機種です

これを ubuntu で使うには
ubuntu でイーモバイル接続(D12HW)
で記述した方法を使います

今回、機種変を考えているのは、このGP02 を使うことで
WiFi 環境ができるのなら、Apple iPod touch 32GB MC544J/A
を外出時につかったり



現在、Android開発の実験端末に使用している
Creative ZEN Touch 2 Android エンターテイメントプレーヤー 8GB ブラック ZN-T28G-BK



これらも使うことができそうなためです

あと、もう一つ気になるのが、米国などではすでに行われているパケット定額の見直し

現在、au の IS04 使っていますが
通信速度をみても、GP02 のほうが早いし
パケット料金を抑えるのにも使えるかもしれません

ちなみに、GP02の詳細は
Pocket WiFi (GP02)
です

ただ、懸念すべきものがあります

それは、使っている環境が Mac でも Windows でもなく
ubuntu ということ

以前、設定ファイルを変更したりといろいろと手間取ったように
今回も設定ができるのかが微妙な点です

このあたりを ubuntu GP02 で検索してみました

Pocket WiFi GP02 設定
を参考にさせていただきました

Pocket WiFi GP02を繋ぐためには「プロファイルの設定」
が必要とのことです

ちなみに、もう一つ考えているのが通常は 4G回線で届くのでOK
では、トンネルなどの電波のとどかない場所では
WiFi 機能だけは使えるのか?それともどちらもNGなのか?
というところです

こればかりは、実験してみないとわかりません

バッテリーの持ちも気になりますので、できれば予備のバッテリーの購入なども
検討したほうがいいのかもしれません

現在、情報収集と資金の検討していますので、
実機導入後、また書き込んで行こうと思います

テーマ : インターネットサービス
ジャンル : コンピュータ

連動する様々なクロス通貨レート

ひさしぶりに、お昼のニュースで為替レートで
ユーロ円がでていたので、書き込んでみました

とはいっても表示されていたのが数日前ですが

表示されていたのが、ユーロ円でした

ちなみに、ユーロ円の値動きの要因は
ユーロ/ドル と ドル/円 がメインで決まります

クロス円の計算は、対ドルレート x ドル円レートですので

さて、このユーロの値動きに影響を与える要素が実は他にもいくつか
存在します

例えば、ユーロ/スイスフラン
そして、
ユーロ/ポンド

この2つが意外に関係します

ドル円、ユーロドルの通貨ペアに特に値動きがないときには
この通貨ペアが影響していることが多いのです

特に、突然の影響を受けるのがスイスフランです

スイスフランも、日本円と同様に、リスク回避のときには買われる通貨です

以前、リーマンショックのときには、円高であると同様に
スイスフランがかなり高値を更新しました

スイスフランは、まれにスイスフラン高により介入しますので
値動きの要因の1つとして考えられます

FX取引の場合、クロス円単体で見がちですが
その国に関係する通貨をみることで、ある程度の要因をつかむことができます

ユーロ/ポンド 以外にも
剛ドル/NZドル
とか、クロススイスフランレートなどもありますので
円以外にも注目してみると取引のチャンスがでてきます

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

Zabbix でサーバ監視 その3

Zabbix でサーバ監視 その2
の続きになります

日経 Linux (リナックス) 2011年 12月号 [雑誌]
によれば、これで firefox を起動し、
http://localhost/zabbix
へアクセスすればOKとなっていますが、見事にエラーです

Zabbix is temporally unavailable !
となり、使えません

画面上部に
mysql_connect Access denied for user 'zabbix@localhost'(using passord:YES)
/usr/share/zabbix/include/db.inc.php:58
とでています

原因を探るため、エラーメッセージを google で検索

Google 検索で、検索した結果、どうやら
PHPのタイムゾーンが設定されていないのが原因ということのようです

これを修正するには
php.ini のdate,tunezone を設定する必要があるようです

sudo /etc/php5/apache2/php.ini
で設定ファイルを開き、
/date.timezone
で検索し
;date.timezone =

date.timezone =Asia/Tokyo
へ変更します

max_execution_time=30

max_execution_time=300

post_max_size = 8M

post_max_size = 16M

mbstring.func_overload = 0

mbstring.func_overload = 2

へ変更しました

設定変更については
Zabbixのインストール
を参考にさせていただきました

これでログインできるかと思ったのですが。相変わらずエラーのままです

ほかの解決方法がないか調べてみました

Zabbix Serverのインストール(Ubuntu Enterprise Server 11.04)
を参考にすることで、原因が判明しました

sudo vim /etc/zabbix/zabbix_server.conf
で見た
DBPassword=zabbix
に対して

sudo vim /etc/zabbix/dbconfig.php
の中の
$DB["PASSWORD"] = "zabbix";
となるべき部分が
$DB["PASSWORD"] = "zabbixapp";
になっていたのが原因でした

これを修正して、
sudo service apache2 restart
で apache2 を再起動

再度
http://localhost/zabbix
で無事にログインできました

ちなみに、初期のログインには
ユーザ名
admin

パスワード
zabbix
でログインになります

テーマ : Linux
ジャンル : コンピュータ

var_dump() について

PHP逆引き大全 516の極意
をみながらPHPの勉強をしています



今回、途中で var_dump() が出てきましたが
わかりにくかったので、検索

どうやら
引数として指定した変数の内容や命令の返値を画面上に出力するもの
というものらしいです

参考サイトは
PHPを学ぶ時、最初に憶えて欲しいvar_dump
です

テーマ : プログラミング
ジャンル : コンピュータ

Zabbix でサーバ監視 その2

Zabbix でサーバ監視
の続きです

sudo apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent

必要なものをインストール

zabbix-server-mysql が Zabbix サーバー

zabbix-frontend-php が管理画面

zabbix-agent がエージェントソフトになります

インストールしている途中に
MySQL の管理者パスワードを聞かれるので、
前回設定した root ユーザパスワードを入力

次に、Zabbix サーバーの MySQLデータベースのパスワードを設定

今回は zabbix にしてみました

使うデータベースを選択する画面になるので、
mysql を選んで 了解を押します

今度は管理画面用のパスワードを聞かれますので
これも別のパスワードにしてみます

今回は
zabbixappuser
にしてみましょう

確認のため、もう一回入力するようにされるので
再度入力します

これで、インストールが完了になります

次回は、初期設定になります

テーマ : Linux
ジャンル : コンピュータ

Zabbix でサーバ監視

日経 Linux (リナックス) 2011年 12月号 [雑誌]
 で Linux 活用事例が載っていたので
さっそく再現開始



今回は、実機投入する前にテストを行うため
64bit Ubuntu デスクトップでできるかを調べるため
VMware Player 4 を使い、同じ環境を作ります

ちなみに、書籍に載っているのは 32bit 環境のようです


まずは最初に
sudo apt-get -y install nautilus-open-terminal
を入れる

次に
書籍に載っているのが 32bit での環境のようなので
32bit 互換ライブラリをインストールするため
sudo apt-get -y install ia32-libs
を実行


sudo apt-get install tasksel
でtasksel をインストールし

sudo tasksel
で起動

カーソルでLAMPまで移動して
スペースキーを押すと * がつくので

次に<了解>をクリック
Screenshot-Ubuntu 64-bit Server Test - VMware Player


あとは、自動で進んでいくので放置

パッケージ取得が完了すると
mysql-server の rootユーザのパスワードを設定するようになります
Screenshot-Ubuntu 64-bit Server Test - VMware Player-1



セキュリティのため、忘れずにパスワード設定しましょう

確認のため、もう一度聞かれるので
再度入力します
Screenshot-Ubuntu 64-bit Server Test - VMware Player-2


これで LAMP環境構築できました

ちなみに、LAMPは
Linux
Apache
MySQL
PHP
の略になります

たまに、PHP ではなく Perl だったりしますが

テーマ : Linux
ジャンル : コンピュータ

パーミッション設定忘れに注意

Google Android WebAPIプログラミング入門
を読みながら、Youtube アプリ作成の勉強してます



今回、単純なエラーをしていました

JUnit Test を行っていましたが
Run As > Android JUnit Test を実行したとき、
エラーがでて、かなり考え込みました

JUnit のエラーログには
at net.linuxliker.data.test.FeedFactoryTest.testCreate(FeedFactoryTest.java:17) at java.lang.reflect.Method.invokeNative(Native Method) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:520) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
となっていて、調べると

assertEquals(iRet,HttpStatus.SC_OK);
に問題があるということだったので、ソースを見ましたが
問題になりそうなところがありませんでした

しかし、よくよく考えてみたら、
AndroidManifest.xml
のパーミッション設定で
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
を追記するのを忘れていました

この権限をつけないと、アプリはネット接続することができません

これが原因でした

テーマ : プログラミング
ジャンル : コンピュータ

大量生産と芸術品

スティーブ・ジョブズ I
を購入し、読んでみました



昔からいろいろと本は読んでいますが、人物のバックグラウンドを
見てみるのはとても興味深いものがあります

今回、興味を引いたのが
書籍の中にあった文
大量生産可能な芸術品を作る ルイス・ティファニーから学ぶというものでした

そして、ルイス・ティファニーがすべてをやろうとせず
デザインをほかの人たちに与えることができたのはなぜか

というところです



テーマ : 最近読んだ本
ジャンル : 本・雑誌

日経 Linux の特集の再現

今回の 日経 Linux 2011 12月号がおもしろそうなので購入してみました



今回は、ubuntu 10.10 32bit を使って構築しているようです

しかし、いまほとんどのマシンが64bit 対応マシンで
動いているため、一度64bit の ubuntu で構築をしてみます

Ubuntu 11.04にAndroid開発環境を構築する
に載っていましたが
ubuntu で 64bit OS で 32bit 関連を使うには
sudo apt-get install ia32-libs
を実行することで、32bit アプリにもある程度は対応するようです

まず、仮想環境で実験して、成功したら 64bit の実機に搭載してみます

そういえば、久々に VMware Player をインストールしました

バージョンが4になっていましたが
残念ながら、_の入力ができないという欠点はそのままでした

[解決済み] VMware Player 3.1 ゲストOSでの アンダースコア入力について
を参考に
sudo vi /etc/vmware/config
でファイルを開き、

最下行に
xkeymap.keycode.97 = 0x73
xkeymap.nokeycodeMap = true

追記

sudo /etc/init.d/vmware restart
で再起動すれば

無事に使えるようになります

テーマ : インターネット関連
ジャンル : コンピュータ

Elastic IPs でも private IP は変わる

Amazon からのメールがきたため、念のためインスタンスを停止

また、いい機会だったので、
Elastic IPs をつけたときにインスタンスを停止したらどうなるか実験

結果、Elastic IPs をつけていても
インスタンスを停止すると、設定が外れました

インスタンスを再起動し、再度 Elastic IP の設定を行います

次に、HTTPSでの接続を実験

念のため、確認したら Private IP の数値が変わっていたため
firefox でアクセスすると

SSL received a record that exceeded the maximum permissible length.

(エラーコード: ssl_error_rx_record_too_long)

が表示されました

仕方ないため、再度設定ファイルを変更

記述されている IP を Private IP の数値に変更して
Apache2 を再起動

再度アクセスすると、問題なく表示されました

どうやら、Elastic IP は、インスタンスが起動しているときのみ
有効になるようです
そして、一度再起動などをすると
設定が外れてしまうようです

AmazonEC2 API なども公開されていますので
スクリプトを組めるようにスキルアップし
このあたりを対処できるようにするのが今後の課題になりそうです

テーマ : インターネット関連
ジャンル : コンピュータ

AmazonEC2 からメールきました

先日、AmazonEC2 からメールがきました

そして、内容はすべて英語です

内容は

Hello,

We have noticed that one or more of your instances is running on a host degraded due to hardware failure. The host needs to undergo maintenance and will be taken down after 12:00 GMT on 2011-11-08. If you do not take action before this time they will be terminated at this point.


The risk of your instances failing is increased at this point. We cannot determine the health of any applications running on the instances. We recommend that you take appropriate action.

If your instance was launched from an EBS-backed AMI, issuing a stop and start from the AWS Management Console will migrate your instance to new hardware and help avoid any unforeseen downtime.

For more options to stop and start your instance please see:
http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/starting-stopping-instances.html

If your instance was launched from an instance store-backed AMI, you should launch a replacement instance from your most recent AMI and migrate all necessary data to the replacement instance.

Should have you have any additional questions, we offer AWS Basic Support via our Community Forums for free, or Premium Support for one-on-one assistance direct from an AWS Developer Support Engineer at http://aws.amazon.com/support.

Sincerely,

The Amazon EC2 Team

ここは手っ取り早く
Google 翻訳
を使って見ました

翻訳してみると
こんにちは、

我々は、インスタンスの1つまたは複数が原因でハードウェア障害のために縮退ホスト上で実行されていることに気づいた。ホストは、メンテナンスを受ける必要があり、2011年11月8日の12:00 GMT後に停止します。あなたがこの時間より前に行動をとらないならば、それらはこの時点で終了されます。



失敗、インスタンスのリスクは、この時点で増加している。我々は、インスタンス上で実行される任意のアプリケーションの健全性を判断することはできません。我々はあなたが適切なアクションをとることをお勧めします。

インスタンスがEBSでバックアップされたAMIから起動した場合、ストップを発行し、AWS Management Consoleから起動すると、新しいハードウェアにインスタンスを移行し、不測のダウンタイムを防ぐことができます。

停止し、インスタンスを起動できるオプションについての詳細は参照してください。
http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/starting-stopping-instances.html

あなたのインスタンスがインスタンスストア担保AMIから起動された場合、あなたの最も最近のAMIから交換用のインスタンスを起動し、交換用インスタンスに必要なすべてのデータを移行する必要があります。

何かご質問がいるはず、私達は自由のための私達のコミュニティフォーラムを経由してAWSベーシックサポート、またはhttp://aws.amazon.com/supportでAWS開発者サポートエンジニアから直接一対一の支援のためのプレミアムサポートを提供します。

誠実に、

Amazon EC2のチーム

どうやら、メンテのため、インスタンスを停止するとか
バックアップしておくようにということらしいです

http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?starting-stopping-instances.html
をみたかんじでは
stop とかかれているため、インスタンスを一時停止しておこうと思います

テーマ : インターネット関連
ジャンル : コンピュータ

AmazonEC2 Virtualdomain 設定(Https)

AmazonEC2 で HTTPSでのサイトを表示しようとしたものの、


SSL received a record that exceeded the maximum permissible length.

(エラーコード: ssl_error_rx_record_too_long)


* 受信したデータの真正性を検証できなかったため、このページは表示できませんでした。

* この問題を Web サイトの管理者に連絡してください。あるいは [ヘルプ] メニューの [不具合のあるサイトを報告] でこのサイトについて報告してください。

というエラーメッセージがでて、なぜか進めないという状態に

まず、再度 AWSアカウントで、
public DNS で グローバルIP を確認したものの、間違いがないため
さらに悩むことになりました

原因は、指定するのがグローバルIPではなく
ローカルIPであったのが原因でした
ローカルIPは、Private IP Address に表示されています

この問題の解決には
Amazon EC2 (Amazon Linux) での ApacheとPHP インストールと設定 を参考にさせていただきました

運用するドメイン分を記述します。
(ElasticIPを割り当てていてもローカルIPが使われるようなので、
*ではなくIPを指定する場合はローカルIPを記述します。)

ということがかかれていましたので、
この Private IP Address を VirtualHost へ設定し
apache を再起動することで解決しました

ElasticIP を設定していたので、グローバルIPを指定すると思っていました

SSH公開鍵認証ではグローバルIP指定するし、
HTTP接続にもグローバルIPで対応できていましたので、全然気がつきませんでした

このローカルIPと、ElasticIP の関係については
Amazon EC2のElastic IP(固定IPアドレス)を設定する!
に解説が載っていました

どうやら
内部的には、NATを設定して、IPアドレスを自動で割り振り、
DDNSでドメインを与えている
Elastic IP は、そのNATの部分を固定IPにする作業

ということになるようです

どうやら、自宅サーバーなどでの固定IPとは少し違うようです

テーマ : インターネット関連
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック