「昨日の晩ご飯は何食ったかな?」
というぐらい私の記憶力はひどいものだ。
Javaのライブラリの取得のために初めてMavenを使ってみたのだけれども、少し嵌まったところがあったので、メモを残しておこう。
開発を始めるときの「最初のとっかかり」情報のまとめメインです。プライベート開発チーム共有用でもあります。Java関連が多いですが、MacとかUbuntuとかWin8、Gitなどなども書きます。 間違いがあったら教えてくださいませ。
2012年6月20日水曜日
2012年6月17日日曜日
[Spring] JdbcTemplateとC3P0を使ってデータベースアクセス (前編)
その昔、Javaプログラマ達はJDBCを直接使ってデータベースへのアクセスをしておったのじゃ。
それはそれは長く退屈なコードじゃった。。。
それはそれは長く退屈なコードじゃった。。。
2012年6月5日火曜日
2012年5月13日日曜日
[Red5] 録画ファイルの保存先とかを変更してみよ〜
クライアント側で撮っている動画をサーバ側に保存するとき、デフォルトだと
webapps/<MyAppName>/streams
に保存されるのだけれども、やっぱstreamsのところ変えたいよね。
ということで今回はこの保存ディレクトリ、録画ファイル名をカスタマイズする方法を。
webapps/<MyAppName>/streams
に保存されるのだけれども、やっぱstreamsのところ変えたいよね。
ということで今回はこの保存ディレクトリ、録画ファイル名をカスタマイズする方法を。
2012年4月30日月曜日
[Mac] MySQL使い方メモ
アプリのデータを保存するためのデータベースとしてMySQLを入れてみようかな。
数あるDBMSの中でMySQLを選んだのは、OracleもSQLServerもPostgreSQLもなんとなく触ったことあるけど、いまやなぜか最も普及しているMySQLだけ触ったことかったので。
数あるDBMSの中でMySQLを選んだのは、OracleもSQLServerもPostgreSQLもなんとなく触ったことあるけど、いまやなぜか最も普及しているMySQLだけ触ったことかったので。
2012年4月8日日曜日
[Red5] ApplicationAdapter エントリポイントのメモ
★ApplicationAdapterで定義されているメソッド
☆ApplicationAdapterの上位クラスで定義されているメソッド
●IStreamFilenameGeneratorで定義されているメソッド
呼び出される順番に記載、引数は一部未記載。
☆ApplicationAdapterの上位クラスで定義されているメソッド
●IStreamFilenameGeneratorで定義されているメソッド
呼び出される順番に記載、引数は一部未記載。
2012年4月6日金曜日
[Blogger] テンプレートを変えたんですが。。。
SyntaxHighlighterが消えた?
記事タイトルとブログタイトルの順番も元に戻ってしまった!
がーん。
テンプレート変えても大丈夫なようにできるのかな~。
2012/4/6 google code prettifyにしてみました。
記事タイトルとブログタイトルの順番も元に戻ってしまった!
がーん。
テンプレート変えても大丈夫なようにできるのかな~。
2012/4/6 google code prettifyにしてみました。
2012年4月4日水曜日
[Red5] SLF4j+logbackでログを出力してみたよ
またも1ヶ月ぶりのエントリとなります。週1ぐらいで書ければいいんですが。。。
しかし、アプリってやっぱログ出ないとまずいよね〜(何が?)。
なので、今回はログ出力のやり方を。
しかし、アプリってやっぱログ出ないとまずいよね〜(何が?)。
なので、今回はログ出力のやり方を。
2012年2月28日火曜日
近況 2012年2月28日
前回エントリからしばらく空きました。
開発の方はこつこつとやってきて、やっと動画の録画と再生ができたところです。
課題がどんどん挙がってきますが、1つずつちぎっては投げていきたいです。
さて、今後書き予定のエントリは、
・Red5設定などの雑記
設定ファイルやリモートサーバへのアプリのデプロイとか。
・Red5を介したカメラ映像の録画と再生
・FlashDevelopプロジェクトのフォルダ構成
・FlexにおけるViewとLogicの分離
MXMLとActionScriptの役割分担、コードの書き方について。
MXMLにロジックをごちゃごちゃ書くのは好みではないので。
・Macで開発する場合のツール類
MercurialやFTPクライアント、画面キャプチャツールとか。
ただ、FlexはWinでやるほうが効率いいかも?
そういえばこのサイト、2012/1/10頃にスタートしてぼちぼち600PVぐらいです。
こんな文字だらけの内容をお読みいただいた皆様、ありがとうございます。
海外からアクセスされた皆様、日本語でごめんなさい。
リファラスパム業者の方々、めげずにがんばってください。
開発の方はこつこつとやってきて、やっと動画の録画と再生ができたところです。
課題がどんどん挙がってきますが、1つずつちぎっては投げていきたいです。
さて、今後書き予定のエントリは、
・Red5設定などの雑記
設定ファイルやリモートサーバへのアプリのデプロイとか。
・Red5を介したカメラ映像の録画と再生
・FlashDevelopプロジェクトのフォルダ構成
・FlexにおけるViewとLogicの分離
MXMLとActionScriptの役割分担、コードの書き方について。
MXMLにロジックをごちゃごちゃ書くのは好みではないので。
・Macで開発する場合のツール類
MercurialやFTPクライアント、画面キャプチャツールとか。
ただ、FlexはWinでやるほうが効率いいかも?
そういえばこのサイト、2012/1/10頃にスタートしてぼちぼち600PVぐらいです。
こんな文字だらけの内容をお読みいただいた皆様、ありがとうございます。
海外からアクセスされた皆様、日本語でごめんなさい。
リファラスパム業者の方々、めげずにがんばってください。
2012年2月9日木曜日
Mac初心者の諸々メモ
・Finderの「よく使う項目」とは何か?
/ユーザ/(ユーザ名)/ の中の各フォルダと、
/アプリケーション フォルダ
が表示されている。
ターミナルで見ると下記フォルダに対応しているようだ。
/Users/(ユーザ名)
/Applications
Safariでダウンロードしたファイルは「ダウンロード」フォルダに格納される。zipなどについては自動で解凍され、もとのファイルは削除される。
・アプリケーションのインストール
「アプリケーション」フォルダにアプリのファイルをコピーするだけ。
個々のアプリケーションのファイルは、Macの作法により複数のフォルダやファイルで構成されたものをパッケージ(アーカイブ)している模様。
例えば、「iTunes」は実際はiTunes.appというファイルにパッケージされている。Finderからみると「iTunes」としか見えない。
長クリック(タッチパッドだと二本指クリック)で「パッケージの内容を表示」とするか、ターミナルから中身を見ることができる。
・dmgファイル
ディスクイメージファイル。
ダブルクリックするとデバイスにマウントされて中身が見れるようになる。
アプリケーションはよくdmgファイルで配布されているようだ。
・ショートカットと記号
^とか↑とか見て「キーボードのどこにあるんだ?」と思った。
詳細は下記サイトで。
Mac OS X のキーボードショートカット
今のところ、保存(command+s)、ウィンドウ、タブを閉じる(command+w)、アプリケーションを終了(command+q)をよく使う。
2012/4/17 Command + Option + Escで起動アプリケーションのリストから強制終了できる。
・ターミナルで使用できるテキストエディタ
pico がいいのだろうか。
.(ドット)で始まる隠しファイルを編集するときとかに必要。
(picoって実際はnanoらしいよ。)
viやEmacsも使える模様。
・「パスを通す」
Linuxと同じ。bashの設定ファイルを編集する。
ユーザホームの .bash_profile にexportの記載をする。
(追記)viかなんかで編集した後、有効化。
source ~/.bash_profile
パスの確認は、
echo $PATH
または
printenv PATH
[参考サイト]
ターミナルのことを調べてみた。 - ザリガニが見ていた...。
Mac OS Xで環境変数にPATHを追加する方法 at HouseTect, JavaScriptな情報をあなたに
/ユーザ/(ユーザ名)/ の中の各フォルダと、
/アプリケーション フォルダ
が表示されている。
ターミナルで見ると下記フォルダに対応しているようだ。
/Users/(ユーザ名)
/Applications
Safariでダウンロードしたファイルは「ダウンロード」フォルダに格納される。zipなどについては自動で解凍され、もとのファイルは削除される。
・アプリケーションのインストール
「アプリケーション」フォルダにアプリのファイルをコピーするだけ。
個々のアプリケーションのファイルは、Macの作法により複数のフォルダやファイルで構成されたものをパッケージ(アーカイブ)している模様。
例えば、「iTunes」は実際はiTunes.appというファイルにパッケージされている。Finderからみると「iTunes」としか見えない。
長クリック(タッチパッドだと二本指クリック)で「パッケージの内容を表示」とするか、ターミナルから中身を見ることができる。
・dmgファイル
ディスクイメージファイル。
ダブルクリックするとデバイスにマウントされて中身が見れるようになる。
アプリケーションはよくdmgファイルで配布されているようだ。
・ショートカットと記号
^とか↑とか見て「キーボードのどこにあるんだ?」と思った。
詳細は下記サイトで。
Mac OS X のキーボードショートカット
今のところ、保存(command+s)、ウィンドウ、タブを閉じる(command+w)、アプリケーションを終了(command+q)をよく使う。
2012/4/17 Command + Option + Escで起動アプリケーションのリストから強制終了できる。
・ターミナルで使用できるテキストエディタ
pico がいいのだろうか。
.(ドット)で始まる隠しファイルを編集するときとかに必要。
(picoって実際はnanoらしいよ。)
viやEmacsも使える模様。
Linuxと同じ。bashの設定ファイルを編集する。
ユーザホームの .bash_profile にexportの記載をする。
(追記)viかなんかで編集した後、有効化。
source ~/.bash_profile
パスの確認は、
echo $PATH
または
printenv PATH
[参考サイト]
ターミナルのことを調べてみた。 - ザリガニが見ていた...。
Mac OS Xで環境変数にPATHを追加する方法 at HouseTect, JavaScriptな情報をあなたに
2012年2月8日水曜日
Mac mini(OSX 10.7.2)でRed5開発環境を構築する(1)
※他のRed5関連のエントリはこちら
Mac miniのメモリを増設したおかげでレスポンスが結構よくなったので、開発マシンとすべく、いろいろいじっております。
今回は、Win7でもやったRed5のサーバ側アプリ開発環境を構築してみた。
Red5のインスト
まず、Red5のサイトからdmgファイル(ディスクイメージファイル)をダウンロード。今回は、Red5 0.9.1 Final のOSXのリンクから。
ダウンロードしたdmgファイルをダブルクリック。
別ウィンドウに表示されたRed5の実行ファイルらしきものを「アプリケーション」フォルダにコピー。
これでおしまい。なんてこった。なんなんだMac。
Javaインストール状況の確認
ここでJavaのインストール状況を確認しておく。
ターミナルから"java -version"とすると確認できるが、一番最初に確認する場合は「Javaインストールします?」みたいなダイアログが出た。
ここはあがらわずインスト。
インスト後、もう一度上記コマンドを打つと無事にバージョン確認できた。
ちなみに1.6.0_29だった。
しかしMacすごいな。
Javaもantもsvnも最初から入ってる。
Red5、発進
さて、LaunchpadにRed5のアイコンが追加されているはず。
これをポチっとするとDoc上でRed5アイコンがぴょんぴょん飛び跳ねて、しばらくするとおとなしくなる。
鼓動がおさまったらRed5サーバのフロントページを見てみよう。
阿部サダ高階通憲中井貴一 平忠盛の口調で)
でも、これじゃあログとか動いてるとか見れなくてつまんないので、起動スクリプトから起動してみる。
とりあえず、Doc上のRed5は強制終了。
「アプリケーション」フォルダにRed5をインストールした場合は、下記フォルダに起動スクリプトred5.shがいるはず。
だがしかし、このスクリプト、このままでは実行できない。
ls -lで見てみると分かろう。
ファイルのパーミッションが実行可能に設定されていない。
パーミッションは、、まあ適当に744あたりで。
停止スクリプト red5-shutdown.sh も同じようにパーミッションを変更。
ところで、このフォルダの中にred5-debug.shがいないな。
作った方がいいんだろうか。
次は、Eclipseの設定だな。
Mac miniのメモリを増設したおかげでレスポンスが結構よくなったので、開発マシンとすべく、いろいろいじっております。
今回は、Win7でもやったRed5のサーバ側アプリ開発環境を構築してみた。
Red5のインスト
まず、Red5のサイトからdmgファイル(ディスクイメージファイル)をダウンロード。今回は、Red5 0.9.1 Final のOSXのリンクから。
ダウンロードしたdmgファイルをダブルクリック。
別ウィンドウに表示されたRed5の実行ファイルらしきものを「アプリケーション」フォルダにコピー。
これでおしまい。なんてこった。なんなんだMac。
Javaインストール状況の確認
ここでJavaのインストール状況を確認しておく。
ターミナルから"java -version"とすると確認できるが、一番最初に確認する場合は「Javaインストールします?」みたいなダイアログが出た。
ここはあがらわずインスト。
インスト後、もう一度上記コマンドを打つと無事にバージョン確認できた。
ちなみに1.6.0_29だった。
Javaもantもsvnも最初から入ってる。
さて、LaunchpadにRed5のアイコンが追加されているはず。
これをポチっとするとDoc上でRed5アイコンがぴょんぴょん飛び跳ねて、しばらくするとおとなしくなる。
鼓動がおさまったらRed5サーバのフロントページを見てみよう。
http://localhost:5080/うむ。動いておる。動いておるぞ(
でも、これじゃあログとか動いてるとか見れなくてつまんないので、起動スクリプトから起動してみる。
とりあえず、Doc上のRed5は強制終了。
「アプリケーション」フォルダにRed5をインストールした場合は、下記フォルダに起動スクリプトred5.shがいるはず。
/Applications/Red5.app/Contents/Resources/Javaターミナルを開いてこのフォルダまで移動。
だがしかし、このスクリプト、このままでは実行できない。
ls -lで見てみると分かろう。
ファイルのパーミッションが実行可能に設定されていない。
パーミッションは、、まあ適当に744あたりで。
chmod 744 ./red5.shこれで実行できるようになった。
停止スクリプト red5-shutdown.sh も同じようにパーミッションを変更。
ところで、このフォルダの中にred5-debug.shがいないな。
作った方がいいんだろうか。
次は、Eclipseの設定だな。
2012年2月6日月曜日
いまさらながら、Mac mini (Mid 2011)のメモリを増設しました。
昨年の秋にMac miniを購入したのはいいのだけれども、その動作の遅さから使うのが億劫に。
これではいかんと思い、まずはお手軽にメモリ増強を実施。
これで快適に動いてくれるだろうか。しばらく使ってみる。
対応メモリ情報はこちら。
Mac mini (Mid 2011): Memory specifications and upgrades
普通のノートパソコンのメモリと同じ。
「You can use RAM module sizes of 1 GB, 2 GB, or 4 GB in each slot.」
とあるので、最大は4GB×2スロットの8GBだと思われる。
(どこかのサイトだと16GBに換えてるのもあったけど。)
購入したのはメモリはTranscendのもの。
もともと入っていたのは三星電子。ぐっばいミツボシ。
これではいかんと思い、まずはお手軽にメモリ増強を実施。
これで快適に動いてくれるだろうか。しばらく使ってみる。
対応メモリ情報はこちら。
Mac mini (Mid 2011): Memory specifications and upgrades
普通のノートパソコンのメモリと同じ。
「You can use RAM module sizes of 1 GB, 2 GB, or 4 GB in each slot.」
とあるので、最大は4GB×2スロットの8GBだと思われる。
(どこかのサイトだと16GBに換えてるのもあったけど。)
購入したのはメモリはTranscendのもの。
もともと入っていたのは三星電子。ぐっばいミツボシ。
2012年2月4日土曜日
INFOBAR A01で自作Androidアプリをデバッグする準備
まずはAndroid端末(INFOBAR A01)の設定から
これでとりいそぎPC(Win7)にUSBケーブルで接続してみるが、、、
ドライバがインストールされなかった。
Winちゃんいわく、ドライバが見つかりません とのこと。
そんなわけで、いったんUSBケーブルを抜き、Sharpのサイトへドライバを探しに出かけた。
シャープのドライバ配布サイトを確認したところ、2種類のドライバをインストールする必要があるようだ。
SH Developers Square -
まずは、INFOBAR A01用のドライバをダウンロード。
これはexe形式。PDFのインストールマニュアルもある。
ダウンロードしたexeファイルをダブルクリックでインストール。
特に困ることなし。
マニュアルによると「高速転送モード」に設定しろ とのことなので
マニュアルに書かれているようにUSBケーブルでPCに接続し、デバイスマネージャで確認したところ、ちゃんと認識されている。よし。
次に2つめのドライバ。「SHARP共通 ADB USBドライバ」をインストールする。
今回インストールしたのは、
こんなときはUSBケーブルでつないで実機でアプリを動かし、デバッグする方法がある。
まず、Android端末をUSBケーブルで接続。
そして、Eclipseで「デバッグの構成」を開き、先に作成していた"HellowWorld"の「ターゲット」タブを開く。
ここで、ターゲットを「マニュアル」に変更し、「デバッグ」をクリック。
すると、接続しているAndroid端末を選ぶことができる。端末を選んで「OK」。
これで実機で動作を確認することができる。
ただし、(次に書いている)apkファイルのインストールを行っている場合は、起動が拒否られてしまう。
この場合はadbコマンドでアンインストールするとよいみたい。
署名付きアプリのインストール
まず、署名付きapkファイルを作る。(ちなみにapkファイルはzip形式なんだそうな)
-r 既に同じアプリが入っている場合にデータそのままで上書きインストールする
-s SDカードにインストールする
らしい。
で、なんかインストールに失敗したとメッセージがでた
(端末の画面にはアプリのアイコンが追加されているのだけれども)。
参考サイトによると、デバッグ用のやつが残ってて署名が一致しないエラーとのこと。
一度アンインストールしてから再度インストールを試みる。
アンインストールは下記のコマンドで実行
端末画面に現れたドロイドさんのアイコンをタッチすると、、、
おお、HelloWorldが表示されるではないか。
めでたし、めでたし。
[参考サイト]
設定→アプリケーション設定→開発「USBデバッグ」にチェック
これでとりいそぎPC(Win7)にUSBケーブルで接続してみるが、、、
ドライバがインストールされなかった。
Winちゃんいわく、ドライバが見つかりません とのこと。
そんなわけで、いったんUSBケーブルを抜き、Sharpのサイトへドライバを探しに出かけた。
シャープのドライバ配布サイトを確認したところ、2種類のドライバをインストールする必要があるようだ。
SH Developers Square -
まずは、INFOBAR A01用のドライバをダウンロード。
これはexe形式。PDFのインストールマニュアルもある。
ダウンロードしたexeファイルをダブルクリックでインストール。
特に困ることなし。
マニュアルによると「高速転送モード」に設定しろ とのことなので
設定→USB接続→USB接続モードでそのモードに設定した。
マニュアルに書かれているようにUSBケーブルでPCに接続し、デバイスマネージャで確認したところ、ちゃんと認識されている。よし。
次に2つめのドライバ。「SHARP共通 ADB USBドライバ」をインストールする。
今回インストールしたのは、
usb_driver_SHARP_r4.6.zip日付が今日(2012/02/03)だよ。ほかほかじゃん。
ダウンロードしたファイルは解凍してどこか適当なフォルダに置いておく。
デバイスマネージャを開き、「ほかのデバイス」を見ると、、、なにやらAndroidらしきヤツがありますな。
それを右クリックして「ドライバソフトウェアの更新」→さきほど解凍したドライバのフォルダを指定。
セキュリティ警告がでるけど無視。
特に何事もなく正常にインストールできた。
デバイスマネージャの表示が更新され、「Android Phone」というのが現れている。
「Android Composite ADB Interface」と表示されているので、これでよさそうだ。
adbコマンドでも確認できる。
コマンドプロンプトから、
コマンドプロンプトから、
adb devices
接続しているデバイスのシリアル番号が表示されているはず。
[参考サイト]
端末でのデバッグ用アプリの実行
実機でのデバッグでいちいちapkファイルを作ってはいられない。こんなときはUSBケーブルでつないで実機でアプリを動かし、デバッグする方法がある。
まず、Android端末をUSBケーブルで接続。
そして、Eclipseで「デバッグの構成」を開き、先に作成していた"HellowWorld"の「ターゲット」タブを開く。
ここで、ターゲットを「マニュアル」に変更し、「デバッグ」をクリック。
すると、接続しているAndroid端末を選ぶことができる。端末を選んで「OK」。
これで実機で動作を確認することができる。
ただし、(次に書いている)apkファイルのインストールを行っている場合は、起動が拒否られてしまう。
この場合はadbコマンドでアンインストールするとよいみたい。
署名付きアプリのインストール
アプリができあがったら配布可能なパッケージファイルして、実機にインストールしてみることになるだろう。
自分で作成したアプリを個人的に利用するならこれでもいいのかも。
まず、署名付きapkファイルを作る。(ちなみにapkファイルはzip形式なんだそうな)
Eclipseにて、エクスプローラからHelloWorldプロジェクトを選択し、
右クリック→Androidツール→Export Signed Application Package...
プロジェクトを選択(ここではHelloWorld)して「次へ」
"Create new keystore"で新たしく署名を作成する。
ロケーション(とファイル名)は適当に決める。
パスワードを設定して「次へ」
エイリアス、パスワード、推奨年齢、開発者の名前(自分の名前ね)などを記載して「次へ」
apkのファイルをエクスポートする先を指定して「完了」
これでapkができた。
次にAndroid端末をPCに接続し、adbコマンドでapkファイルをインストールする。
コマンドは、
adb install -r -s HelloWorld.apkつけてるオプションは、
-r 既に同じアプリが入っている場合にデータそのままで上書きインストールする
-s SDカードにインストールする
らしい。
で、なんかインストールに失敗したとメッセージがでた
(端末の画面にはアプリのアイコンが追加されているのだけれども)。
参考サイトによると、デバッグ用のやつが残ってて署名が一致しないエラーとのこと。
一度アンインストールしてから再度インストールを試みる。
アンインストールは下記のコマンドで実行
adb uninstall (アプリのパッケージ名)この後、もう一度インストールのコマンドを打つと正常にインストールできた。
端末画面に現れたドロイドさんのアイコンをタッチすると、、、
おお、HelloWorldが表示されるではないか。
めでたし、めでたし。
[参考サイト]
AndroidでHelloWorldだ~
だがちょっと待ってほしい
Eclipseでプロジェクト作る前に、文字コードの設定をしておいたほうがいい。
ウィンドウ→設定→一般→ワークスペース左下の「テキストファイルのエンコード」で
その他 「UTF-8」 を選択し、適用(またはOK)。
これをプロジェクト作った後からやると「R.javaが手動で書き換えられましたよ」という不吉な赤い文字がコンソールにでる。(R.javaは開発ツールが自動生成するんです。)
Androidプロジェクトの作成
ファイル→新規作成→その他で「Androidプロジェクト」を選択。
プロジェクト名はもちろん"HelloWorld"を記入して「次へ」。
ビルドターゲットを選択する。ここでは Android 2.3.3 を選択して「次へ」。
パッケージ名を適当につけて「完了」。
これでプロジェクトとアプリのテンプレートまで生成されている。
参考書籍とは異なるテンプレートが生成されているが、まあよしとしよう。
(プロジェクトの構成については別途書きます)
ひとまず、AndroidManifext.xmlを書き換えてデバック可能にしておく。
プロジェクト直下のAndroidManifext.xmlをダブルクリックして開くと専用のエディタが立ち上がる。
「アプリケーション」のタブを開くとDebuggableという設定項目があるはず。
これをtrueにしておく。
生成されたHelloWorldアプリを試しに実行
見たところ、生成されたテンプレートはこのまま実行できそうだ。
とりあえず、
実行→デバッグ→Androidアプリケーションで実行してみる。
エミュレータ(仮想デバイス)が起動し、しばらく待つとHelloWorld画面が表示されるはず。
やったぜ。
デバッグの構成の設定
先の環境構築の際に作った仮想デバイスをターゲットに指定しておく。
実行→デバッグの構成「Androidアプリケーション」で"HelloWorld"をクリック
ない場合は、右クリック→新規で作成
「ターゲット」タブで前回作成した仮想デバイスを選択し「適用」をクリック。
エミュレータ画面が異様にでかい場合は、同じく「ターゲット」タブの
「エミュレーター・コマンド行の追加オプション」でオプションを設定する。
8割ぐらいの大きさにしたい場合は、
-scale 0.8でOK。
Androidアプリ開発環境を作った~
いまさらながらではあるが、勤めている会社で初めてのAndroidアプリ開発研修が催されたので参加してみた。
忘れないうちに家で開発環境を作っておこう。
2012/2/3現在の手順メモ
・JDKのインスト
すでに入っていたので割愛(ごめんね)
ヴァージョンは6です。
・Android SDKのインスト
Android SDK | Android Developers
より、
installer_r16-windows.exe (Recommended)
をダウンロードしてダブクリ。
特に迷うことはなかった。
インストール後、「Android SDK Manager」が起動される。
起動時にすでに「Android SDK Tools」がインストールされている状態。
追加で下記をインストール。
ちなみに手持ちのAndroid端末はInfobar A01なのでAndroid 2.3.3は必要だな。
コーヒーでも飲みながら気長に待つ。。。
途中でモトローラのMOTDEVアカウントの入力を求めるダイアログが12回ぐらい表示されるが、ひたすらCancelをクリック。
モトローラ狙ってないひとは最初から選択を外しておいた方がよさそうだ。
インストール処理終了後、再表示されたAndroid SDK Managerの一覧はなんだか変な状態。
いったん終了してもう一度起動してみると正常になった。
次に、購入した書籍にならってAndroid仮想デバイスを作ってみる。
Android SDK Managerのメニューから、
右側の「New...」をクリック。
せっかくなので、手持ちのAndroid端末 INFOBAR A01に合わせて設定してみた。
CPUは選択できないがARMになる。
Snapdragonだからいいか。
仮想デバイスの作成にはこれまた結構時間がかかる。
反応が返ってくるまで待機。
さて、作成が終わったらStartボタンを押して仮想デバイスを起動してみる。
Launchで起動。これも結構時間かかるよ。
あとは、adbコマンドがいつでもどこでも使えるように、PATHの設定をしておこう。
環境変数"PATH"に
・Eclipse、ADTプラグインの導入
すでにJ2EE版をつかっているのだが、どうやらClassicでもいいようなので、
Eclipse Classic 3.7.1をダウンロードしてzipを適当なフォルダに展開。
そしていつものようにPleadesで日本語化。
ここからADTプラグインをインストールする。
。
(一覧がうまく取得できないことがある。何回か試すとよい。)
「開発ツール」を根元からすべて選択してインストール。
途中でセキュリティ警告がでるが無視してOKを押下。
再起動しろと言われるので再起動。
再起動後、Android SDKのインストール画面が表示されるが、もうインストール済みなのでキャンセルする。
最後に、インストールしたプラグインとAndroid SDKのひも付け設定をしておく。
これをしておかないとEclipseでAndroidプロジェクトを作成したときにターゲットに何もでてこず困ったことになる。
これでよし。
[参考サイト]
ADT Pluginのインストール - ADT Plugin for Eclipseのインストール - Android入門
忘れないうちに家で開発環境を作っておこう。
2012/2/3現在の手順メモ
・JDKのインスト
すでに入っていたので割愛(ごめんね)
ヴァージョンは6です。
・Android SDKのインスト
Android SDK | Android Developers
より、
installer_r16-windows.exe (Recommended)
をダウンロードしてダブクリ。
特に迷うことはなかった。
インストール後、「Android SDK Manager」が起動される。
起動時にすでに「Android SDK Tools」がインストールされている状態。
追加で下記をインストール。
ちなみに手持ちのAndroid端末はInfobar A01なのでAndroid 2.3.3は必要だな。
Andoid SDK Platform-toolsこれだけ入れると結構時間がかかる。
Android 4.0.3 (API 15)
Android 3.2 (API 13)
Android 2.3.3 (API 10)
Google USB Driver package
コーヒーでも飲みながら気長に待つ。。。
途中でモトローラのMOTDEVアカウントの入力を求めるダイアログが12回ぐらい表示されるが、ひたすらCancelをクリック。
モトローラ狙ってないひとは最初から選択を外しておいた方がよさそうだ。
インストール処理終了後、再表示されたAndroid SDK Managerの一覧はなんだか変な状態。
いったん終了してもう一度起動してみると正常になった。
次に、購入した書籍にならってAndroid仮想デバイスを作ってみる。
Android SDK Managerのメニューから、
Tools→Manage AVDs..Android Virtual Device Managerが立ち上がる。
右側の「New...」をクリック。
せっかくなので、手持ちのAndroid端末 INFOBAR A01に合わせて設定してみた。
Target Android 2.3.3あとはデフォルトのまま。
SD Card Size 1024MiB
SkinはResolution カスタム 540×960
Hardware Device ram size 512
CPUは選択できないがARMになる。
Snapdragonだからいいか。
仮想デバイスの作成にはこれまた結構時間がかかる。
反応が返ってくるまで待機。
さて、作成が終わったらStartボタンを押して仮想デバイスを起動してみる。
Launchで起動。これも結構時間かかるよ。
あとは、adbコマンドがいつでもどこでも使えるように、PATHの設定をしておこう。
環境変数"PATH"に
(Android SDKのインストールフォルダ)\android-sdk\platform-toolsを追記する。
・Eclipse、ADTプラグインの導入
すでにJ2EE版をつかっているのだが、どうやらClassicでもいいようなので、
Eclipse Classic 3.7.1をダウンロードしてzipを適当なフォルダに展開。
そしていつものようにPleadesで日本語化。
ここからADTプラグインをインストールする。
ヘルプ→新規ソフトウェアのインストール作業対象の「追加」ボタンで下記ロケーションを追加する。名前はわかりやすいものを適当に
。
https://dl-ssl.google.com/android/eclipse/しばらくするとプラグインの一覧が表示される。
(一覧がうまく取得できないことがある。何回か試すとよい。)
「開発ツール」を根元からすべて選択してインストール。
途中でセキュリティ警告がでるが無視してOKを押下。
再起動しろと言われるので再起動。
再起動後、Android SDKのインストール画面が表示されるが、もうインストール済みなのでキャンセルする。
最後に、インストールしたプラグインとAndroid SDKのひも付け設定をしておく。
これをしておかないとEclipseでAndroidプロジェクトを作成したときにターゲットに何もでてこず困ったことになる。
ウィンドウ→設定 から「SDKのロケーション」にAndroid SDKのインストールフォルダを設定
これでよし。
[参考サイト]
ADT Pluginのインストール - ADT Plugin for Eclipseのインストール - Android入門
2012年1月31日火曜日
Linuxコマンドなどの雑記
せんとくん用(CentOS release 5.5 Final)
OSバージョン確認
ファイル検索
カレントディレクトリでのファイル内文字列検索
ファイルコピー
ファイルの属性をできる限りそのままにコピー
プロセス確認
ポート確認
Listen状態のみ
netstat - ホストのネットワーク統計や状態を確認する
ファイヤウォール
ルールファイル確認
ルールファイルのありか
iptablesの設定
自動起動
設定確認
a/Linuxの自動起動設定 - SORENARI-WIKI
OSバージョン確認
cat /etc/redhat-release32bit/64bit確認
uname -aメモリ確認
free -m
ファイル検索
カレントディレクトリでのファイル内文字列検索
grep -r 検索文字列 *
ファイルコピー
ファイルの属性をできる限りそのままにコピー
cp -a コピー元ファイル名 コピー先ファイル名ファイルの属性・・・パーミッション、オーナー、グループ、更新日時 とか。
プロセス確認
ps -ef
ps -ef |grep 検索文字列
ポート確認
Listen状態のみ
netstat -lnTCPとUDPのすべて
netstat -atu[参考サイト]
netstat - ホストのネットワーク統計や状態を確認する
ファイヤウォール
ルールファイル確認
iptables-saveRejectの記載位置を最後にすることに注意
ルールファイルのありか
/etc/sysconfig/iptables開始、終了、再起動
/etc/init.d/iptables start[参考サイト]
/etc/init.d/iptables stop
/etc/init.d/iptables restart
iptablesの設定
自動起動
設定確認
chkconfig --list[参考サイト]
a/Linuxの自動起動設定 - SORENARI-WIKI
2012年1月30日月曜日
bitbucket+Mercurial 最初の一歩(2)
さて、ローカルリポジトリ(自分の作業リポジトリ)側。
TortoiseHgのインストール
オフィシャルサイトにいって、インストールファイルをダウンロード
TortoiseHg
今回インストールしたのは、TortoiseHg 2.2.2 for Windows with Mercurial 2.0.2
ダウンロードしたmsiファイルをダブルクリックしてインストール。特に迷わなかった。
環境変数"Path"にTortoiseHgインストールフォルダが自動で追記されるのだが、このフォルダにhg.exeがいるので、hgコマンドもコマンドプロンプトから実行することができるようになる。
Mercurialの使い方がコンパクトにまとまった非常にわかりやすいカンニングペーパー(Cheat Sheet)があるみたいなので参考にしよう。
Mercurial Cheat Sheet 日本語版
QuickStartの左上の図を見ると使用、運用イメージが湧いてくるかな。
TortoiseHgちょっと初期設定
"ユーザ名"に自分ということが分かるちゃんとしたユーザ名を設定しましょう。
未設定だとコミット時の名前がWindowsのユーザ名@マシン名になっちゃいます。
まぁ、別になっちゃっていい人はいいけど、この後bitbucketで見た時にもこの名前になっています。
チーム開発とかしてる場合は、他の人に「誰?」とか思われないように。
bitbucket上のリポジトリのクローン
前回作成したbitbucket上のリポジトリのクローン(ローカル端末へのコピー)を行う。
リポジトリ用のフォルダを適当な場所に作成。ここでは"sandbox"というフォルダ名にした。
そのsandboxフォルダ上で
これでこのsandboxフォルダがbitbucketのリポジトリと同期されることになる。
"sandbox"フォルダ内に".hg"フォルダが作成され、フォルダアイコンにグリーンのチェックマークが付いてる。
pullしてみる
Mercurialのコマンドはいろいろなサイトに載っているけど、TortoiseHgの画面からどうやってpullやpushをするのか、最初戸惑うかも。
hgで始まるコマンドと画面操作の対応に少し慣れる必要があると思います。
pullをするには、
左上のアイコンであっちからこっちへ矢印が向かってきているやつがpull。
マウスオーバーすると
"Pull incoming changesets from remote repository"
とバルーンヘルプが出るやつ。
さらに、「プル後の処理」ボタンでupdateするかどうか選べます。
まずはbitbucketのクイックスタートに習って、pull --updateしてみよう。
・・・bitbucketのリポジトリに何もないから特に何も起きない。正解。
ちなみにMercurialでは、1回の操作で複数ファイルを変更する際、この変更の集合をひとまとめで管理します。
このまとまりをチェンジセット(Change sets)と呼んでいます。
ローカルリポジトリへのコミット
試しに、バージョン管理するファイルを作って、コミットしてみる。
sandboxフォルダに適当なテキストファイルと作って、
これでファイルが同期対象になった。
ファイルのアイコンに青い+がついている。これでよさそう。
続いてコミット。
(ここでチェンジセットが作成される?)
これでローカルリポジトリにファイルが追加され、コミットされた。
アイコンにグリーンのチェックがついたはず。
pushしてみる(リモートリポジトリへの変更の反映)
pushもpush同じくSync画面を開く。
左上のこっちからあっちへ矢印が向かっているボタンをクリック。
("Push outcoming changesets to remote repository"と出るやつ。)
pushをする場合は、リモートリポジトリ(ここではbitbucket上のリポジトリ)のユーザIDとパスワードを求められる。それぞれ入力して「OK」
正常に処理が終わった場合はログ表示エリアに
これでbitbucket側のリポジトリへ変更が反映された。
ブラウザからbitbucketにログインして見てみよう。
リポジトリのOverviewをみると、最近のコミットの一覧(Recent commits)で自分の操作が表示されているはず。
とりあえずここまで。
必要に応じて細かい操作も書きたいと思います。
[参考サイト]
Windows+TortoiseHgで始めるMercurial(hgコマンドをTortoiseHgで) - 記憶は削除の方向で
kuy / thg-ja / wiki / Home — Bitbucket
TortoiseHG からの利用
TortoiseHgのインストール
オフィシャルサイトにいって、インストールファイルをダウンロード
TortoiseHg
今回インストールしたのは、TortoiseHg 2.2.2 for Windows with Mercurial 2.0.2
ダウンロードしたmsiファイルをダブルクリックしてインストール。特に迷わなかった。
環境変数"Path"にTortoiseHgインストールフォルダが自動で追記されるのだが、このフォルダにhg.exeがいるので、hgコマンドもコマンドプロンプトから実行することができるようになる。
Mercurialの使い方がコンパクトにまとまった非常にわかりやすいカンニングペーパー(Cheat Sheet)があるみたいなので参考にしよう。
Mercurial Cheat Sheet 日本語版
QuickStartの左上の図を見ると使用、運用イメージが湧いてくるかな。
TortoiseHgちょっと初期設定
任意のどれでもいいフォルダ上で右クリック→TortoiseHg→Global Settings「TortoiseHg Setting」画面で左側の一覧から「コミット」を選択し、
"ユーザ名"に自分ということが分かるちゃんとしたユーザ名を設定しましょう。
未設定だとコミット時の名前がWindowsのユーザ名@マシン名になっちゃいます。
まぁ、別になっちゃっていい人はいいけど、この後bitbucketで見た時にもこの名前になっています。
チーム開発とかしてる場合は、他の人に「誰?」とか思われないように。
bitbucket上のリポジトリのクローン
前回作成したbitbucket上のリポジトリのクローン(ローカル端末へのコピー)を行う。
リポジトリ用のフォルダを適当な場所に作成。ここでは"sandbox"というフォルダ名にした。
そのsandboxフォルダ上で
右クリック→TortoiseHg→Cloneとすると、クローンのダイアログが表示される。ここに
- ソース:bitbucket上のリポジトリのURI(https://bitbucket.org/(ユーザ名)/(リポジトリ名) )
- ターゲット:このフォルダのパス
- オプション:特になし
これでこのsandboxフォルダがbitbucketのリポジトリと同期されることになる。
"sandbox"フォルダ内に".hg"フォルダが作成され、フォルダアイコンにグリーンのチェックマークが付いてる。
pullしてみる
Mercurialのコマンドはいろいろなサイトに載っているけど、TortoiseHgの画面からどうやってpullやpushをするのか、最初戸惑うかも。
hgで始まるコマンドと画面操作の対応に少し慣れる必要があると思います。
pullをするには、
sandboxフォルダ上で右クリック→TortoiseHg→SynchronizeでSync画面(同期ツール)を表示。
左上のアイコンであっちからこっちへ矢印が向かってきているやつがpull。
マウスオーバーすると
"Pull incoming changesets from remote repository"
とバルーンヘルプが出るやつ。
さらに、「プル後の処理」ボタンでupdateするかどうか選べます。
まずはbitbucketのクイックスタートに習って、pull --updateしてみよう。
・・・bitbucketのリポジトリに何もないから特に何も起きない。正解。
ちなみにMercurialでは、1回の操作で複数ファイルを変更する際、この変更の集合をひとまとめで管理します。
このまとまりをチェンジセット(Change sets)と呼んでいます。
ローカルリポジトリへのコミット
試しに、バージョン管理するファイルを作って、コミットしてみる。
sandboxフォルダに適当なテキストファイルと作って、
sandboxフォルダ上で右クリック→TortoiseHg→Add Files...先ほど適当に作ったファイルを選択(チェックボックスにチェック)して「追加」ボタンをクリック
これでファイルが同期対象になった。
ファイルのアイコンに青い+がついている。これでよさそう。
続いてコミット。
sandboxフォルダ上で右クリック→Hg Commit...コミット対象ファイルを選択、右上の入力エリアにコミットメッセージを入力して、「コミット」ボタンを押す。
(ここでチェンジセットが作成される?)
これでローカルリポジトリにファイルが追加され、コミットされた。
アイコンにグリーンのチェックがついたはず。
pushしてみる(リモートリポジトリへの変更の反映)
pushもpush同じくSync画面を開く。
左上のこっちからあっちへ矢印が向かっているボタンをクリック。
("Push outcoming changesets to remote repository"と出るやつ。)
pushをする場合は、リモートリポジトリ(ここではbitbucket上のリポジトリ)のユーザIDとパスワードを求められる。それぞれ入力して「OK」
正常に処理が終わった場合はログ表示エリアに
command completed successfully...と表示されているはず。
これでbitbucket側のリポジトリへ変更が反映された。
ブラウザからbitbucketにログインして見てみよう。
リポジトリのOverviewをみると、最近のコミットの一覧(Recent commits)で自分の操作が表示されているはず。
とりあえずここまで。
必要に応じて細かい操作も書きたいと思います。
[参考サイト]
Windows+TortoiseHgで始めるMercurial(hgコマンドをTortoiseHgで) - 記憶は削除の方向で
kuy / thg-ja / wiki / Home — Bitbucket
TortoiseHG からの利用
2012年1月25日水曜日
ロシアからのリファラスパム
昨日あたりからLinkedinのリダイレクトを悪用したリファラスパムらしきアクセスが。
こんなアドレス。
User Agentはランダムに偽装してそう。
臆することなくクリックすると、胡散臭い動画と、パッケージソフトの購入ができるサイトが表示されます。英語でした。
他のかたのブログにもやっぱり同じようなアクセスがあるみたいです。
今度は linkedin を利用した新たなスパムが・・・ | Neta Beta Max
こんなアドレス。
www.linkedin.com/redirect?url=www.ow.ly/8DFmk
User Agentはランダムに偽装してそう。
臆することなくクリックすると、胡散臭い動画と、パッケージソフトの購入ができるサイトが表示されます。英語でした。
他のかたのブログにもやっぱり同じようなアクセスがあるみたいです。
今度は linkedin を利用した新たなスパムが・・・ | Neta Beta Max
2012年1月22日日曜日
bitbucket+Mercurial 最初の一歩(1)
bitbucketはなにも見なくてもリポジトリの作成までできました。
画面がシンプルでわかりやすく、お手軽です。
bitbucketのサインアップ
bitbucketのサイトで、どでかく"SIGN UP NOW, FREE"と書いてあるボタンをクリックするとサインアップ画面が表示される。
OpenIDに対応しているみたい。画面下のほうのSign up using OpenIDのリンクをクリック。
選べるのは、Google、Yahoo(USAのみ?)、Aol、flickr、Wordpressなど。
私はGoogleのアカウントでサインアップしました。
新規リポジトリの作成
Repositories→create repositories または + アイコンをクリック
リポジトリ作成画面にて、
(ここらへんは後でAdminタブで変更できるみたい)
必要事項を設定し、「Create repository」ボタンをクリック
これでリポジトリが作成できた。
続いて、作成したリポジトリの参照画面?を見てみる。
どうやらHTTPSとSSHで接続可能らしい。
クイックスタート(Quick start)の記述内容
チーム開発の場合、参加メンバに招待状(invitation)を送ることができるみたい。
Overviewタブか、Followersタブに"invitation"、"invite"というリンクがあるのでクリック
メンバのメールアドレスを記載し、アクセス権限をWriteかAdminかを選択して"Send invitation"をクリック。
2012/1/25追記
招待メールが相手にすぐに届きます。
メールに記載されている招待アドレスにアクセスすると、
bitbucketの「既にアカウントを持っているor新たにサインアップする」画面が表示されます。
既存アカウントでログインするか、新しいユーザを作成してログイン。
共有しようとしているリポジトリが見えているはず。
見失わないようにfollow+(ハートマークのアイコン)をクリックするとよいかも。
次回はクライアント側。
画面がシンプルでわかりやすく、お手軽です。
bitbucketのサインアップ
bitbucketのサイトで、どでかく"SIGN UP NOW, FREE"と書いてあるボタンをクリックするとサインアップ画面が表示される。
OpenIDに対応しているみたい。画面下のほうのSign up using OpenIDのリンクをクリック。
選べるのは、Google、Yahoo(USAのみ?)、Aol、flickr、Wordpressなど。
私はGoogleのアカウントでサインアップしました。
すぐにComfirmメールが送られてくるので、本文に記載されているアドレスにアクセス。
これでサインアップ完了。
スタンダードサインアップの場合に必要なのは、Username、Email address、パスワード。"Sign up"を押せばたぶんComfirmメールが届くんだと思う。新規リポジトリの作成
Repositories→create repositories または + アイコンをクリック
リポジトリ作成画面にて、
- リポジトリの名前を決めてNameに入力
- Privateのチェックボックスでプライベートリポジトリにするかどうかを選択
- Pepositroy type欄、GitかMercurialのどちらを使用するか選択(ここはMercurialで)
- Project management欄、Issue trackig、Wikiを使用する場合はチェック
- Language欄、プログラミング言語を選択(これはどういう意味か未調査)
- 必要に応じてDescriptionにリポジトリの説明文を記載
- Websiteがある場合はアドレスを記載
(ここらへんは後でAdminタブで変更できるみたい)
必要事項を設定し、「Create repository」ボタンをクリック
これでリポジトリが作成できた。
続いて、作成したリポジトリの参照画面?を見てみる。
どうやらHTTPSとSSHで接続可能らしい。
クイックスタート(Quick start)の記述内容
$ hg clone https://bitbucket.org/(ユーザ名)/(リポジトリ名)SSHの場合、リポジトリのクローンは、
...
$ hg pull --update # to pull changes and update
$ hg push # to push changes to this repo
hg clone ssh://hg@bitbucket.org/(ユーザ名)/(リポジトリ名)となる模様。
チーム開発の場合、参加メンバに招待状(invitation)を送ることができるみたい。
Overviewタブか、Followersタブに"invitation"、"invite"というリンクがあるのでクリック
メンバのメールアドレスを記載し、アクセス権限をWriteかAdminかを選択して"Send invitation"をクリック。
2012/1/25追記
招待メールが相手にすぐに届きます。
メールに記載されている招待アドレスにアクセスすると、
bitbucketの「既にアカウントを持っているor新たにサインアップする」画面が表示されます。
既存アカウントでログインするか、新しいユーザを作成してログイン。
共有しようとしているリポジトリが見えているはず。
見失わないようにfollow+(ハートマークのアイコン)をクリックするとよいかも。
次回はクライアント側。
2012年1月20日金曜日
Bloggerでブログタイトルと記事タイトルの表示順を入れ替え
参考サイトをガン見して、ブログタイトルと記事タイトルの表示順を入れ替えました。
いい感じ。
[参考サイト]
■bloggerのページタイトル<title>を「記事タイトル:ブログタイトル」の順で表示させる|格安SEO対策会社トンちゃん‐低価格・高品質
いい感じ。
[参考サイト]
■bloggerのページタイトル<title>を「記事タイトル:ブログタイトル」の順で表示させる|格安SEO対策会社トンちゃん‐低価格・高品質
BingウェブマスターツールとBloggerサイトの登録方法
BingのウェブマスターツールへBloggerサイトを登録する際の手順メモ
Bingウェブマスター ツールにて
Windows Live IDでログイン
(Windows Live IDを持っていない場合は取得する。5分程度。)
ホーム画面で「サイトの追加」ボタンをクリック
サイトの追加画面で自分のブログのURI
"オプション 2: タグをコピーして既定の Web ページに貼り付けます"
をクリックして表示されたmetaタグをコピー
画面はこのまま開いておく。
ここからBloggerのマイブログページにて(別画面で)
マイブログ画面で「テンプレート」→「HTMLの編集」→「続行」し、テンプレートのHTMLを表示
<head></head>の間、他のmetaタグの近く、</title>の後ろあたりに、コピーしていたmetaタグをペースト
「テンプレートを保存」して「閉じる」
再びウェブマスターツールにて
「確認」をクリック
これでBingウェブマスターツールへBloggerのサイトが登録される。
続いて、サイトマップを登録。
「クロール」タブ→「サイトマップ (XML、Atom、RSS)」でサイトマップの画面が表示される。
「フィードの追加」をクリックし、テキストボックスに自サイトのATOMフィード
登録直後は状態が"保留中"になっている。
しばらく浸け置きかな。
[参考サイト]
BloggerにおけるBing Webmaster Toolsへの登録方法 | monolis
Bingウェブマスター ツールにて
Windows Live IDでログイン
(Windows Live IDを持っていない場合は取得する。5分程度。)
ホーム画面で「サイトの追加」ボタンをクリック
サイトの追加画面で自分のブログのURI
http://(自分のサイト名).blogspot.com/を指定し、「送信」
"オプション 2: タグをコピーして既定の Web ページに貼り付けます"
をクリックして表示されたmetaタグをコピー
画面はこのまま開いておく。
ここからBloggerのマイブログページにて(別画面で)
マイブログ画面で「テンプレート」→「HTMLの編集」→「続行」し、テンプレートのHTMLを表示
<head></head>の間、他のmetaタグの近く、</title>の後ろあたりに、コピーしていたmetaタグをペースト
「テンプレートを保存」して「閉じる」
再びウェブマスターツールにて
「確認」をクリック
これでBingウェブマスターツールへBloggerのサイトが登録される。
続いて、サイトマップを登録。
「クロール」タブ→「サイトマップ (XML、Atom、RSS)」でサイトマップの画面が表示される。
「フィードの追加」をクリックし、テキストボックスに自サイトのATOMフィード
http://(自分のサイト名).blogspot.com/atom.xmlを指定して「送信」して登録完了。
登録直後は状態が"保留中"になっている。
しばらく浸け置きかな。
[参考サイト]
BloggerにおけるBing Webmaster Toolsへの登録方法 | monolis
Red5記事まとめ
Red5アプリケーション開発環境の整備(1) - Red5のインストール
Red5アプリケーション開発環境の整備(2) - Eclipseのインストールと設定
Red5アプリケーション開発環境の整備(3) - Flex開発環境
Mac mini(OSX 10.7.2)でRed5開発環境を構築する(1)
Red5でHello World(1) - サーバ編
Red5でHello World(2) - クライアント編 その1
Red5でHello World(3) - クライアント編 その2
[Red5] SLF4j+logbackでログを出力してみたよ
[Red5] ApplicationAdapter エントリポイントのメモ
[Red5] 録画ファイルの保存先とかを変更してみよ〜
Red5アプリケーション開発環境の整備(2) - Eclipseのインストールと設定
Red5アプリケーション開発環境の整備(3) - Flex開発環境
Mac mini(OSX 10.7.2)でRed5開発環境を構築する(1)
Red5でHello World(1) - サーバ編
Red5でHello World(2) - クライアント編 その1
Red5でHello World(3) - クライアント編 その2
[Red5] SLF4j+logbackでログを出力してみたよ
[Red5] ApplicationAdapter エントリポイントのメモ
[Red5] 録画ファイルの保存先とかを変更してみよ〜
Red5でHello World(3) - クライアント編 その2
※他のRed5関連のエントリはこちら
※本稿は随時加筆修正していく可能性があります。
まずはこちらから。
FlashdevelopでのFlexアプリのコンパイルと実行のやり方
コンパイルはメニューから、「プロジェクト」→「プロジェクトのビルド」
実行は同じく「プロジェクト」→「プロジェクトをテスト」
せっかくなので、前回のMain.mxmlに画面部品をテキトーに追加して実行してみる。
Main.mxml
コンパイルすると出力ペインに下記のようなログが出力されます。
続いて実行するとFlash Player画面が開き、ボタンなどが表示されていると思います。
それではついにRed5と接続!
HelloTest.asに記載する処理
HelloTest.asに必要となるコードをわかりやすい(かどうかわからん)ブロックごとに分けて記載していきます。
必要になるするパッケージを定義
HelloTestクラス内にメンバ変数を定義。
Red5の自作アプリのURIを表す文字列と、Red5との接続を制御するオブジェクト用。
Red5自作アプリのURIに接続する基本の流れ
コードA
3行目でNetConnectionオブジェクトを生成、4行目でRed5サーバへ接続。
この後、5行目でイベントリスナを登録している。
イベント発生時に呼ばれるメソッド"_onNetStatus"をコーディングする必要あり。
このメソッドはRed5との接続時、および切断時に呼ばれる。
引数のイベントオブジェクト内の情報から接続成功、切断、失敗、拒否が判別でき、状況に応じた処理を書くことができる。
これに、サーバ編で作成したRed5サーバ側メソッドを呼び出すコードを追記していく。
必要になるパッケージを定義
サーバ側メソッドを呼び出した結果を格納するメンバ変数をHelloTestクラス内に追加
以下、サーバ側メソッド呼び出しの基本的な流れ。例えば、サーバ接続処理後に記載、または実行されるようにする。
コードB
Responderのコンストラクタで引数としているイベントメソッド"_success"、および"_stat"をコーディングする必要あり。
ついでにコネクション切断の流れ
コードC
以上、Red5との接続、メソッド呼び出し、切断の本筋は数行で書けます。
どちらかというと、イベントハンドラ諸々を書くのがめんどうです。
お手軽にメソッド呼び出しを試したい場合は、コードA、コードBをHelloTextクラスのinitializeメソッドに書き、必要なパッケージ、メンバ変数、イベント発生時のメソッドもつければ完成。
Flexアプリ起動時に1回だけサーバ側メソッドが呼ばれます。ちなみに、コードA、Bコードの後にCを書くとうまく動きません。(挙動は要調査)
画面上のボタンなどから接続やメソッド呼び出しを個別に実行したい場合は、コードA、B、Cを独立したメソッドとして実装し、ボタン押下時に呼び出すようにするとよいかと思います。
また、Null対策などを施して堅牢にする営みを忘れずに。
次回は動画の再生を予定。
参考:最も安易なHelloTest.as
[参考サイト]
そにらぼ » Blog Archive » [Red5入門コース第3回]サンプルアプリケーションの作成
※他にも参考にしたサイトがありますが、失念しています。判明次第追記します。
※本稿は随時加筆修正していく可能性があります。
まずはこちらから。
FlashdevelopでのFlexアプリのコンパイルと実行のやり方
コンパイルはメニューから、「プロジェクト」→「プロジェクトのビルド」
実行は同じく「プロジェクト」→「プロジェクトをテスト」
せっかくなので、前回のMain.mxmlに画面部品をテキトーに追加して実行してみる。
Main.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Label id="myLabel" x="0" y="0" width="100" height="25" fontSize="20" text="ラベル"/> <mx:Button id="myBtn" label="ボタン" /> <mx:TextInput id="myTextInput" text="テキストインプット" /> <mx:TextArea id="myTextArea" text="テキストエリア" width="200"/> </mx:Application>
コンパイルすると出力ペインに下記のようなログが出力されます。
プロセスを実行中・・・Build succeededが表示されていればたぶん大丈夫。
・・・Build succeeded
Done(0)
続いて実行するとFlash Player画面が開き、ボタンなどが表示されていると思います。
それではついにRed5と接続!
HelloTest.asに記載する処理
HelloTest.asに必要となるコードをわかりやすい(かどうかわからん)ブロックごとに分けて記載していきます。
必要になるするパッケージを定義
import flash.net.NetConnection; import flash.events.NetStatusEvent;
HelloTestクラス内にメンバ変数を定義。
Red5の自作アプリのURIを表す文字列と、Red5との接続を制御するオブジェクト用。
private var _uri:String; private var _nc:NetConnection;
Red5自作アプリのURIに接続する基本の流れ
コードA
_uri = new String("rtmp://(Red5のIPアドレス)/(自作アプリの名前)"); _nc = new NetConnection(); _nc.connect(_uri); _nc.addEventListener(NetStatusEvent.NET_STATUS, _onNetStatus);URIはポート番号5080は不要。入れるとうまく動かない。
3行目でNetConnectionオブジェクトを生成、4行目でRed5サーバへ接続。
この後、5行目でイベントリスナを登録している。
イベント発生時に呼ばれるメソッド"_onNetStatus"をコーディングする必要あり。
このメソッドはRed5との接続時、および切断時に呼ばれる。
引数のイベントオブジェクト内の情報から接続成功、切断、失敗、拒否が判別でき、状況に応じた処理を書くことができる。
//Red5接続、切断時に実行される private function _onNetStatus(evt:NetStatusEvent):void { switch (evt.info.code) { case "NetConnection.Connect.Success": trace("connect success"); break; case "NetConnection.Connect.Closed": trace("connect Closed"); break; case "NetConnection.Connect.Failed": trace("connect Failed"); break; case "NetConnection.Connect.Rejected": trace("connect Rejected"); break; default: trace("何か起こった?"); } }ここまでがRed5接続の基本的な流れ。
これに、サーバ編で作成したRed5サーバ側メソッドを呼び出すコードを追記していく。
必要になるパッケージを定義
import flash.net.Responder;
サーバ側メソッドを呼び出した結果を格納するメンバ変数をHelloTestクラス内に追加
private var _respose:Responder;
以下、サーバ側メソッド呼び出しの基本的な流れ。例えば、サーバ接続処理後に記載、または実行されるようにする。
コードB
_respose = new Responder(_success, _stat); _nc.call("hello", _respose, txt);1行目はResponderオブジェクトの生成、2行目でRed5サーバ側の"hello"という名前のメソッドを呼び出している。callメソッドの第3引数はサーバ側へ渡す情報。今回はString。
Responderのコンストラクタで引数としているイベントメソッド"_success"、および"_stat"をコーディングする必要あり。
//サーバ側メソッド呼び出し成功時に実行される private function _success(result:Object):void { trace("メソッド呼び出し成功"); trace(result); } //サーバ側メソッド呼び出し失敗時に実行される private function _stat(status:Object):void { trace("ステータス"); for (var key:String in status) { trace("key = " + key + " / value = " + status[key]); } }
ついでにコネクション切断の流れ
コードC
_nc.close(); _nc = null;
以上、Red5との接続、メソッド呼び出し、切断の本筋は数行で書けます。
どちらかというと、イベントハンドラ諸々を書くのがめんどうです。
お手軽にメソッド呼び出しを試したい場合は、コードA、コードBをHelloTextクラスのinitializeメソッドに書き、必要なパッケージ、メンバ変数、イベント発生時のメソッドもつければ完成。
Flexアプリ起動時に1回だけサーバ側メソッドが呼ばれます。ちなみに、コードA、Bコードの後にCを書くとうまく動きません。(挙動は要調査)
画面上のボタンなどから接続やメソッド呼び出しを個別に実行したい場合は、コードA、B、Cを独立したメソッドとして実装し、ボタン押下時に呼び出すようにするとよいかと思います。
また、Null対策などを施して堅牢にする営みを忘れずに。
次回は動画の再生を予定。
参考:最も安易なHelloTest.as
package { import mx.core.IMXMLObject; import flash.net.NetConnection; import flash.events.NetStatusEvent; import flash.net.Responder; public class HelloTest implements IMXMLObject { private var _uri:String; private var _nc:NetConnection; private var _respose:Responder; private var txt:String; public function HelloTest() { } /* INTERFACE mx.core.IMXMLObject */ public function initialized(document:Object, id:String):void { _nc = new NetConnection(); _nc.connect(_uri); _nc.addEventListener(NetStatusEvent.NET_STATUS, _onNetStatus); _respose = new Responder(_success, _stat); txt = new String("hogehoge"); _nc.call("hello", _respose, txt); } //Red5接続、切断時に実行される private function _onNetStatus(evt:NetStatusEvent):void { switch (evt.info.code) { case "NetConnection.Connect.Success": trace("connect success"); break; case "NetConnection.Connect.Closed": trace("connect Closed"); break; case "NetConnection.Connect.Failed": trace("connect Failed"); break; case "NetConnection.Connect.Rejected": trace("connect Rejected"); break; default: trace("何か起こった?"); } } //サーバ側メソッド呼び出し成功時に実行される private function _success(result:Object):void { trace("メソッド呼び出し成功"); trace(result); } //サーバ側メソッド呼び出し失敗時に実行される private function _stat(status:Object):void { trace("ステータス"); for (var key:String in status) { trace("key = " + key + " / value = " + status[key]); } } } }
[参考サイト]
そにらぼ » Blog Archive » [Red5入門コース第3回]サンプルアプリケーションの作成
※他にも参考にしたサイトがありますが、失念しています。判明次第追記します。
お腹が寒いので腹巻を買いました。
最近はウェストウォーマーとかボディウォーマーとかいうみたいです。
最近めっきり寒く、お腹が冷えて調子がよくありませんでした。
そういえば、子どもの頃はらまきして寝ていたなぁ と思いだし、ネットでいろいろ調査。
女性用下着でおなじみのワ○ールのメンズ用ボディウォーマーが日常使いにようさそうなので買ってみました。(1300円ぐらい)
吸湿発熱繊維が使われており、薄いので仕事中にしてても問題ないです。
(注意深く見るとシャツに透けてるのがわかりますが。あまり気にしません。)
朝は寒さをしのぐのになかなかよいです。
ただ、帰りは体温が上がっているためか、電車の中で汗ばんでしまいます。
とりあえず、しばらく使ってみようかと。
最近めっきり寒く、お腹が冷えて調子がよくありませんでした。
そういえば、子どもの頃はらまきして寝ていたなぁ と思いだし、ネットでいろいろ調査。
女性用下着でおなじみのワ○ールのメンズ用ボディウォーマーが日常使いにようさそうなので買ってみました。(1300円ぐらい)
吸湿発熱繊維が使われており、薄いので仕事中にしてても問題ないです。
(注意深く見るとシャツに透けてるのがわかりますが。あまり気にしません。)
朝は寒さをしのぐのになかなかよいです。
ただ、帰りは体温が上がっているためか、電車の中で汗ばんでしまいます。
とりあえず、しばらく使ってみようかと。
2012年1月18日水曜日
書き書き中、書き予定のエントリ
・Red5でHello World (2) クライアント編
・FlexにおけるViewとLogicの分離(仮)
・Bitbucket+Mercurialクイックスタート(仮)
・お腹が寒いので腹巻を買いました。
早く書かないとどんどん記憶が薄れていく。。。
・FlexにおけるViewとLogicの分離(仮)
・Bitbucket+Mercurialクイックスタート(仮)
・お腹が寒いので腹巻を買いました。
早く書かないとどんどん記憶が薄れていく。。。
Red5でHello World(2) - クライアント編 その1
※他のRed5関連のエントリはこちら
あぁ、クライアント側書くの、気が重い。気が重いよ~。
Flexプロジェクト、Main.mxmlの作成
以前インストールしたFlashDevelopにて、
メニューより「プロジェクト」→「新規プロジェクト」
NewProject画面で、
"Flex 3 Project"を選択。"名前"、"場所"は適当に。パッケージはブランクでもOK。
"プロジェクトフォルダーを作成する"は、まあチェックしときましょう。
これで「OK」をクリック
3ペインで右ペイン(プロジェクトペイン)に、"bin"、"lib"、"src"フォルダが作成されており、src配下にMain.mxmlが自動生成されてます。
このMain.mxmlをダブルクリックすると、左ペインにソースが表示されます。
Main.mxml(自動生成直後)
このMXMLファイルにRed5との接続処理などをがりがり書いていってもいいのですが、ここは知ったげにViewとLogicの分離を考慮してコードを書いていこうかと思います。
つまり、MXMLにはView(画面、ユーザインターフェース)、これとは別のActionScriptにLogic(処理)を受け持たせるということです。
さて、次はActionScriptのファイルを作ります。
HelloTest.asの作成
プロジェクトペインの"src"を右クリック→「新規作成」→「New Class...」
New ActionScript Class画面にて、
パッケージ名はとりあえずブランクでOK
修飾子は、"public"を選択
名前は適当でOKですが、ここは安易に"HelloTest"としました。
インターフェースには、
これで、HelloTest.asファイルが作成されます。
HelloTest.as(自動生成直後)
これでベースができました。
次回はこれらをベースにRed5接続、メソッド呼び出し、切断処理などを書いていきます。
あぁ、クライアント側書くの、気が重い。気が重いよ~。
Flexプロジェクト、Main.mxmlの作成
以前インストールしたFlashDevelopにて、
メニューより「プロジェクト」→「新規プロジェクト」
NewProject画面で、
"Flex 3 Project"を選択。"名前"、"場所"は適当に。パッケージはブランクでもOK。
"プロジェクトフォルダーを作成する"は、まあチェックしときましょう。
これで「OK」をクリック
3ペインで右ペイン(プロジェクトペイン)に、"bin"、"lib"、"src"フォルダが作成されており、src配下にMain.mxmlが自動生成されてます。
このMain.mxmlをダブルクリックすると、左ペインにソースが表示されます。
Main.mxml(自動生成直後)
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> </mx:Application>
このMXMLファイルにRed5との接続処理などをがりがり書いていってもいいのですが、ここは知ったげにViewとLogicの分離を考慮してコードを書いていこうかと思います。
つまり、MXMLにはView(画面、ユーザインターフェース)、これとは別のActionScriptにLogic(処理)を受け持たせるということです。
さて、次はActionScriptのファイルを作ります。
HelloTest.asの作成
プロジェクトペインの"src"を右クリック→「新規作成」→「New Class...」
New ActionScript Class画面にて、
パッケージ名はとりあえずブランクでOK
修飾子は、"public"を選択
名前は適当でOKですが、ここは安易に"HelloTest"としました。
インターフェースには、
mx.core.IMXMLObjectを指定し、"インターフェースに合わせたメソッドを自動生成"をチェックし、「OK」をクリック
これで、HelloTest.asファイルが作成されます。
HelloTest.as(自動生成直後)
package { import mx.core.IMXMLObject; /** * ... * @author handatec */ public class HelloTest implements IMXMLObject { public function HelloTest() { } /* INTERFACE mx.core.IMXMLObject */ public function initialized(document:Object, id:String):void { } } }
これでベースができました。
次回はこれらをベースにRed5接続、メソッド呼び出し、切断処理などを書いていきます。
2012年1月17日火曜日
SyntaxHighlighterを導入
これからコードを掲載することが多くなりそうなので、下記サイトを参考にテンプレートのHTMLをいじってSyntaxHighlighterを設定してみました。
どれどれ・・・
ちなみに、SyntaxHighlighterのcss、JavaScriptの置き場所はAmazon S3のようです。
後でgoogle-code-prettifyも試してみようかな。
[参考サイト]
Jump into!: BloggerにおけるSyntaxHighlighterの使い方
SyntaxHighlighter
どれどれ・・・
/** * SyntaxHighlighter */ function foo() { if (counter <= 10) return; // it works! }うむ。表示に1テンポ遅れるのが気になる。
ちなみに、SyntaxHighlighterのcss、JavaScriptの置き場所はAmazon S3のようです。
後でgoogle-code-prettifyも試してみようかな。
[参考サイト]
Jump into!: BloggerにおけるSyntaxHighlighterの使い方
SyntaxHighlighter
2012年1月16日月曜日
コードホスティングサービスとバージョン管理システムを選ぶ
これからプライベートなチームでアプリ開発を行うのですが、メンバが少ないこともあり、ソースコード管理にあまり労力をかけたくないので、コードホスティングサービスの利用を検討しました。
私の勤めている旧態依然とした某SI会社では、バージョン管理システムはSubversionを使え!ということになっていますが、最近では分散型のバージョン管理システムが普及しつつあるようです。
チームメンバとのやりとりは基本的にインターネットを介することになりますので、分散型であればネット障害が起きてもオフラインで作業できますし、バックアップの意味でもよいかなと考えました。
2012年1月現在、分散バージョン管理システムといえば、Git、Mercurial、Bazzarとなっています。
今回求めているのは、
また、Bitbucketのサービスについては、
と、いろいろよさそうです。
とりあえずこれをメンバに勧めてみたいと思います。
(2012/3/3追記)assemblaも"private repository with unlimited users"とあるのでいいかも。SubversionかGitです。
[参考サイト]
Bitbucket
渋日記: Bitbucket買収?そもそもそれ何?という人のためのBitbucket紹介
BitBucket と TortoiseHg で快適分散型バージョン管理生活 - さよならストレス
Mercurial や Git が使える無料のリポジトリサービスを集めてみた - kなんとかの日記
Mercurial + Bitbucket = 最高! - present
分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IT
私の勤めている旧態依然とした某SI会社では、バージョン管理システムはSubversionを使え!ということになっていますが、最近では分散型のバージョン管理システムが普及しつつあるようです。
チームメンバとのやりとりは基本的にインターネットを介することになりますので、分散型であればネット障害が起きてもオフラインで作業できますし、バックアップの意味でもよいかなと考えました。
2012年1月現在、分散バージョン管理システムといえば、Git、Mercurial、Bazzarとなっています。
今回求めているのは、
- 使い方の習得に極力時間をかけたくない
- Windowsで扱いやすい(たぶんメンバはみんなwinなので)
- Eclipseで使えるといい
- できるだけ安価に
- 他人が参照できない非公開リポジトリを作れるとよい。
Bitbucket + Mercurialがよいかな、と思いました。
(Launchpad+Bazzarも気になりますが・・・)
Mercurialは日本語の解説書もありますし、Google CodeがMercurialを採用した理由に学習曲線を挙げているようですので、これを鵜呑みにしたいと思います。
Mercurialは日本語の解説書もありますし、Google CodeがMercurialを採用した理由に学習曲線を挙げているようですので、これを鵜呑みにしたいと思います。
また、Bitbucketのサービスについては、
- 5ユーザまで無料
- 容量無制限
- プライベートリポジトリが作れる("UNLIMITED PRIVATE REPOS"と記載されています)
- Wiki、Issuuトラッカーあり
- バージョン管理システムにMercurialとGitが選べる
と、いろいろよさそうです。
とりあえずこれをメンバに勧めてみたいと思います。
(2012/3/3追記)assemblaも"private repository with unlimited users"とあるのでいいかも。SubversionかGitです。
[参考サイト]
Bitbucket
渋日記: Bitbucket買収?そもそもそれ何?という人のためのBitbucket紹介
BitBucket と TortoiseHg で快適分散型バージョン管理生活 - さよならストレス
Mercurial や Git が使える無料のリポジトリサービスを集めてみた - kなんとかの日記
Mercurial + Bitbucket = 最高! - present
分散バージョン管理Git/Mercurial/Bazaar徹底比較 (1/5) - @IT
2012年1月14日土曜日
新ブログをGoogle検索結果に表示させるぞ大作戦2(新サイトのインデックス登録)
自分のサイトを検索サイトのインデックスへの追加をお願いする仕組みがいくつかあるようです。
ping
Googleの場合は次のサイトがブログ登録フォームになっています。
登録フォームを介さず直接登録もできます。
やり方は、下記アドレスをブラウザのアドレスバーに打ち込みます。
例えば、bloggerの場合は以下のようになります。
さて、「RSSフィード」ですが、BloggerではATOMフィードが取得できます。
例えば、
2つめのものはファイルの形ではないように見えますが、ちゃんとxmlが返ってきます。
そして、クエリが使えます。こんな感じです。
ウェブマスターツールによる操作
Googleウェブマスターツールを開きます。
Bloggerでサイトを作成している場合、ウェブマスターツールにはすでに自分のサイトが表示されていると思います。これがリンクになっているので、クリッククリック。
以下、インデックス登録に役に立ちそうな機能です。
「サイト設定」→「サイトマップ」
RSS・ATOMフィード(前述)を登録して、インデックス作成対象として認識してもらいます。
「サイトマップを送信する」ボタンをクリック、自分のサイトのRSS・ATOMフィードを指定して「サイトマップ送信」をクリック
「診断」→「Fetch as Googlebot」
指定したURLをGoogleインデックスへ送信できます。
テキストボックスにサイトのURLを指定し「取得」した後、"インデックスに送信"のリンクをクリック
「サイト設定」→「クローラのアクセス」
サイトのコンテンツをクロールする方法を指定し、テストすることができます。
[参考サイト]
Blogger に移転してから検索にヒットしない?
Blog のプロモーション(Google)
ping
Googleの場合は次のサイトがブログ登録フォームになっています。
http://blogsearch.google.co.jp/ping画面のテキストボックスにインデックス登録したいブログのアドレスを記入して送信するだけです。
登録フォームを介さず直接登録もできます。
やり方は、下記アドレスをブラウザのアドレスバーに打ち込みます。
http://blogsearch.google.co.jp/ping?url=(URLアドレス か RSSフィード)
例えば、bloggerの場合は以下のようになります。
http://blogsearch.google.co.jp/ping?url=http://(自分のサイト名).blogspot.com/
さて、「RSSフィード」ですが、BloggerではATOMフィードが取得できます。
例えば、
http://(自分のサイト名).blogspot.com/atom.xmlまたは、
http://(自分のサイト名).blogspot.com/feeds/posts/defaultで取得可能です。
2つめのものはファイルの形ではないように見えますが、ちゃんとxmlが返ってきます。
そして、クエリが使えます。こんな感じです。
- http:// (自分のサイト名) .blogspot.com/feeds/posts/default?orderby=updated
- http:// (自分のサイト名) .blogspot.com/feeds/posts/default? max-results=500
ウェブマスターツールによる操作
Googleウェブマスターツールを開きます。
Bloggerでサイトを作成している場合、ウェブマスターツールにはすでに自分のサイトが表示されていると思います。これがリンクになっているので、クリッククリック。
以下、インデックス登録に役に立ちそうな機能です。
「サイト設定」→「サイトマップ」
RSS・ATOMフィード(前述)を登録して、インデックス作成対象として認識してもらいます。
「サイトマップを送信する」ボタンをクリック、自分のサイトのRSS・ATOMフィードを指定して「サイトマップ送信」をクリック
「診断」→「Fetch as Googlebot」
指定したURLをGoogleインデックスへ送信できます。
テキストボックスにサイトのURLを指定し「取得」した後、"インデックスに送信"のリンクをクリック
「サイト設定」→「クローラのアクセス」
サイトのコンテンツをクロールする方法を指定し、テストすることができます。
[参考サイト]
Blogger に移転してから検索にヒットしない?
Blog のプロモーション(Google)
2012年1月13日金曜日
WordPressブログサイトのGoogleウェブマスターツールへの登録方法
Google、Bingなどの検索サイトでは、ウェブマスターツールを提供しています。
ウェブマスターツールとは、自分のサイトが検索サイトにどのように登録されているか、などが確認できるツールです。
ウェブマスターツールで自分のサイトの情報を見るには、そのサイトの所有権が自分にあることを証明する必要があります。
(他人が勝手に自分のページを検索できなくしたりすると困りますよね。)
ここではWordPressのサイトをGoogleのウェブマスターツールへ登録する際の手順をメモしています。
Googleウェブマスターツールにて
トップ画面の「サイトを追加」ボタンを押す
自分のWordPressサイトのアドレスを入力して「続行」
"所有権の確認"画面
「別の方法」タブで「メタタグをサイトのホームページに追加」を選択
metaタグが表示されるので、content="(メタキー)"の(メタキー)の部分をコピー
画面はそのまま開いておく。
ここからWordPress側の操作(別画面で)
ダッシュボードから、「設定」→「ツール」→「利用可能なツール」
"Webマスターツール認証"でGoogle Webmaster Toolsのメタキー入力欄に、コピーしていたメタキーをペーストし、「変更を保存」ボタンを押す。
再びウェブマスターツールでの操作
「確認」ボタンを押す。
これでWordPressサイトの所有権が確認され、ウェブマスターツールでWordPressサイトの管理ができるようになります。
ウェブマスターツールとは、自分のサイトが検索サイトにどのように登録されているか、などが確認できるツールです。
ウェブマスターツールで自分のサイトの情報を見るには、そのサイトの所有権が自分にあることを証明する必要があります。
(他人が勝手に自分のページを検索できなくしたりすると困りますよね。)
ここではWordPressのサイトをGoogleのウェブマスターツールへ登録する際の手順をメモしています。
Googleウェブマスターツールにて
トップ画面の「サイトを追加」ボタンを押す
自分のWordPressサイトのアドレスを入力して「続行」
"所有権の確認"画面
「別の方法」タブで「メタタグをサイトのホームページに追加」を選択
metaタグが表示されるので、content="(メタキー)"の(メタキー)の部分をコピー
画面はそのまま開いておく。
ここからWordPress側の操作(別画面で)
ダッシュボードから、「設定」→「ツール」→「利用可能なツール」
"Webマスターツール認証"でGoogle Webmaster Toolsのメタキー入力欄に、コピーしていたメタキーをペーストし、「変更を保存」ボタンを押す。
再びウェブマスターツールでの操作
「確認」ボタンを押す。
これでWordPressサイトの所有権が確認され、ウェブマスターツールでWordPressサイトの管理ができるようになります。
新ブログをGoogle検索結果に表示させるぞ大作戦1(旧サイトのインデックス削除)
昨日からこのブログがGoogleで検索しても表示されないことで悲しんでいたのですが、いつまでも悲しんではいられません。
このブログをGoogle検索結果に表示させる作戦を立てるべく、得意のインターネットでいろいろ調べて、やってみました。
検索サイトがWeb検索を行う仕組み
まず、Webロボット(ロボジーのようなロボットではなく、プログラムですよ)がインターネットのそこかしこを泳いでサイト情報を集め、内容を分析して索引(インデックス)を作成します。
検索サイトのサーチエンジンはこのインデックスを元に検索結果を作成・表示するので、自分のサイトやブログが検索結果に表示されるためには、このインデックスに登録されている必要があります。
インデックスが作成されるにはサイトを新規作成してからしばらく時間がかかるみたいです(ロボット君がんばって泳いで)。
せっかちな人はこのロボット君にインデックスを作ってもらうように依頼することができるようです。
また、逆に検索されないようにすることもできます。
問題なのは、
他のブログサイトから移行したときで、移行前のサイトがそのまま検索結果に表示されてしまうという状況になってしまいます。(もしかしたら記事内容が同じものだとまずいのかもしれません。こちらは未調査)
そこで、まずは旧サイトをどうにかしないといけないな、ということになります。
私はWordPress.comから移行してきましたので、次のことをやらないといけなんでしょう。
そこで、WordPressのダッシュボードから設定します。
WordPressでのインデックス禁止設定
ダッシュボードにて、「設定」→「プライバシー」
"検索エンジンによるサイトのインデックスを許可しない。"
を選択して、「変更を保存」をクリック
これでおそらく、下記ファイルができあがるのではないかと思います。
http://(自分のブログ名).wordpress.com/robots.txt
そして、このファイルの中身はこうなっています。完全にお断りモードです。
これで次回クロール時にインデックスが削除されそうです。
せっかちな方はウェブマスターツールからURL削除リクエストが可能です。
削除要件を満たしておく必要がありますが、WordPressの上記手順を実施していれば問題なさそうです。
GoogleウェブマスターツールでのURL削除リクエスト
まずはこの記事の手順を実施。
その後、ウェブマスターツールより、登録したWordPressサイトを選択して下記を実施します。
「サイト設定」→「クローラのアクセス」→「URLの削除」タブ を表示
「新しい削除リクエストを作成」をクリックし、削除するサイトのURL(つまり、旧ブログサイトのURL)を入力して「続行」をクリック
確認画面で「リクエストを送信」をクリック
これでよし。
。。。思ったんだが、ステータスが結構長い時間保留中になっている。
しばらく待つかな。
2012年1月14日追記 ウェブマスターツールを見ると、ちゃんと削除されていました。
このブログをGoogle検索結果に表示させる作戦を立てるべく、得意のインターネットでいろいろ調べて、やってみました。
検索サイトがWeb検索を行う仕組み
まず、Webロボット(ロボジーのようなロボットではなく、プログラムですよ)がインターネットのそこかしこを泳いでサイト情報を集め、内容を分析して索引(インデックス)を作成します。
検索サイトのサーチエンジンはこのインデックスを元に検索結果を作成・表示するので、自分のサイトやブログが検索結果に表示されるためには、このインデックスに登録されている必要があります。
インデックスが作成されるにはサイトを新規作成してからしばらく時間がかかるみたいです(ロボット君がんばって泳いで)。
せっかちな人はこのロボット君にインデックスを作ってもらうように依頼することができるようです。
また、逆に検索されないようにすることもできます。
問題なのは、
他のブログサイトから移行したときで、移行前のサイトがそのまま検索結果に表示されてしまうという状況になってしまいます。(もしかしたら記事内容が同じものだとまずいのかもしれません。こちらは未調査)
そこで、まずは旧サイトをどうにかしないといけないな、ということになります。
私はWordPress.comから移行してきましたので、次のことをやらないといけなんでしょう。
- WordPress側に何か設定をして、検索サイトから検索されなくする。(Googleさん無視してもらう)
- Googleさん側で WordPressサイトを検索できないように設定する。
<meta name='robots' content='noindex,nofollow' />しかし、残念ながら自分の使っていたWordPress.comはこのようなことを直接行う術がなさそうです。
そこで、WordPressのダッシュボードから設定します。
WordPressでのインデックス禁止設定
ダッシュボードにて、「設定」→「プライバシー」
"検索エンジンによるサイトのインデックスを許可しない。"
を選択して、「変更を保存」をクリック
これでおそらく、下記ファイルができあがるのではないかと思います。
http://(自分のブログ名).wordpress.com/robots.txt
そして、このファイルの中身はこうなっています。完全にお断りモードです。
User-agent: *
Disallow: /
これで次回クロール時にインデックスが削除されそうです。
せっかちな方はウェブマスターツールからURL削除リクエストが可能です。
削除要件を満たしておく必要がありますが、WordPressの上記手順を実施していれば問題なさそうです。
GoogleウェブマスターツールでのURL削除リクエスト
まずはこの記事の手順を実施。
その後、ウェブマスターツールより、登録したWordPressサイトを選択して下記を実施します。
「サイト設定」→「クローラのアクセス」→「URLの削除」タブ を表示
「新しい削除リクエストを作成」をクリックし、削除するサイトのURL(つまり、旧ブログサイトのURL)を入力して「続行」をクリック
確認画面で「リクエストを送信」をクリック
これでよし。
。。。思ったんだが、ステータスが結構長い時間保留中になっている。
しばらく待つかな。
2012年1月14日追記 ウェブマスターツールを見ると、ちゃんと削除されていました。
2012年1月12日木曜日
Red5でHello World(1) - サーバ編
※他のRed5関連のエントリはこちら
FlexアプリからRTMPでRed5側のメソッドを呼び出し、実行結果をFlexに返す、という超簡単なプログラムを作ってみよう。
まずはRed5(サーバ)側から。
とっかかり、何もわからんが、やるべきことは
に違いない。ということでやってみる。
Eclipseでのプロジェクトの作成、Red5サーバーの設定
せっかくEclipseのRed5Pluginをインストールしているので、これを使って参考サイトを見ながらプロジェクト作成からやってみよう。
これでプロジェクトができた。
あと、「サーバ」タブでサーバ定義しておこう。
[参考サイト]
Creating Red5 Projects with Red5 Plugin
Applicationクラスとメソッドの作成
ネットでいろいろ調べてみると、どうやら
org.red5.server.adapter.ApplicationAdapter
を継承したクラスを作成して、そこに適当にメソッドを実装すればいいらしいことが判明。
さっき作ったプロジェクトの"Java Resources"→"src"に適当にパッケージ作って、そこにJavaクラスを作成する。
クラス、メソッドは下記参考サイトのものをそのまんま書きました。
作成したクラス名は"Application"としたけど、もしかしたらなんでもOKかな。
[参考サイト]
[Red5入門コース第3回]サンプルアプリケーションの作成
作成したアプリケーションのRed5へのデプロイ
Red5ってなんかTomcatっぽいし(2012/2/26追記 Jettyがベースのようですね)、インストールフォルダに"webapps"ってフォルダあるから、たぶんこのこの中に自作アプリ用のフォルダ、WEB-INFとかフォルダ作って、WEB-INFの中にディプロイメントディスクリプタ(構成情報ファイル)とか書いとけば動くんじゃない?と、なんとなく思うわけだ。
またまた得意のネットで調べてみると、どうやら次の3つのファイルが必要になるみたい。
0から手書きは面倒なので、下記参考サイトをガン見して3つのファイルを作る。
ここまでやってやっとデプロイできそう。
デプロイはRed5Pluginを使って実施。
さっき作った"サーバー"を上を、 右クリック→「公開」
これで、webappsフォルダに自分のアプリケーション用のフォルダが作成され、必要なファイルが適切なフォルダに配置されるのだ。
ここで、Red5を起動させて変なエラーがでないか確認してみよう。
"サーバー"を上を右クリック→「開始」とするとコンソールタブに切り替わり、Red5の起動ログが出力されていく。この中に、
[INFO] [Launcher:/(自作アプリの名前)]・・・
みたいなログが表示されていれば無事にデプロイされている、はず。
ちなみに、停止するには、"サーバー"を上を右クリック→「停止」。
[参考サイト]
red5を使ってライブストリーミングアプリケーションをつくる
Red5サーバ側はここまで。
次回はFlex側じゃー!
FlexアプリからRTMPでRed5側のメソッドを呼び出し、実行結果をFlexに返す、という超簡単なプログラムを作ってみよう。
まずはRed5(サーバ)側から。
とっかかり、何もわからんが、やるべきことは
- "Hellow, World."という文字列を返すメソッドを含んだクラスを作る。
- 作成したクラスをRed5へ配置し、動くようにする。
に違いない。ということでやってみる。
Eclipseでのプロジェクトの作成、Red5サーバーの設定
せっかくEclipseのRed5Pluginをインストールしているので、これを使って参考サイトを見ながらプロジェクト作成からやってみよう。
- Eclipseのメニューから、「ファイル」→「新規」→「動的Webプロジェクト(Dynamic Web Project)」で新規プロジェクトを作成。プロジェクト名は適当でOK。
- 一番最初にプロジェクトを作成するときは、ターゲット・ラインタイムが<None>になっているはずなので、「新規ランタイム」ボタンをポチる。
- 新規サーバ・ランタイム環境の画面が表示されるので、フィルターに"Red5"と入力してみる。 Red5Plugin がちゃんとインストされていれば"Red5 Server Runtime"が選択できるはず。
- JREに1.6 、Runtime Directoryにred5.jarが格納されているフォルダ(Red5にインストールフォルダ)を指定して、"完了"ボタンをポチる。
- あとは適当に完了ボタン押下。
これでプロジェクトができた。
あと、「サーバ」タブでサーバ定義しておこう。
- 右クリック→「新規」→「サーバー」
- サーバータイプに"Red5 Server Runtime"を選択。「サーバーのホスト名」はlocalhostかIPアドレスかな。サーバ名は適当。たぶん自動で作成されるのでそのまま使った。サーバー・ランタイム環境も "Red5 Server Runtime"。これで「次へ」
- (ここ重要)"Auto Deploy Directory"にRed5インストールフォルダ配下の"webapps"を指定。"Start Script"と"Stop Script"は、これまたインストールフォルダにある"red5-debug.bat"、"red5-shutdown.bat"を指定。サーバ・ポート、デバッグ・ポートはデフォルトの5080、87787のまま(ちなみにこの2つのバッチファイルはそのままだとうまく動かなかったので書き換えてしまった)。これで「次へ」。
- 追加および除去の画面が表示される。さっき作ったプロジェクトが使用可能欄に表示されているはずなので、これを選択して「追加」ボタンをポチる。これで「完了」
[参考サイト]
Creating Red5 Projects with Red5 Plugin
Applicationクラスとメソッドの作成
ネットでいろいろ調べてみると、どうやら
org.red5.server.adapter.ApplicationAdapter
を継承したクラスを作成して、そこに適当にメソッドを実装すればいいらしいことが判明。
さっき作ったプロジェクトの"Java Resources"→"src"に適当にパッケージ作って、そこにJavaクラスを作成する。
クラス、メソッドは下記参考サイトのものをそのまんま書きました。
作成したクラス名は"Application"としたけど、もしかしたらなんでもOKかな。
[参考サイト]
[Red5入門コース第3回]サンプルアプリケーションの作成
作成したアプリケーションのRed5へのデプロイ
Red5ってなんかTomcatっぽいし(2012/2/26追記 Jettyがベースのようですね)、インストールフォルダに"webapps"ってフォルダあるから、たぶんこのこの中に自作アプリ用のフォルダ、WEB-INFとかフォルダ作って、WEB-INFの中にディプロイメントディスクリプタ(構成情報ファイル)とか書いとけば動くんじゃない?と、なんとなく思うわけだ。
またまた得意のネットで調べてみると、どうやら次の3つのファイルが必要になるみたい。
- red5-web.properties
- red5-web.xml
- web.xml
0から手書きは面倒なので、下記参考サイトをガン見して3つのファイルを作る。
- Red5にインストールしたデモSOSapmleのフォルダ(webapps/SOSample/WEB-INF)にあるred5-web.properties、red5-web.xmlの2つのファイルをコピって、Eclipseのプロジェクトの"WebContent"→"WEB-INF"にペーストして元を作る。 web.xmlはもともとプロジェクト作成時に自動生成されているものを利用する。
- 各3つのファイルをEclipse上で開いて自分のアプリ用に修正、追記する。
red5-web.properties・・・コンテキスト・パスを修正(必要があればバーチャルホストも)
red5-web.xml・・・beanタグのid="web.handler"のclassを、自作のApplicationクラスのフルパスに修正
web.xml・・・context-paramタグ、webAppRootKeyを追記
ここまでやってやっとデプロイできそう。
デプロイはRed5Pluginを使って実施。
さっき作った"サーバー"を上を、 右クリック→「公開」
これで、webappsフォルダに自分のアプリケーション用のフォルダが作成され、必要なファイルが適切なフォルダに配置されるのだ。
ここで、Red5を起動させて変なエラーがでないか確認してみよう。
"サーバー"を上を右クリック→「開始」とするとコンソールタブに切り替わり、Red5の起動ログが出力されていく。この中に、
[INFO] [Launcher:/(自作アプリの名前)]・・・
みたいなログが表示されていれば無事にデプロイされている、はず。
ちなみに、停止するには、"サーバー"を上を右クリック→「停止」。
[参考サイト]
red5を使ってライブストリーミングアプリケーションをつくる
Red5サーバ側はここまで。
次回はFlex側じゃー!
2012年1月10日火曜日
Red5アプリケーション開発環境の整備(3) - Flex開発環境
クライアント側はFlash(Flex)となるのでFlashの開発環境が必要。
Flexの開発には何通りかある模様。
- Adobe Flash Builderを利用する。
- Flex SDKをインストールし、テキストエディタでガリガリ書く。
- FlashDevelopを利用する。
Adobe Flash Builder
製品版は85,000円也。試用版として無料で利用できる期間がある。
ダウンロードにAdobe IDが必要。作成しましょう。
サイズが大きい(1GB近くある)。
たぶん便利なので、お金がある人はこちら。
[参考サイト]
Flex SDK+テキストエディタ
めんどくさそうなので却下。
FlashDevelop
フリーのFlash統合開発環境。
てきとうにコーディングしていても補完候補やバルーンヘルプが出てきて楽。コンパイルもボタンひとつ。
導入したバージョン(4.0.0 RC3)ではFlex SDKがインストーラに同梱されているので、別途導入する必要なし。
[参考サイト]
というわけで、取り急ぎFlashDevelopを使って開発することにした。
インストールは上記の本家サイトからインストーラをダウンロードしてダブルクリックするだけ。
なお、.Net2.0が必要となるみたいなので、入ってない場合は事前にインストール要。
環境構築はこれでおしまい。
次はRed5でHello, Worldだ。
環境構築はこれでおしまい。
次はRed5でHello, Worldだ。
Red5アプリケーション開発環境の整備(2) - Eclipseのインストールと設定
さて、Red5アプリ開発、サーバ側はJavaでの開発になるので、Eclipseを使うことにしよう。
Eclipseのインストール、日本語化
Eclipseはしばらく見ないうちにずいぶんバージョンアップしたようだ。
インストールしたバージョンはIndigo (3.7.1) 。
後でRed5 IDE Pluginも入れるのだが、サイトの説明(参考サイト)によると、
You must use the JEE distribution of Eclipse. The standard Java distribution will not work.
とのことなのでEclipseダウンロードサイトにて「Eclipse IDE for Java EE Developers」を選択。
ダウンロードしたzipファイルを適当なフォルダに展開して終了。
日本語化はおなじみのPleiadesで実施。
SubversionクライアントとしてSubversiveを使いたいので、Eclipseマーケットプレース(こんなのできたのか!)から
「Subversive-SVNチーム・プロバイダー」もインストール。
Red5 IDE Pluginのインストール
通常プラグインをインストールする方法と同じく、「新規ソフトウェアのインストール」からプラグインのサイトを指定してインストール。
サイトのアドレスは下記参考サイトに記載されています。
表示されたリストから「Red5 Feature」を選択して何事もなくインストール完了。
[参考サイト]
Red5アプリケーション開発環境の整備(1) - Red5のインストール
とあるアプリケーションを作りたいと思い立ちましたが、それには動画のストリーミング配信が必要でした。
AdobeのFlash Media Serverを導入できればいいのですが、製品版115,500円と貧乏人の私には手がでません。
そこで、オープンソースのRed5というFlashサーバを利用することにしました。
[参考サイト]
Red5のインストール
Windows7 Home Premium Editionにインストール。
動作にはJava6が必要とのことなので、未導入の場合はOracleのサイト(もうSunじゃないのね)からあらかじめインストール。
導入したRed5のバージョン(Red5 0.9.1 Final)では、インストール時にIPアドレスとポート番号を入力する必要がありました。
当方、家庭内ネットワークを構築しているので、インストールマシンのIPアドレス、ポート番号は定番らしい5080を設定しました。
(たぶん後から設定変更できるんじゃないかと思います)
インストールした際にWinのサービスに登録され、自動起動に設定されますが、開発時は頻繁に停止、再起動するはずですので、サービスの設定は手動に変更しました。
また、インストールフォルダにあるred5-shutdown.batとred5-debug.batはそのままだとうまく動かなかったので、書き換え。
インストールされたものを眺めると、どうやらTomcatをベースにSpringやらなにやらでカスタマイズしてFlashサーバにしているようです。
[参考サイト]
Red5の起動、そしてデモで遊ぶ
インストールフォルダにあるred5.batをコマンドプロンプトからたたくと起動します。
起動後、ブラウザからhttp://(IPアドレス):5080/にアクセスするとトップ画面が現れます。
デモのインストールと遊び方は下記サイトを参考に(ちょっと画面構成等が異なりますが)。
OFLA Demo、Publisher、Shared Ballの3つのデモの説明があります。動画配信もいいですが、個人的Shared Ballがおもしろいと思いました。
[参考サイト]
登録:
投稿 (Atom)