tag:blogger.com,1999:blog-15094638473692128282024-03-19T12:19:03.004+09:00Nakajiman Software BlogJavaScript をこよなく愛する なかじまんソフトウェア株式会社 のスタッフによるブログです。<br>
OpenSocial Container や Social Gadgets の開発を技術面から支援します。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.comBlogger378125tag:blogger.com,1999:blog-1509463847369212828.post-58361388972278721002011-09-23T15:27:00.001+09:002011-09-26T00:52:29.477+09:00DotCloudにJenkins+Nexus環境を構築してBitbucketと連携してみたよ(3/3)こんにちは!aquilegiaです。<br />
<br />
その2の続きになります。今回で最後になりますのでもう少しお付き合いください。<br />
<br />
<b>4、Bitbucketの準備</b><br />
Bitbucketのアカウントを作成して動作確認用プロジェクトのリポジトリを作成します。<br />
<br />
<b>4-1、Bitbucketのアカウントを作成してログイン</b><br />
<a href="https://bitbucket.org/">Bitbucket公式サイト</a>のSign up freeボタンからサインアップしてください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZSRo_T8fqbPo_-KcwneMabqymJAzBWBisni5usw54ozFfr0MXsgWfgjx-jtXn0FBmjnsSKKOLUJGbglTTUzkHeEo0CeP2pdWI8aoU0p3wpAYd8CHFWwysuAPgvtTrjAdJpyqoPnNpXmCa/s1600/4-1+bitbuket%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25A2%25E3%2583%2583%25E3%2583%2597.png" imageanchor="1"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZSRo_T8fqbPo_-KcwneMabqymJAzBWBisni5usw54ozFfr0MXsgWfgjx-jtXn0FBmjnsSKKOLUJGbglTTUzkHeEo0CeP2pdWI8aoU0p3wpAYd8CHFWwysuAPgvtTrjAdJpyqoPnNpXmCa/s320/4-1+bitbuket%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25A2%25E3%2583%2583%25E3%2583%2597.png" width="320" /></a></div>
<br />
例ではアカウント名をaquilegiaで登録しています。今後、BItbucket接続URLなどにaquilegiaと出てきた場合は適宜読み替えてください。<br />
<br />
<b>4-2、リポジトリを作成</b><br />
サインアップが完了したらページ上部にあるRepositoriesからcreate repositoryを選択した後、以下の内容で入力してください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
Name: helloworld<br />
Private: チェック有<br />
Language: Java<br />
Description: 動作確認用プロジェクト<br />
Website: (なし)<br />
Project management: (Wiki、Issue trackingはお好みで)<br />
</div>
<br />
入力が終わったらCreate repositoryボタンを押下してください。これでBitbucketの準備は終わりです。<br />
<br />
<b>5、動作確認用プロジェクトの作成</b><br />
4-2で作成したリポジトリにプッシュするプロジェクトを作成します。動作確認用なので手間をかけずにMavenで作ります。<br />
<br />
<b>5-1、プロジェクトを作成</b><br />
下記コマンドを実行すると<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
$ cd ~<br />
$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=sample -DartifactId=helloworld -Dversion=0.1-SNAPSHOT<br />
(実行を確認にYと応える)<br />
</div>
<br />
次の構造のQuickStartプロジェクトが作成されます。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
helloworld<br />
├── pom.xml<br />
└── src<br />
├── main<br />
│ └── java<br />
│ └── sample<br />
│ └── App.java<br />
└── test<br />
└── java<br />
└── sample<br />
└── AppTest.java<br />
</div>
<br />
このままでも動きますが動作確認が目的なので、このプロジェクトが依存しているJUnitを<br />
Nexusから取得するようにpom.xmlにリポジトリ定義を追加します。<br />
</dependencies>の後にDotCloudアカウント名を書き換えたrepositoriesを追加してください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
$ vi helloworld/pom.xml<br />
<repositories><br />
<repository><br />
<id>com.dotcloud.nexus</id><br />
<url>http://nexus-(DotCloudアカウント名).dotcloud.com/content/groups/public</url><br />
</repository><br />
</repositories><br />
</div>
<br />
<b>5-2、リポジトリへコミット→プッシュ</b><br />
作成したプロジェクトをBitbucketへプッシュするためにMercurialをインストールします。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
$ sudo yum -y install mercurial<br />
$ hg --help<br />
</div>
<br />
次に作成したプロジェクトにローカルリポジトリを作成してコミットしてください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
$ cd ~<br />
$ mkdir bitbucket<br />
$ hg clone https://(Bitbucketアカウント名)@bitbucket.org/(Bitbucketアカウント名)/helloworld bitbucket/helloworld<br />
$ mv helloworld/* ./bitbucket/helloworld/<br />
$ rm -rf helloworld<br />
$ cd bitbucket/helloworld<br />
$ hg status<br />
$ hg add<br />
$ hg commit -u (Bitbucketアカウント名) -m '初回コミット'<br />
</div>
<br />
コミット時にユーザ名を指定しておくとBitbucketにリンク付きで表示されます。Bitbucketに存在しないユーザ名を指定するとデッドリンクになるので取得したアカウント名を指定するのが無難です。<br />
最後にBitbucketへプッシュします。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
$ hg push https://(Bitbucketアカウント名)@bitbucket.org/(Bitbucketアカウント名)/helloworld<br />
</div>
<br />
プッシュが成功すればBitbucketのSourceタブにソースが表示されます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6QK9SL8tPHaYl72PhWWv8xIyIp1vMILXLnxuj7iWvA3fKl5CNhlKAYMdaniPJEBBEkEh7gfxDmmuq1GRKhQeG-SWPCXsFXNqZIT-tJHKNevCONEKnNC9oJSTme_YbhxSlKcDg06FxzYH8/s1600/5-2+%25E3%2583%2597%25E3%2583%2583%25E3%2582%25B7%25E3%2583%25A5.png" imageanchor="1"><img border="0" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6QK9SL8tPHaYl72PhWWv8xIyIp1vMILXLnxuj7iWvA3fKl5CNhlKAYMdaniPJEBBEkEh7gfxDmmuq1GRKhQeG-SWPCXsFXNqZIT-tJHKNevCONEKnNC9oJSTme_YbhxSlKcDg06FxzYH8/s320/5-2+%25E3%2583%2597%25E3%2583%2583%25E3%2582%25B7%25E3%2583%25A5.png" width="320" /></a></div>
<br />
<b>6、動作確認</b><br />
<b>6-1、Nexus接続情報を設定</b><br />
Nexusリポジトリは匿名ユーザではアクセスできないように設定したので、
Mavenでビルド時にNexusリポジトリを参照できるよう接続情報を設定したsettings.xmlを作成してください。<br />
またJenkinsがNexusからDLした依存ファイルを保存するローカルリポジトリをjettyユーザが書き込める場所に変更するためlocalRepositoryを指定してください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
$ dotcloud run jenkins.www -- mkdir -p .m2/repository \&\& ls -al<br />
$ dotcloud run jenkins.www -- chmod 775 .m2/repository \&\& ls -l .m2/<br />
$ dotcloud run jenkins.www -- vi .m2/settings.xml<br />
<?xml version="1.0" encoding="UTF-8"?><br />
<settings><br />
<localRepository>/home/dotcloud/.m2/repository</localRepository><br />
<servers><br />
<server><br />
<id>com.dotcloud.nexus</id><br />
<username>nexus</username><br />
<password>(Nexusパスワード)</password><br />
</server><br />
</servers><br />
</settings><br />
<br />
$ dotcloud run jenkins.www -- cat .m2/settings.xml<br />
</div>
<br />
<b>6-2、動作確認用プロジェクトをビルドするジョブを登録</b><br />
ブラウザからJenkinsにログインし、左メニューから新規ジョブ作成を選択してください。<br />
以下の内容を入力しOKボタンを押下する<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
ジョブ名: helloworld<br />
ビルド: フリースタイル・プロジェクトのビルド<br />
</div>
<br />
ビルドにMaven2/3プロジェクトを指定しないのはsettings.xmlを指定するためです。<br />
次にジョブの細かな設定をします。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">
ソースコード管理システム: Mercurial<br />
Repository URL: https://(Bitbucketアカウント名):(Bitbucketパスワード)@bitbucket.org/aquilegia/helloworld/<br />
<br />
ビルド手順の追加: Mavenの呼び出し<br />
使用するMaven: maven_2.2.1<br />
ゴール: package<br />
高度な設定<br />
JVMオプション: -Dorg.apache.maven.user-settings=/home/dotcloud/.m2/settings.xml<br />
</div>
<br />
JVMオプションのsettings.xmlファイルの指定は忘れないようにしてください。<br />
<br />
<b>6-3、ジョブを実行</b><br />
登録したジョブの左メニューにあるビルド実行リンクを押下してジョブを実行してください。<br />
ビルド履歴の日付リンクを押下し、左メニューのコンソール出力リンクから詳細を見ることができます。問題がなければ下のようにBUILD SUCCESSFULと表示されるはずです。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivej-EZ_Wn6JVYWJsKte5BRNvDmchOUuyfsc65Yy-9Fm1Aqf_ODgRLpBZcChyCfW5QgXVLYxO3fuvyRbaJn9BqL12ycmbTivRShi-vb9FUnIzFeMRtstvQVbqI9qHAOPoLaKD4cie-y4H1/s1600/6-2+%25E3%2582%25B8%25E3%2583%25A7%25E3%2583%2596%25E5%25AE%259F%25E8%25A1%258C%25E7%25B5%2590%25E6%259E%259C.png" imageanchor="1" style=""><img border="0" height="228" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivej-EZ_Wn6JVYWJsKte5BRNvDmchOUuyfsc65Yy-9Fm1Aqf_ODgRLpBZcChyCfW5QgXVLYxO3fuvyRbaJn9BqL12ycmbTivRShi-vb9FUnIzFeMRtstvQVbqI9qHAOPoLaKD4cie-y4H1/s320/6-2+%25E3%2582%25B8%25E3%2583%25A7%25E3%2583%2596%25E5%25AE%259F%25E8%25A1%258C%25E7%25B5%2590%25E6%259E%259C.png" /></a></div>
<br />
画像はわかりやすくするため何回か実行した後のものになりますが、初回はこれに加えてプラグインや依存のDLログが出力されます。<br />
<br />
<br />
<br />
お疲れ様でした。これでDotCloud上にプライベートビルド環境ができました。Jenkinsのジョブ設定で「SCMをポーリング」を指定すればプッシュした後に変更を検知して自動でビルドすることもできます。また今回は手間を省くために動作確認用プロジェクトの作成にEclipseを使いませんでしたが、EclipseのMercurialEclipseプラグイン(<a href="http://cbes.javaforge.com/update">updateサイト</a>)を使うとBitbucketとのやり取りが簡単になります。<br />
<br />
また注意点としてJenkinsとNexusはどちらもその機能上ディスクを多く使いますがDotCloudはまだディスクの使用制限がはっきりしていません。そのため過度な利用は避けたほうがよさそうです。<br />
<br />
開発に使うツールをクラウド上に置くといつでも作業ができて便利です。他のサービスも組み合わせて快適な開発環境を構築してみてください。それではまた。
aquilegiahttp://www.blogger.com/profile/01119873761159018627noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-67161327820390433032011-09-23T15:22:00.000+09:002011-09-23T15:22:08.262+09:00DotCloudにJenkins+Nexus環境を構築してBitbucketと連携してみたよ(2/3)こんにちは!aquilegiaです。<br />
<br />
その1の続きです。今回はDotCloudにJenkinsを構築します。<br />
Jenkinsは少し面倒ですがお付き合いください。<br />
<br />
<b>3、DotCloudにJenkinsを構築</b><br />
<b>3-1、DotCloud用カスタムWARを作成</b><br />
JenkinsもNexus同様にjettyユーザが書き込めるJENKINS_HOMEディレクトリが必要ですが、DotCloud環境だとJenkinsが提供する外部指定(JNDIや環境変数、システムプロパティなど)が全て利用できません。その為、あまりやりたくありませんがJenkinsのソースを直接変更してJENKINS_HOMEを指定します。<br />
<br />
変更後のJENKINS_HOMEは/home/dotcloud/jenkinsとします。<br />
<br />
<b>3-1-1、GitHubからJenkinsのソースコードをDL</b><br />
ローカルにgitがインストールされていない場合は事前にインストールしてください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ rpm -qa | grep git<br />
$ sudo yum -y install git<br />
</div>
<br />
次にカスタムWARを作るために編集対象のソースが含まれるcoreプロジェクトをcloneします。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ mkdir -p jenkins/src<br />
$ cd jenkins/src<br />
$ git clone git://github.com/jenkinsci/jenkins.git core<br />
</div>
<br />
最新ソースの状態になっているので安定してるリリースタグをチェックアウト(後でDLするWARファイルとバージョンを合わせておく)<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ cd core<br />
$ git checkout jenkins-1.430<br />
</div>
<br />
<b>3-1-2、WebAppMain.javaを編集してJENKINS_HOMEを変更</b><br />
WebAppMain.javaを開き<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ cd core/core/src/main/java/hudson/<br />
$ cp -p WebAppMain.java WebAppMain.java.org<br />
$ vi WebAppMain.java<br />
</div>
<br />
getHomeDirメソッドの内容を次の2行にしてください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;"> File newHome = new File("/home/dotcloud/jenkins");<br />
return new FileAndDescription(newHome,"/home/dotcloud/jenkins");<br />
</div>
<br />
<b>3-1-3、ソースをコンパイル</b><br />
コンパイルはMavenを利用します。JDKも必要になるので無い場合はインストールしてください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">$ wget http://download.oracle.com/otn-pub/java/jdk/6u27-b07/jdk-6u27-linux-x64-rpm.bin<br />
$ mv jdk-6u27-linux-x64-rpm.bin\?e\=1316438935\&h\=38edd1ecfcdb35d6dd0aa91215bb62fb jdk-6u27-linux-x64-rpm.bin<br />
$ chmod u+x jdk-6u27-linux-x64-rpm.bin<br />
$ sudo ./jdk-6u27-linux-x64-rpm.bin<br />
$ java -version<br />
</div>
<br />
次にMavenをインストールします。インストールはrootで作業します。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">$ su -<br />
# wget http://ftp.kddilabs.jp/infosystems/apache//maven/binaries/apache-maven-2.2.1-bin.tar.gz<br />
# tar xzvf apache-maven-2.2.1-bin.tar.gz<br />
# mv apache-maven-2.2.1-bin /opt/maven2<br />
# rm -f apache-maven-2.2.1-bin.tar.gz<br />
# vi /etc/profile.d/maven2.sh<br />
export M2_HOME=/opt/maven2<br />
export PATH=$PATH:$M2_HOME/bin<br />
# exit<br />
$ source /etc/profile<br />
$ mvn -v<br />
</div>
<br />
最後のmvnコマンドでバージョン情報が表示されればインストール成功です。<br />
<br />
coreディレクトリの直下に移動した後、下記コマンドを実行してコンパイルします。(※数分かかります)<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ cd ~/jenkins/src/core/core<br />
$ mvn compile<br />
</div>
<br />
OpenJDKを使うとcom.sun.toolsが見つからないというエラーでビルドが失敗するかもしれません。その場合はOpenJDKをアンインストール後、OracleのJDKを入れて試してみてください。<br />
<br />
<b>3-1-4、JenkinsのWARファイルをDL</b><br />
MavenでWARまで作っても構いませんが、無難にリリースされたWARファイルを利用します。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ cd ~/jenkins/<br />
$ wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war<br />
</div>
<br />
<b>3-1-5、WAR内のclassesに作成したWebAppMain.classを追加</b><br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">$ mkdir -p WEB-INF/classes/hudson<br />
$ cp -p src/core/core/target/classes/hudson/WebAppMain.class ./WEB-INF/classes/hudson/<br />
$ cp -p jenkins.war jenkins.war.org<br />
$ zip jenkins.war WEB-INF/classes/hudson/WebAppMain.class<br />
</div>
<br />
<b>3-2、DotCloudにjenkinsアプリケーションを作成</b><br />
下記コマンドを実行し、jenkinsアプリケーションを作成してください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud create jenkins<br />
</div>
<br />
<b>3-4、DotCloudへデプロイ</b><br />
デプロイはNexusと同様にビルドファイルを作成し、ビルドファイルとWARファイルのみのディレクトリを作成した後にpushコマンドを実行します。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">$ cat > dotcloud.yml <<EOF<br />
www:<br />
type: java<br />
EOF<br />
$ mkdir deploy<br />
$ mv jenkins.war deploy/ROOT.war<br />
$ mv dotcloud.yml deploy/<br />
$ dotcloud push jenkins deploy/<br />
upload deploy/ ssh://dotcloud@uploader.dotcloud.com:443/jenkins<br />
rsync<br />
Pseudo-terminal will not be allocated because stdin is not a terminal.<br />
building file list ... done<br />
./<br />
ROOT.war<br />
dotcloud.yml<br />
<br />
sent 45.19M bytes received 53 bytes 772.50K bytes/sec<br />
total size is 45.37M speedup is 1.00<br />
Deployment for "jenkins" triggered. Will be available in a few seconds.<br />
2011-09-19 15:39:50 [api] Deploy jenkins scheduled for revision=latest<br />
2011-09-19 15:39:51 [api] Waiting for the build. (It may take a few minutes)<br />
2011-09-19 15:39:51 [www.0] Deploying...<br />
2011-09-19 15:40:12 [www.0] Service booted<br />
2011-09-19 15:40:12 [api] All the services are ready. Beginning the build.<br />
2011-09-19 15:40:13 [www.0] The build started<br />
2011-09-19 15:40:16 [www.0] Fetched code revision rsync-xxxxxxxxxx.xx<br />
2011-09-19 15:40:18 [www.0] * Stopping Jetty servlet engine (was reachable on http://jenkins-default-www-0:8080/). jetty<br />
2011-09-19 15:40:21 [www.0] * Jetty servlet engine stopped. jetty<br />
2011-09-19 15:40:21 [www.0] ...done.<br />
2011-09-19 15:40:21 [www.0] * Starting Jetty servlet engine. jetty<br />
2011-09-19 15:40:21 [www.0] * Jetty servlet engine started, reachable on http://jenkins-default-www-0:8080/. jetty<br />
2011-09-19 15:40:26 [www.0] ...done.<br />
2011-09-19 15:40:26 [www.0] The build finished successfully<br />
2011-09-19 15:40:26 [api] Deploy finished<br />
<br />
Deployment finished. Your application is available at the following URLs<br />
www: http://jenkins-aquilegia.dotcloud.com/<br />
</div>
<br />
この状態ではNexusと同じ理由でまだ正常に動きませんので、ディレクトリを作成する手順を進めてください。<br />
<br />
<b>3-5、DotCloudにJENKINS_HOMEを作成</b><br />
下記コマンドを実行し、jenkinsディレクトリを作成してください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud run jenkins.www -- mkdir jenkins \&\& ls -l<br />
</div>
<br />
Nexusと同様にグループに書込権限を付与してください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud run jenkins.www -- chmod g+w jenkins \&\& ls -l<br />
</div>
<br />
<b>3-6、Jenkinsを再起動</b><br />
これでJenkinsを起動するまでの準備が整いました。<br />
別コンソールでログをtailしつつ、Jenkinsを再起動します。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud logs jenkins.www<br />
</div>
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud restart jenkins.www<br />
</div>
<br />
ログにスタックとレースが表示されず、最後に以下のログが表示されれば成功です。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">INFO: JNLP slave agent listener started on TCP port 58600<br />
Sep 19, 2011 3:48:56 PM hudson.WebAppMain$2 run<br />
INFO: Jenkins is fully up and running<br />
</div>
<br />
正常に起動すればブラウザでアクセスするとTOPページが表示されます。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm0uP23hFxgm0r_G9UzQGGoz7oEeTk4JI1xVlMWSixr3r-QcaUR1XzyTDw1o5deiCze9_4YHr7sMzo3yyAGQ-mL73BYGWLcBK7IjK7vmOtvecmvlnKkZk2TqT-osuSH5PznBzWHqDkjkCc/s1600/3-6+Jenkins%25E8%25B5%25B7%25E5%258B%2595.png" imageanchor="1"><img border="0" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm0uP23hFxgm0r_G9UzQGGoz7oEeTk4JI1xVlMWSixr3r-QcaUR1XzyTDw1o5deiCze9_4YHr7sMzo3yyAGQ-mL73BYGWLcBK7IjK7vmOtvecmvlnKkZk2TqT-osuSH5PznBzWHqDkjkCc/s320/3-6+Jenkins%25E8%25B5%25B7%25E5%258B%2595.png" width="320" /></a></div>
<b>3-7、Jenkinsの初期設定</b><br />
初期状態は外部に公開されている状態なので自分だけが利用できるように設定します。<br />
<br />
<b>3-7-1、ログインユーザを作成</b><br />
Jenkinsにユーザを作成します。<br />
<ul>
<li>左メニューから「Jenkinsの管理→システム設定」を選択し、システム設定ページを表示</li>
<li>6番目ぐらいにある「セキュリティを有効化」チェックボックスをON</li>
<li>アクセス制御のユーザ情報から「Jenkinsのユーザデータベース」を選択</li>
<li>保存ボタンを押下</li>
</ul>
保存した後、ページ右上にサインアップリンクが表示されるようになるので<br />
リンクを押下してユーザを作成してください。(例ではjenkinsとします)<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">ユーザ名: jenkins<br />
パスワード: (パスワードを入力)<br />
パスワードの確認: (パスワードを入力)<br />
フルネーム: jenkins<br />
メールアドレス: (メールアドレスを入力)<br />
</div>
<br />
サインアップが完了すると作成したユーザでログインした状態になります。<br />
その後はサインアップできないようにします。<br />
<br />
<ul>
<li>左メニューから「Jenkinsの管理→システム設定」を選択し、システム設定ページを表示</li>
<li>アクセス制御のユーザ情報にある「ユーザにサインアップを許可」チェックボックスを外す</li>
<li>保存ボタンを押下</li>
</ul>
<div>
これでページ右上からサインアップリンクが消えたはずです。</div>
<br />
<br />
<b>3-7-2、権限を設定</b><br />
<b><span class="Apple-style-span" style="font-weight: normal;">Jenkinsを利用できるユーザをログインユーザのみにします。</span></b><br />
<ul>
<li>左メニューから「Jenkinsの管理→システム設定」を選択し、システム設定ページを表示</li>
<li>アクセス制御の管理権限を行列による権限設定に変更</li>
<li>匿名ユーザはそのままでauthenticatedという名前のユーザを追加</li>
<li>全権限を与える(チェックを全て入れる)</li>
<li>保存ボタンを押下</li>
</ul>
権限のチェックを終えると次のようになります。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdf3bXxWQwnxcgvnroM4yRMPLO9r8YC0ZFHkHpoE6JtxFmex8jPzI2T9mo12ZXkk14xfHE1REcjMaiOmveveUe2uKzzFLi4pSVQjXUq1cQiaSJw3RVhY6R7IVDP423ydhAz13tD9kBojjE/s1600/3-7+%25E6%25A8%25A9%25E9%2599%2590%25E4%25BB%2598%25E4%25B8%258E.png" imageanchor="1"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdf3bXxWQwnxcgvnroM4yRMPLO9r8YC0ZFHkHpoE6JtxFmex8jPzI2T9mo12ZXkk14xfHE1REcjMaiOmveveUe2uKzzFLi4pSVQjXUq1cQiaSJw3RVhY6R7IVDP423ydhAz13tD9kBojjE/s320/3-7+%25E6%25A8%25A9%25E9%2599%2590%25E4%25BB%2598%25E4%25B8%258E.png" width="320" /></a></div>
<br />
これでログアウトするとホームページにログインフォームが表示されます。ログインしなければ何も利用できなくなっているはずです。<br />
<br />
<b>3-7-3、Mavenの自動インストール設定</b><br />
DotCloud上にMavenをインストールするのは手間なのでJenkinsにやってもらいます。<br />
ですがJenkinsがインストールしたMavenではMavenリポジトリに書き込めないという<br />
おなじみの問題が発生するので後で対処します。<br />
<ul>
<li>左メニューから「Jenkinsの管理→システム設定」を選択し、システム設定ページを表示</li>
<li>ページ中央にあるMeven追加ボタンを押下</li>
<li>名前とバージョンを指定</li>
</ul>
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">名前: maven_2.2.1<br />
バージョン: 2.2.1<br />
</div>
<ul>
<li>自動インストールはONのままとしてください。</li>
<li>保存ボタンを押下</li>
</ul>
また少し下に「利用状況とクラッシュレポートをJenkinsプロジェクトに匿名で報告」という項目がありますが好みで変更してください。<br />
<br />
<b>3-7-4、Jenkins Mercurial pluginをインストール</b><br />
次はBitbucketからソースコードを取得するプラグインをインストールします。<br />
<ul>
<li>左メニューから「Jenkinsの管理→プラグインの管理」を選択し、プラグインページを表示</li>
<li>利用可能タブから「Mercurial Plugin」を探し、チェックを入れる</li>
<li>ページ下部にあるインストールボタンを押下してインストール</li>
</ul>
この時「インストール後ジョブがなければ再起動する」にチェックを入れると<br />
DotCloudコマンドで再起動しなくて済むので簡単です。<br />
<div>
<br />
<br />
<br />
お疲れ様です。以上でJenkinsの構築が終わりました。<br />
次回は動作確認用プロジェクトを作成して動作確認します。</div>
aquilegiahttp://www.blogger.com/profile/01119873761159018627noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-21801821016306371332011-09-23T15:13:00.000+09:002011-09-23T15:13:28.976+09:00DotCloudにJenkins+Nexus環境を構築してBitbucketと連携してみたよ(1/3)こんにちは!極稀に記事を書くaquilegiaです。<br />
<br />
まずは手順を作るために下記ページを参考にさせて頂きました。多謝!<br />
* <a href="http://surgo.jp/2011/06/dotcloud-jenkins.html">dotcloud いいね!jenkins 編</a><br />
* <a href="http://d.hatena.ne.jp/w650/20110415/1302838728">Jenkins Mercurial Pluginでbitbucketにアクセスする</a><br />
<br />
今回は3arrowsやソーシャルから少し離れて、開発者の間で話題?のDotCloudとBitbucketを連携したJavaのコーディング環境を構築する手順をご紹介します。<br />
<br />
サービスの詳細は割愛しますが、DotCloudは多くのプログラム言語を実行できるPaaSで無料で2アプリケーションまで作成できます。Bitbucketはプロジェクトホスティングサービスでソースコード管理にMercurialを利用しており、5人までのチームは無料でIssueとWikiがついたプライベートなプロジェクトを無制限に作ることができます。<br />
<br />
今回はこの二つを利用して個人向けプライベートビルド環境を作りましょ~というお話になります。手順のアウトラインは次の通りで、少し長いため3回に分けて紹介します。作業はLinux上で行ってだいたい1時間程度かかると思います。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; white-space: pre;">・DotCloudを利用するための準備
・DotCloudアカウントを取得
・DotCloudクライアントをインストール
・DotCloudにNexusを構築
・NexusのWARファイルをDL
・WARファイルから編集ファイルを抽出
・ベースディレクトリの設定を変更
・編集したファイルをWARファイルに戻す
・DotCloudにnexusアプリケーションを作成
・DotCloudへデプロイ
・DotCloudにベースディレクトリを作成
・Nexusを再起動
・Nexusの初期設定
・ログインユーザを作成
・既存ユーザを無効にする
・DotCloudにJenkinsを構築
・DotCloud用カスタムWARを作成
・GitHubからJenkinsのソースコードをDL
・WebAppMain.javaを編集してJENKINS_HOMEを変更
・ソースをコンパイル
・JenkinsのWARファイルをDL
・WAR内のclassesに作成したWebAppMain.classを追加
・DotCloudにjenkinsアプリケーションを作成
・DotCloudへデプロイ
・DotCloudにJENKINS_HOMEを作成
・Jenkinsを再起動
・Jenkinsの初期設定
・ログインユーザを作成
・権限を設定
・Mavenの自動インストール設定
・Jenkins Mercurial pluginをインストール
・Bitbucketの準備
・Bitbucketのアカウントを作成してログイン
・リポジトリを作成
・動作確認用プロジェクトの作成
・プロジェクトを作成
・リポジトリへコミット→プッシュ
・動作確認
・Nexus認証情報を設定
・動作確認用プロジェクトをビルドするジョブを登録
・ジョブを実行</div>
<br />
<b>1、DotCloudを利用するための準備</b><br />
<a href="http://www.dotcloud.com/">DotCloud公式サイト</a>のホームページにある緑色のSing Up Freeボタンを押下してアカウントを登録してください。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguJz1xSuu6s65wz1ND7dD7CoDAB5HRBsx40VLXyjpHYBIHYr7Psqp-wPmdadtU5MkyseXwjMZfihHcwF3b88MRXMxhNIsIQLievk6VTYZz0nWmciGomkT4YyJmZZx_ugz3H3uXu0PMsTb6/s1600/01_DotCloud.png" imageanchor="1" style=""><img border="0" height="152" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguJz1xSuu6s65wz1ND7dD7CoDAB5HRBsx40VLXyjpHYBIHYr7Psqp-wPmdadtU5MkyseXwjMZfihHcwF3b88MRXMxhNIsIQLievk6VTYZz0nWmciGomkT4YyJmZZx_ugz3H3uXu0PMsTb6/s320/01_DotCloud.png" /></a></div>
<br />
次に<a href="http://docs.dotcloud.com/firststeps/install/">インストールマニュアル</a>に従ってCLIをインストールしてください。DotCloudとやりとりする時にこのCLIを使います。<br />
<span style="font-size: x-small;">※CLIはWindows以外をお勧めします。というのも最初Windows版をインストールしてみたところ私のCygwin環境が悪かったのか、コマンド実行時に頻繁にエラーが発生しました。エラーを無視して根気よくコマンドを送れば使えますが、ストレスが溜まるのでLinux版へ替えました。</span><br />
<br />
CLIをインストール後は任意のユーザでdotcloudコマンドを実行してください。初回実行時のみAPIキーの入力が求められます。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud<br />
Warning: /home/aquilegia/.dotcloud/dotcloud.conf does not exist.<br />
Enter your api key (You can find it at http://www.dotcloud.com/accounts/settings): (settingsページに表示されるAPIキーを入力する)<br />
error: usage: dotcloud [-h]<br />
<br />
{info,status,stats,run,logs,versions,url,setup,list,rollback,alias,ssh,push,destroy,create,restart,history}<br />
...<br />
</div>
<br />
<div>
コンソールに表示されたURL(<span class="Apple-style-span" style="font-family: monospace; white-space: pre;">http://www.dotcloud.com/accounts/settings</span>)へアクセスすればAPIキーが表示されるはずです。引数なしで実行すると上記のようにエラーになりますが問題ありません。</div>
<br />
<b>2、DotCloudにNexusを構築</b><br />
NexusはそのままではDotCloud上で動きません。これはDotCloud上で動いているサーブレットコンテナはJettyでJettyユーザによって実行されていますが、Nexusがファイルを書き出すruntimeとnexus-workディレクトリに書込権限がなくエラーになるためです。<br />
<br />
そのため私達が自由に使えるdotcloudユーザのホームディレクトリにnexusディレクトリを作成してそこを使わせるようにします。<br />
<br />
<div>
<b>2-1、NexusのWARファイルをDL</b></div>
<div>
作業用のディレクトリを作成した後、<a href="http://nexus.sonatype.org/download-nexus.html">ここ</a>からNexusのWARファイルをDLしてください。</div>
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">$ mkdir -p nexus<br />
$ cd nexus<br />
$ wget http://nexus.sonatype.org/downloads/nexus-webapp-1.9.2.2.war<br />
</div>
<br />
<div>
<b>2-2、WARファイルから編集ファイルを抽出</b></div>
<div>
WARから編集するファイルのみ展開してください。</div>
<div>
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ unzip nexus-webapp-1.9.2.2.war WEB-INF/plexus.properties<br />
</div>
<br /></div>
<div>
<b>2-3、ベースディレクトリの設定を変更</b><br />
展開したディレクトリ内のWEB-INF/plexus.propertiesをエディタで開いてruntimeとnexus-workが/home/dotcloud/nexus配下になるよう編集してください。<br />
(例はオリジナルからnexus-homeを追加し、runtimeとnexus-workがnexus-homeの子ディレクトリになるよう変更しました)<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ cd WEB-INF<br />
$ cp -p plexus.properties plexus.properties.org<br />
$ vi plexus.properties<br />
nexus-home=/home/dotcloud/nexus<br />
runtime=${nexus-home}/runtime<br />
apps=${runtime}/apps<br />
nexus-work=${nexus-home}/sonatype-work/nexus<br />
nexus-app=${runtime}/apps/nexus<br />
webapp=${runtime}/apps/nexus/webapp<br />
security-xml-file=${nexus-work}/conf/security.xml<br />
application-conf=${nexus-work}/conf<br />
runtime-tmp=${runtime}/tmp<br />
</div>
<br />
<b>2-4、編集したファイルをWARファイルに戻す</b><br />
<div>
編集したファイルをWARファイルに戻します。</div>
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ cd ../<br />
$ cp -p nexus-webapp-1.9.2.2.war nexus-webapp-1.9.2.2.war.org<br />
$ zip nexus-webapp-1.9.2.2.war WEB-INF/plexus.propertie<br />
</div>
<br />
<b>2-5、DotCloudにnexusアプリケーションを作成</b><br />
ここからはDotCloudへのデプロイ作業に移ります。コンソールから下記コマンドを実行し、DotCloudにnexusアプリケーションを作成してください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud create nexus<br />
Created application "nexus"<br />
</div>
<br />
<b>2-6、DotCloudへデプロイ</b><br />
デプロイにはWARファイルとビルドファイルが必要になります。ビルドファイルは以下の内容でdotcloud.ymlという名前で作成してください。wwwはサービス名で任意の文字でかまいません。(ここでは公式ドキュメントと同じwwwとします)<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">$ cat > dotcloud.yml <<EOF<br />
www:<br />
type: java<br />
EOF</div>
<br />
次に適当な名前のディレクトリ(ここではdeployとします)を作成してWARファイルとビルドファイルと移してください。DotCloudのデプロイは内部でrsyncを使うのですが、指定したディレクトリの全ファイルを同期してしまうので無関係なファイルが送られないようにします。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ mkdir deploy<br />
$ mv nexus-webapp-1.9.2.2.war deploy/ROOT.war<br />
$ mv dotcloud.yml deploy/<br />
</div>
<br />
コンテキストルートは/にしたいのでWARファイルは名前をROOT.warに変更しておきます。<br />
最後にコンソールから下記コマンドを実行し、DotCloudにnexusをデプロイする。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud push nexus deploy/<br />
upload deploy/ ssh://dotcloud@uploader.dotcloud.com:443/nexus<br />
rsync<br />
Pseudo-terminal will not be allocated because stdin is not a terminal.<br />
building file list ... done<br />
./<br />
ROOT.war<br />
dotcloud.yml<br />
<br />
sent 25.57M bytes received 53 bytes 616.03K bytes/sec<br />
total size is 25.67M speedup is 1.00<br />
Deployment for "nexus" triggered. Will be available in a few seconds.<br />
2011-09-19 10:35:32 [api] Deploy nexus scheduled for revision=latest<br />
2011-09-19 10:35:32 [api] Waiting for the build. (It may take a few minutes)<br />
2011-09-19 10:35:32 [www.0] Deploying...<br />
2011-09-19 10:35:57 [www.0] Service booted<br />
2011-09-19 10:35:57 [api] All the services are ready. Beginning the build.<br />
2011-09-19 10:35:57 [www.0] The build started<br />
2011-09-19 10:35:58 [www.0] Fetched code revision rsync-xxxxxxxxx.xx<br />
2011-09-19 10:36:01 [www.0] * Stopping Jetty servlet engine (was reachable on http://nexus-default-www-0:8080/). jetty<br />
2011-09-19 10:36:03 [www.0] * Jetty servlet engine stopped. jetty<br />
2011-09-19 10:36:03 [www.0] ...done.<br />
2011-09-19 10:36:03 [www.0] * Starting Jetty servlet engine. jetty<br />
2011-09-19 10:36:04 [www.0] * Jetty servlet engine started, reachable on http://nexus-default-www-0:8080/. jetty<br />
2011-09-19 10:36:09 [www.0] ...done.<br />
2011-09-19 10:36:09 [www.0] The build finished successfully<br />
2011-09-19 10:36:09 [api] Deploy finished<br />
<br />
Deployment finished. Your application is available at the following URLs<br />
www: http://nexus-aquilegia.dotcloud.com/<br />
</div>
<br />
ここでデプロイ結果を確認したくなりますがもう少し我慢してください。まだこの時点だと/home/dotcloud/nexusディレクトリが無いので正常に動いていません。<br />
<br />
<b>2-7、DotCloudにベースディレクトリを作成</b><br />
コンソールから下記コマンドを実行し、DotCloudにNexusが使うディレクトリを作成してください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">$ dotcloud run nexus.www -- mkdir nexus \&\& ls -l<br />
</div>
<br />
次にnexusディレクトリにグループ書込権限を追加します。こうすることでjettyユーザで実行されているNexusからディレクトリへファイルを書き込めるようになります。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud run nexus.www -- chmod g+w nexus \&\& ls -l<br />
</div>
<br />
<div>
<b>2-8、Nexusを再起動</b></div>
<div>
今度は正常に起動できるはずなのでログを監視しながら再起動します。別のコンソールで下記コマンドを実行してログをtailしてください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">$ dotcloud logs nexus.www<br />
</div>
<br />
そしてnexusアプリケーションを再起動してください。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace;">$ dotcloud restart nexus.www<br />
</div>
<br />
正常に起動すればログにスタックトレース等は出力されずに最終行が<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">15632 [main] INFO org.mortbay.log - Started SelectChannelConnector@0.0.0.0:8080<br />
</div>
<div>
となるはずです。<br />
<br />
<b>2-8、Nexusの初期設定</b><br />
初期状態は外部に公開されている状態なので自分だけが利用できるように設定を変更します。<br />
<br />
<b>2-8-1、ログインユーザを作成</b><br />
ダッシュボードでアプリ名の右側に表示されたサービス名をクリックするとデプロイしたNexusが表示されます。URLは"デプロイ名-アカウント名"を第4レベルドメインにしたものなので覚えられると思います。<br />
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">http://nexus-aquilegia.dotcloud.com/<br />
</div>
<br />
右上のLog Inリンクを押下し、下記ID/パスで管理者としてログインしてください。ログイン後は左のSecurityからChange Passwordを選択してパスワードを変更してください。<br />
<div>
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">admin<br />
admin123<br />
</div>
<br />
ユーザの作成はSecurity→Usersから行います。Usersを選択すると右側に一覧が表示されるので上部に表示された緑色のAddボタンを押下し、Nexusユーザを作成してください。<br />
<div>
<div>
(ここではnexusというIDで作成したとします)</div>
</div>
<br />
<div class="Apple-style-span" style="background-color: #eeeeee; font-family: monospace; ">ID: nexus<br />
EMail: (メールアドレスを入力)<br />
Status: Active<br />
New Password: (パスワードを入力)<br />
Confirm Password: (パスワードを入力)<br />
<br />
Role Management: Nexus Developer Role<br />
</div>
<span class="Apple-style-span" style="font-size: x-small;">※メールアドレスは必須項目のため設定していますがAdministration → ServerでSMTPサーバや通知設定をしないと実際には送信されません。必要な方は試してみてください。</span><br />
<div>
</div>
<br />
<b>2-8-2、既存ユーザを無効にする</b><br />
Usersの一覧にはもとからadmin、deployment、anonymousがありますがdeploymentは不要なので削除してください。またanonymousは非ログイン状態のユーザになり、削除不可ユーザです。今回は個人で利用するのでリポジトリを匿名ユーザに参照されないようStatusをDisabledへ変更してください。変更後のTOPページは以下のようにRespositoriesも参照できなくなります。
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTDXbqJDWmgMsaWdLo7pW7jc00So4EzsqxzVvTGpiyPTwIy89Y48_41igVUB8sQeK_7jQHJM_EiFRQIbhnow7CaMoSuHoPqriW6pHq2sqgfxRBdfsanGBsu66tSDsQh_SBQZy1D5kyOyo2/s1600/2-8-2+Nexus+%25E5%258C%25BF%25E5%2590%258D%25E3%2583%25A6%25E3%2583%25BC%25E3%2582%25B6%25E7%2584%25A1%25E5%258A%25B9.png" imageanchor="1" style="clear:left; margin-right:1em; margin-bottom:1em"><img border="0" height="168" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTDXbqJDWmgMsaWdLo7pW7jc00So4EzsqxzVvTGpiyPTwIy89Y48_41igVUB8sQeK_7jQHJM_EiFRQIbhnow7CaMoSuHoPqriW6pHq2sqgfxRBdfsanGBsu66tSDsQh_SBQZy1D5kyOyo2/s320/2-8-2+Nexus+%25E5%258C%25BF%25E5%2590%258D%25E3%2583%25A6%25E3%2583%25BC%25E3%2582%25B6%25E7%2584%25A1%25E5%258A%25B9.png" /></a></div>
</div>
<br />
<br />
お疲れ様です。これでNexus環境ができました。<br />
今回はここまでです。続きは次回ご紹介します。</div>
</div>
</div>
</div>aquilegiahttp://www.blogger.com/profile/01119873761159018627noreply@blogger.com1tag:blogger.com,1999:blog-1509463847369212828.post-3347405979531703752011-04-04T14:45:00.001+09:002011-04-04T14:48:18.349+09:003arrows の OpenSocial RPC API (2-legged OAuth) で、節電呼びかけでんこちゃん社内 bot を作ってみたよこんにちは。Nobuhiro Nakajima @ YOKOHAMA です。<br />
<br />
3arrows - Google Apps アカウントでも使える社内 Twitter<br />
<a href="http://www.3arrows.jp/">http://www.3arrows.jp/</a><br />
<br />
3arrows は、2-legged OAuth による OpenSocial RPC API を提供しています。2-legged OAuth は mixiアプリなどソーシャルアプリの世界では、標準化されたリクエスト署名方式で、アプリと外部システムの連携に適しています。詳しくは、次のページを参考にしてください。<br />
<br />
2-legged OAuth による API アクセス >> mixi Developer Center<br />
<a href="http://developer.mixi.co.jp/appli/spec/pc/restful-api-for-pc/2-legged-oauth-api-access">http://developer.mixi.co.jp/appli/spec/pc/restful-api-for-pc/2-legged-oauth-api-access</a><br />
<br />
このエントリでは 2-legged OAuth による OpenSocial RPC API を使って、電力使用状況と節電を呼びかける <a href="http://www.tepco.co.jp/denkochan/">でんこちゃん</a> 社内 bot の作り方を紹介します。<br />
<br />
<span style="font-size: large;"><b>でんこちゃん社内 bot</b></span><br />
<br />
就業時間中の1時間に1度、でんこちゃん bot がタイムラインに節電を呼びかける投稿をします。このとき、現在の電力使用状況とその日の推移グラフも合わせて投稿します。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibMOhGveG5qnmVWXus5Y_TkW2olnn4B6SMzuHE0sujIFRrxSZURDpXbqrCz-8JgNIumfCve15CQcW9DbG-Ws_X0j7A7kxmkKKpg5-aHA1d_CA66YhlbO2YH_CofNO8dBeJx3poaB_EMO40/s1600/20110325-1.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibMOhGveG5qnmVWXus5Y_TkW2olnn4B6SMzuHE0sujIFRrxSZURDpXbqrCz-8JgNIumfCve15CQcW9DbG-Ws_X0j7A7kxmkKKpg5-aHA1d_CA66YhlbO2YH_CofNO8dBeJx3poaB_EMO40/s480/20110325-1.png" /></a><br />
<br />
①でんこちゃん bot<br />
②東京電力アプリのロゴ<br />
③東京電力アプリのリンク先 <a href="http://www.tepco.co.jp/forecast/index-j.html">http://www.tepco.co.jp/forecast/index-j.html</a><br />
④電力使用状況<br />
⑤電力使用状況の推移グラフ (クリックすると、次のとおり拡大する)<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIRl6mjZ1Yz9YRLt3BsE5xaN30tspLB_HkaNMga8q1XBAE9KKY0Ul3Wqn5wuZMrVWyJl3IvPcQbAHL-6OI8pgYKPYpjNj-eJDeMJJwv75fgJcMbgGQskrjpym-qjEF0uF4HbYASk9Hmnrr/s1600/20110325-4.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIRl6mjZ1Yz9YRLt3BsE5xaN30tspLB_HkaNMga8q1XBAE9KKY0Ul3Wqn5wuZMrVWyJl3IvPcQbAHL-6OI8pgYKPYpjNj-eJDeMJJwv75fgJcMbgGQskrjpym-qjEF0uF4HbYASk9Hmnrr/s480/20110325-4.png" /></a><br />
<span style="font-size: large;"><b>でんこちゃんユーザの作成</b></span><br />
<br />
コントロールパネルで、でんこちゃんを表すユーザを作成します。ここでは、メールアドレスを denkochan@lrlab.to とします。<br />
<br />
<span style="font-size: large;"><b>東京電力アプリの作成</b></span><br />
<br />
コントロールパネルで、東京電力を表すアプリを作成します。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvos0Ri9m4FqReTaKomIbv5u-Rnvzs2icYIekGMIfNON33EfsVTRagb7bRo46RbIDcb4ns91goLLV3S45-TSsvZ_5JjHOSTedFy5Q7trhZGpukr-aZ60yp7jWrnv-04k8flfZhHqghXilw/s1600/20110325-3.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvos0Ri9m4FqReTaKomIbv5u-Rnvzs2icYIekGMIfNON33EfsVTRagb7bRo46RbIDcb4ns91goLLV3S45-TSsvZ_5JjHOSTedFy5Q7trhZGpukr-aZ60yp7jWrnv-04k8flfZhHqghXilw/s480/20110325-3.png" /></a><br />
<br />
アプリのガジェットXMLは次のとおりです。アプリのタイトルは東京電力とし、アイコンは <a href="http://twitter.com/OfficialTEPCO/">Twitter 公式アカウント</a> から拝借します。アプリは、コンテンツを持たせず、東京電力サイトにリンクさせます。<br />
<pre style="font-size: x-small;"><?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="東京電力" description="東京電力から節電のお願いです">
<Link rel="icon" href="http://a0.twimg.com/profile_images/1276730827/tepco_normal.JPG" />
</ModulePrefs>
<Content type="url" href="http://www.tepco.co.jp/forecast/index-j.html"></Content>
</Module>
</pre><span style="font-size: large;"><b>コンシューマキーとシークレットの入手</b></span><br />
<br />
2-legged OAuth のコンシューマキーとシークレットは、コントロールパネルから入手できます。OpenSocial RPC API のエンドポイント (URL) も同様です。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJT4iTby32AixlfKNx-6bAQD-SkIahHkXLPdxXLSBGJTFqFC5nsUQDqH0b-b80M9aRFj8RSzrxpOLOQvcKhk3shYJnJwEOMrjXhOLCm3vKAQFemeTZh3obYdRRfeBth6nZwx5pWm8Kd-r9/s1600/20110325-2.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJT4iTby32AixlfKNx-6bAQD-SkIahHkXLPdxXLSBGJTFqFC5nsUQDqH0b-b80M9aRFj8RSzrxpOLOQvcKhk3shYJnJwEOMrjXhOLCm3vKAQFemeTZh3obYdRRfeBth6nZwx5pWm8Kd-r9/s480/20110325-2.png" /></a><br />
<span style="font-size: large;"><b>バッチの作成</b></span><br />
<br />
<a href="http://www.tepco.co.jp/forecast/index-j.html">東京電力</a> から <a href="http://search.cpan.org/%7Egaas/libwww-perl-6.01/">LWP::Simple</a> を使って、<a href="http://www.tepco.co.jp/forecast/html/images/juyo-j.csv">電力の使用状況データ (CSV)</a> をダウンロードします。そして、最新の電力使用状況を集計し、<a href="http://code.google.com/apis/chart/">Google Chart API</a> を使って、当日の推移グラフを作成します。<br />
<pre style="font-size: x-small;">use strict;
use warnings;
use LWP::Simple;
use Encode 'decode_utf8';
my $url = 'http://www.tepco.co.jp/forecast/html/images/juyo-j.csv';
my @rows = split(/\r\n/, get($url));
shift @rows;
shift @rows;
# ピーク時供給力(万kW)
my ($cap) = split(/,/, shift @rows);
shift @rows;
shift @rows;
# 24時間分の当日実績(万kW)
my @hours = map {
my @cols = split(/,/, $_); $cols[2];
} @rows;
my $latest;
# 最新の当日実績(万kW)
for (reverse(@hours)) {
last if $latest = $_;
}
# 電力使用率
my $per = sprintf('%.1f', $latest / $cap * 100);
# 当日実績(万kW)の推移グラフ
my $chart = 'http://chart.googleapis.com/chart' .
'?chs=400x240' .
'&cht=bvo' .
"&chxr=0,0,$cap|1,0,23" .
'&chxt=y,x' .
'&chbh=10' .
'&chd=t:' . join(',', map { int($_ / $cap * 100) } @hours);
</pre>続けて、<a href="http://opensocial-resources.googlecode.com/svn/spec/1.0/Social-API-Server.xml#Activities-Service-Create">Activities API</a> を使って、電力使用状況を 3arrows に投稿します。アクティビティの作成を JSON RPC で組み立て、<a href="http://search.cpan.org/%7Elyokato/OAuth-Lite-1.30/">OAuth::Lite::Consumer</a> を使って、リクエストを署名して発行します。<br />
<br />
API の Endpoint、Consumer Key、Consumer Secret には、前述のコントロールパネルから入手した値を指定します。また、xoauth_requestor_id には、でんこちゃん(投稿者) を表す denkochan@lrlab.to を指定しています。<br />
<br />
アクティビティの作成に成功すると、アクティビティID がレスポンスされます。万が一失敗したときは、JSON RPC のエラーか HTTP ステータスのエラーがレスポンスされます。<br />
<pre style="font-size: x-small;">use Data::Dumper;
use JSON::XS;
use OAuth::Lite::Consumer;
# アクティビティのタイトル
my $title = <<EOB;
じゃん! 電気を大切にね。
> 電力使用状況 $cap 万kW 中 $latest 万kW ($per%)
> $chart
EOB
# アクティビティの作成を表す JSON RPC
my $content = JSON::XS::encode_json({
jsonrpc => '2.0',
method => 'activities.create',
params => {
userId => '@viewer',
group => '@self',
activity => { title => decode_utf8($title) } # UTF-8 フラグ
},
id => 1
});
# API の Endpoint, Consumer Key, Consumer Secret, Viewer
my %options = (
endpoint => 'http://nakajiman.3arrows.jp/api/rpc/a',
consumer_key => '{consumer key}',
consumer_secret => '{consumer secret}',
requester_id => 'denkochan@lrlab.to',
);
my $consumer = OAuth::Lite::Consumer->new(
consumer_key => $options{consumer_key},
consumer_secret => $options{consumer_secret}
);
# リクエストの署名と発行
my $response = $consumer->request(
method => 'POST',
url => $options{endpoint},
headers => [ 'Content-Type' => 'application/json' ],
content => $content,
params => {
xoauth_requestor_id => $options{requester_id},
});
# リクエストの成否
if ($response->is_success) {
print Dumper(JSON::XS::decode_json($response->decoded_content));
} else {
warn $response->status_line;
}
1;
</pre><span style="font-size: large;"><b>バッチの実行</b></span><br />
<br />
就業時間の 9:00 から 18:00 の間で、1時間に一度、バッチを実行するように cron を登録します。<br />
<br />
<span style="font-size: large;"><b>ダウンロード</b></span><br />
<br />
でんこちゃん社内 bot のソースコードは、次のページからダウンロードできます。<br />
<br />
ダウンロード - 3arrows.jp<br />
<a href="https://sites.google.com/a/socialprise.jp/3arrows-jp/downloads">https://sites.google.com/a/socialprise.jp/3arrows-jp/downloads</a>Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-66540889628350171992011-03-30T21:28:00.000+09:002011-03-30T21:28:14.205+09:003arrows アップデート! Google Apps アカウントでログインできるようになりました。3月28日(月)、企業やチーム向けのプライベートマイクロブログ、<a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。アップデートの主な内容は次の通りです。<br />
<br />
<span style="font-size: large; text-decoration: underline;"><b>Google Apps アカウントでログインできるようになりました!</b></span><br />
<br />
コントロールパネルの 「ユーザーの管理」 画面で、「Google Apps アカウントでログインする」 のチェックボックスにチェックを入れると、以後、3arrows に Google Apps アカウントでログインできるようになります。<br />
<br />
なお、Google Apps for Business をご利用の方は、<a href="http://code.google.com/intl/ja/googleapps/domain/sso/openid_reference_implementation.html">Google Apps の OpenID</a> の設定を有効にする必要があります。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR_9WJL3tyKU7W36YV4at5UtjISlxeq-Vs3waiCeZJ0De3v5y7oVh6rg8O8Z4SXsKnCQwFBD8cdzPVM4v1B5IyAL8ED8meG_whuPI6diLjt5W1W2HE0enyhy9fKRmvEC7JWA-UsCgPvvM/s1600/googleapps1.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 147px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR_9WJL3tyKU7W36YV4at5UtjISlxeq-Vs3waiCeZJ0De3v5y7oVh6rg8O8Z4SXsKnCQwFBD8cdzPVM4v1B5IyAL8ED8meG_whuPI6diLjt5W1W2HE0enyhy9fKRmvEC7JWA-UsCgPvvM/s400/googleapps1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5588923486340241906" /></a><br />
「ログイン」 画面では Google Apps アカウントのドメインを入力してください。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJCmhgQMgBxc9maxs7OMqM7KTIusw0cBpCbk5zVGu-iE9xAWQTEU2y6BUuyqIRa-xc7PSKf5oPm22l1BHwHRn0q23NPYEVMn8ihlk3vmQNQQq8XXxhy25UaF_TV0VM6SgU89gjrosTrdI/s1600/googleapps2.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 267px; height: 245px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJCmhgQMgBxc9maxs7OMqM7KTIusw0cBpCbk5zVGu-iE9xAWQTEU2y6BUuyqIRa-xc7PSKf5oPm22l1BHwHRn0q23NPYEVMn8ihlk3vmQNQQq8XXxhy25UaF_TV0VM6SgU89gjrosTrdI/s400/googleapps2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5588923489321487106" /></a><br />
今回の Google Apps アカウントへの対応で、3arrows は個人間のコラボレーション、企業内のコラボレーション、企業間のコラボレーションを支援できるようになりました。<br />
<br />
3arrows では、異なるドメインのメールアドレスのユーザー、異なるドメインの Google Apps アカウントのユーザーを、区別せずメンバーとして招待することができます。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcFr1kMqQgWX04tLFUUffUzutW7i9nbVzJ_cCMd1FMoBWEG_E5elKD1GGzRVfsenbEvco_lxKG9ZbVw3LMhYf9Bzm66d647HF_KyV9rVmAwSCW4eFJEL0ZzcxoMCeJBKOFZ9W0azgulpM/s1600/collaboration.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 338px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcFr1kMqQgWX04tLFUUffUzutW7i9nbVzJ_cCMd1FMoBWEG_E5elKD1GGzRVfsenbEvco_lxKG9ZbVw3LMhYf9Bzm66d647HF_KyV9rVmAwSCW4eFJEL0ZzcxoMCeJBKOFZ9W0azgulpM/s400/collaboration.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5588923497537408194" /></a><br />
<span style="font-size: large; color: #cc0000; text-decoration: underline;"><b>全てのアプリケーションの更新をお願いします!</b></span><br />
<br />
管理者の方は、コントロールパネルのアプリケーションタブから、全てのアプリケーションを更新してください。「更新する」 リンクをクリックすると、アプリケーションを更新できます。「最新」 と表示されれば更新の完了です。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s1600/applications.png"><img style="display:block; margin:0px auto; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 271px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s400/applications.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5574156228142663426" /></a><br />
<a href="http://www.3arrows.jp/">3arrows</a> では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-80236827731172681392011-03-21T16:13:00.002+09:002011-03-21T17:28:04.289+09:00Google Apps Script に続けて Windows Script Host (WSH) で 2-Legged OAuth をやってみましたこんにちは。なかじまん @ YOKOHAMA です。<br />
東北関東大震災で被災された皆さまには心よりお見舞い申し上げます。<br />
<br />
<iframe
src="http://japan.person-finder.appspot.com/?small=yes&lang=ja"
width=400 height=300 frameborder=0
style="border: dashed 2px #77c"></iframe><br />
<br />
<a href="http://nakajiman.blogspot.com/2011/03/google-apps-script-urlfetch-services.html">Google Apps Script の UrlFetch Services は 2Legged OAuth に対応してないっぽいので自前でやってみた</a> に続いて、Windows Script Host (WSH) を使って Windows のコマンドラインから 2-Legged OAuth をやってみました。<br />
<br />
WSH の場合、いろいろな実装方法を選択できそうなのですが、前述の Google Apps Script の JavaScript をそのまま動かす方法を選択しています。<br />
<br />
なので、ソースコードはほとんど同じで、UrlFetch Services ではなく XMLHttpRequest を同期で使っているくらいの違いです。<br />
<pre style="font-size:x-small;"><job>
<script language="JavaScript" src="sha1.js"></script>
<script language="JavaScript" src="oauth.js"></script>
<script language="JavaScript" src="json2.js"></script>
<script language="JavaScript">
var endpoint = 'http://nakajiman.3arrows.jp/api/rpc/a';
var consumerKey = '{Consumer Key}';
var consumerSecret = '{consumer Secret}';
var requestor_id = 'nakajiman(at)lrlab.to';
var message = { method: 'POST', action: endpoint, parameters: {} };
OAuth.setParameter(message, 'oauth_consumer_key', consumerKey);
OAuth.setParameter(message, 'oauth_version', '1.0');
OAuth.setParameter(message, 'oauth_timestamp', OAuth.timestamp());
OAuth.setParameter(message, 'oauth_nonce', OAuth.nonce(6));
OAuth.setParameter(message, 'xoauth_requestor_id', requestor_id);
OAuth.SignatureMethod.sign(message, { consumerSecret: consumerSecret });
var url = OAuth.addToURL(endpoint, message.parameters);
var data = JSON.stringify({
jsonrpc: '2.0',
method: 'activities.create',
params: { userId: '@viewer', group: '@self', activity: { title: 'Say hello!' } },
id: 1
});
var xhr = WScript.CreateObject('MSXML2.XMLHTTP');
xhr.open(message.method, url, false);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(data);
if (xhr.status != 200)
WScript.Echo(xhr.status + ' ' + xhr.statusText);
else {
var res = JSON.parse(xhr.responseText);
WScript.Echo(res.result);
}
</script>
</job>
</pre>ただいま、 <a href="http://www.3arrows.jp/">企業やチーム向けのプライベートマイクロブログ 3arrows</a> では、お客様のシステムやサービスとの連携を目的とした「シングルサインオン」と「2-Legged OAuth ベースの API」に取り組んでいます。<br />
<br />
2-Legged OAuth ベースの API 公開により、システムやサービスの統合に加えて、Google Apps Script や Windows Script Host から 3arrows を操作して、ユーリティティの用途としても活用できるようになります。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-84283312957726456632011-03-07T21:18:00.000+09:002011-03-07T21:18:51.567+09:003arrows アップデート! 投稿内容を引用して返信できるようになりました! Gmail や Trac のような明瞭な引用です!3月2日(水)、企業やチーム向けのプライベートマイクロブログ、<a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。アップデートの主な内容は次の通りです。<br />
<br />
<span style="font-size: large; text-decoration: underline;"><b>ステータスの引用機能の追加</b></span><br />
<br />
マイクロブログの各ステータスを引用できるようになりました。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg9XYnuYd2A0LIrP42QPbZwcrfb1goSvt6nYOD7EbO8FoztMZajohmS9Hz-4ht0PFz7-DcfTEvYmBJo1Mnu3jEvv304AhQIHRuRIB0h0wbbDxma3Zyc51_ElCbVNTZY1UoaRY6RRMVI9o/s1600/quote1.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 237px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg9XYnuYd2A0LIrP42QPbZwcrfb1goSvt6nYOD7EbO8FoztMZajohmS9Hz-4ht0PFz7-DcfTEvYmBJo1Mnu3jEvv304AhQIHRuRIB0h0wbbDxma3Zyc51_ElCbVNTZY1UoaRY6RRMVI9o/s400/quote1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5580809317719687682" /></a><br />
Twitter の以前の RT 機能と類似の機能となりますが、引用したステータスがそれと分かるようにスタイリングされ、また、3arrows は Twitter と比較して文字数の制限が緩いため、ステータスを途中で切ることなく引用することができます。<br />
<br />
<span style="font-size: large; text-decoration: underline;"><b>ステータス上でのアプリケーションのアイコンと名前の表示</b></span><br />
<br />
日報等、各アプリケーションからマイクロブログに通知されたステータスには、それと分かるようにアプリケーションのアイコンと名前を表示するようになりました。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguHSkFzm-6Co08KOjCmdu2ptXMnr8vMiluPkKfbeeigJTB5qYa_ShGLmNFNKSudrS1QufeBwL1AvziIxOvdSCBG1d8UiLF37trUP0WSyzut-kSS6pR7MS66sdA91YO5pO4BDo7LxB4CA4/s1600/quote2.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 237px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguHSkFzm-6Co08KOjCmdu2ptXMnr8vMiluPkKfbeeigJTB5qYa_ShGLmNFNKSudrS1QufeBwL1AvziIxOvdSCBG1d8UiLF37trUP0WSyzut-kSS6pR7MS66sdA91YO5pO4BDo7LxB4CA4/s400/quote2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5580809316473995570" /></a><br />
これにより、どのアプリケーションからの通知なのかが一目で分かるようになります。<br />
<br />
<span style="font-size: large; color: #cc0000; text-decoration: underline;"><b>全てのアプリケーションの更新をお願いします!</b></span><br />
<br />
管理者の方は、コントロールパネルのアプリケーションタブから、全てのアプリケーションを更新してください。「更新する」 リンクをクリックすると、アプリケーションを更新できます。「最新」 と表示されれば更新の完了です。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s1600/applications.png"><img style="display:block; margin:0px auto; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 271px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s400/applications.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5574156228142663426" /></a><br />
<a href="http://www.3arrows.jp/">3arrows</a> では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-41299798610782501872011-03-07T14:12:00.000+09:002011-03-07T14:12:09.813+09:00Facebook のプロフィール写真をウェブカメラを経由でアップロードしてみた。ウェブカメラから multipart/form-data で静止画をアップロードできるライブラリを探しています。こんにちは。Nobuhiro Nakajima です。<br />
<br />
Facebook のプロフィール写真は、ウェブカメラを経由してウェブブラウザからアップロードできるらしいので試してみました。<br />
<br />
手持ちのウェブカメラは <a href="http://www.amazon.co.jp/exec/obidos/ASIN/B002QB2LCG/learninresour-22/ref=nosim/" target="_top">マイクロソフト ウェブカメラ LifeCam VX-800 JSD-00006</a> です。↓これ。今なら 1,000 円くらいで入手できます。<br />
<br />
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B002QB2LCG/learninresour-22/ref=nosim/" target="_top"><img src="http://ecx.images-amazon.com/images/I/31BfquCP1pL._SL160_.jpg" alt="マイクロソフト ウェブカメラ LifeCam VX-800 JSD-00006" border="0" /></a><br />
<br />
プロフィール写真の設定ページから写真を撮るボタンをクリックすると、ポップアップが開きます。許可をクリックすると、ウェブカメラの映像が移り出すので、カメラボタンをクリックして、写真を撮ります。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvmS5goaaq9d8XB_lRsdKlAYN1v-apisBjWFTMaJTFZlG4oiat8oqetK9ImfFxcGIwctD5oSYfRL2YeVdpHa9VQnFwNpPkhUW1GWewQH-eiRYn3FJg6sExqKIChqImdLeSUWwqPEvhLUmi/s1600/facebook-webcam-1.jpg" imageanchor="1" style=""><img border="0" height="232" width="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvmS5goaaq9d8XB_lRsdKlAYN1v-apisBjWFTMaJTFZlG4oiat8oqetK9ImfFxcGIwctD5oSYfRL2YeVdpHa9VQnFwNpPkhUW1GWewQH-eiRYn3FJg6sExqKIChqImdLeSUWwqPEvhLUmi/s400/facebook-webcam-1.jpg" /></a><br />
<br />
すると、次のとおり、ウェブカメラで撮影した静止画がプロフィール写真として掲載されます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRyDdGBXExhIQL0b7VgxC8u-sUcGPpatpiyDFPFdZ-tkZFeKr6a35soIstJfw6mpduW2f6W06F7U-L-VijdLWQPZlEQJgQJSvJ8xbSp7Va55qejQxdZSn4RPfukCDvSDvb1aZ-TTdaQ3k1/s1600/facebook-webcam-2.png" imageanchor="1" style=""><img border="0" height="278" width="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRyDdGBXExhIQL0b7VgxC8u-sUcGPpatpiyDFPFdZ-tkZFeKr6a35soIstJfw6mpduW2f6W06F7U-L-VijdLWQPZlEQJgQJSvJ8xbSp7Va55qejQxdZSn4RPfukCDvSDvb1aZ-TTdaQ3k1/s400/facebook-webcam-2.png" /></a><br />
<br />
ウェブカメラからの写真の撮影は Flash で実現されています。Flash 内で、ウェブカメラのストリームを扱い撮影のタイミングで静止画にして、サーバにアップロードするという仕組みのようです。<br />
<br />
同じことをやってみたくて、ライブラリなどを探していると、いくつか発見できました。例えば、これとか。<br />
<br />
<a href="http://www.xarg.org/project/jquery-webcam-plugin/">jQuery webcam plugin - Website and Application Intelligence</a><blockquote>This plugin provides three different modes to access a webcam through a small API directly with JavaScript - or more precisely jQuery.</blockquote>ただ、今まで見つけたライブラリは、静止画のデータを HTTP POST の raw データとしてアップロードするものでした。これだと AppEngine の Blob Storage に直接アップロードできないのです。<br />
<br />
ということで multipart/form-data でウェブカメラから静止画をアップロードできるライブラリを探しています。もしも、ご存じでしたらぜひ教えてください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-19212498754336168612011-03-03T13:05:00.002+09:002011-03-03T13:05:40.073+09:003arrows アップデート! 無料プラン、独自ドメイン/専用環境プラン、OEM プランを追加しました。3 月 1 日 (火)、企業やチーム向けのプライベートマイクロブログ、<a href="http://www.3arrows.jp/">3arrows</a> の<a href="http://www.3arrows.jp/help/pricing.html">料金表</a>を改定しました。改定の主な内容は次の通りです。<br />
<br />
<span style="font-size: large; text-decoration: underline;"><b>無料プランの追加</b></span><br />
<br />
3arrows を無料で利用できるプランを追加しました。今後、ユーザー数が 5 人以内の場合、3arrows は無料で利用できます。<br />
<br />
<span style="font-size: large; text-decoration: underline;"><b>独自ドメイン/専用環境プランの追加</b></span><br />
<br />
3arrows を独自ドメイン、専用環境で利用できるプランを追加しました。セキュリティポリシー上、共用環境での利用が難しかったお客様でも、今後は独自ドメイン、専用環境で 3arrows を利用できます。(有料になります。)<br />
<br />
<span style="font-size: large; text-decoration: underline;"><b>OEM プランの追加</b></span><br />
<br />
3arrows を OEM として、お客様のブランドで提供したり、お客様のサービスに組み込んで提供できるプランを追加しました。3arrows は柔軟で堅牢なアーキテクチャーの元で実装されているため、デザイン、機能ともにフルカスタマイズした上で提供することが可能です。<br />
<br />
3arrows では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-16748425285546736452011-03-02T15:21:00.002+09:002011-03-03T08:22:19.398+09:00Google Apps Script の UrlFetch Services は 2Legged OAuth に対応してないっぽいので自前でやってみたこんにちは。なかじまんです。<br />
<br />
Google Apps Script の <a href="http://code.google.com/googleapps/appsscript/service_urlfetch.html">UrlFetch Services</a> は 2Legged OAuth に対応してないっぽいので自前でやってみた。ちなみに 3Legged OAuth は標準でできるみたいです。<br />
<br />
はじめに <a href="http://code.google.com/p/oauth/">JavaScript の OAuth ライブラリ</a> の内sha1.js と <strike><a href="http://oauth.jp/">oauth.jp</a></strike> oauth.js を貼り付けます。そして、次のようにリクエストを署名して、UrlFetch Services でエンドポイントを叩きます。<br />
<br />
以下の例では、Google Friend Connect の People API を呼び出して、Viewer (xoauth_requestor_id) のプロフィールを取得して、ニックネームを表示しています。<br />
<pre style="font-size:x-small;">function myFunction() {
var action = 'http://www.google.com/friendconnect/api/people/@me/@self';
var accessor = { consumerSecret: '{consumerSecret}' };
var message = { method: 'GET', action: action, parameters: {}, };
OAuth.setParameter(message, 'oauth_consumer_key', '{oauth_consumer_key}');
OAuth.setParameter(message, 'oauth_version', '1.0');
OAuth.setParameter(message, 'oauth_timestamp', OAuth.timestamp());
OAuth.setParameter(message, 'oauth_nonce', OAuth.nonce(6));
OAuth.setParameter(message, 'xoauth_requestor_id', '18200614986198926446');
OAuth.SignatureMethod.sign(message, accessor);
var url = OAuth.addToURL(action, message.parameters);
var response = UrlFetchApp.fetch(url, {method: message.method });
if (response.getResponseCode() == 200) {
var res = JSON.parse(response.getContentText());
Browser.msgBox(res.entry.displayName);
}
}
</pre>今回は Query String で試しましたが Authorization Header でも大丈夫なはず。<br />
<br />
ということで Google Apps Script から 2Legged OAuth できちゃいました。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-40423628154374669112011-03-02T14:14:00.000+09:002011-03-02T14:14:00.275+09:003arrows アップデート! お気に入り機能とダイジェストメール機能を追加しました。2 月 25 日 (金)、企業やチーム向けのプライベートマイクロブログ、<a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。アップデートの主な内容は次の通りです。<br />
<br />
<span style="font-size: large; text-decoration: underline;"><b>お気に入り機能の追加</b></span><br />
<br />
マイクロブログの各ステータスをお気に入りに追加できるようになりました。<br />
<br />
各ステータスの返信、削除と並ぶ 「お気に入り」 メニューをクリックすると、そのステータスをお気に入りに追加できます。また、自分以外のユーザーがステータスをお気に入りに追加した場合、ステータスの下部にお気に入りの合計人数を表示するようになりました。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT3-z0c2j9ikDpgruqeStmC_NGNRqmvcFSFQg8NGlbgwUdIWM4nsyDw_ju-t4Gg_L_EvIHCQRNT-VpzaAk7y2Edwu2Rv-3kbMu-gD-8F1Q0L4G4Pzqzt_IrRTL48J3SZNbF2WV_QgEsPM/s1600/favorites1.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 332px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT3-z0c2j9ikDpgruqeStmC_NGNRqmvcFSFQg8NGlbgwUdIWM4nsyDw_ju-t4Gg_L_EvIHCQRNT-VpzaAk7y2Edwu2Rv-3kbMu-gD-8F1Q0L4G4Pzqzt_IrRTL48J3SZNbF2WV_QgEsPM/s400/favorites1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5578549360726344866" /></a><br />
なお、追加したお気に入りは上部メニューの 「お気に入り」 から一覧できます。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqRM2bWdXQA-RS1SGpBZCGtbkqkhKqvQ4BrAIY0SFCkPu3NdAL1XlNu-VMSHPNX5c78asrIY_wC26ozSYyXwcnCvAQjFkXfbWCy0BOfpsM4t7Q4wjlPWTm9sKWqsBoULOJ38TnQz8SH64/s1600/favorites2.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 326px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqRM2bWdXQA-RS1SGpBZCGtbkqkhKqvQ4BrAIY0SFCkPu3NdAL1XlNu-VMSHPNX5c78asrIY_wC26ozSYyXwcnCvAQjFkXfbWCy0BOfpsM4t7Q4wjlPWTm9sKWqsBoULOJ38TnQz8SH64/s400/favorites2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5578830161107541890" /></a><br />
<span style="font-size: large; text-decoration: underline;"><b>ダイジェストメール機能の追加</b></span><br />
<br />
1 日 1 回、マイクロブログ上のコミュニケーションのダイジェストを、メールで配信するようになりました。今後、みなさまのご利用状況を踏まえ、オプション化等も検討していきます。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYSyviPlimjJxBEV91irIf6hoBLF300Y1NJwNzGC5CGy4bIv06iIkSRFsvN9UyG4Z5iDwWM5szfH4AexmCPWBZFSgGl34jH1n7ZdM-YssbYJMwm0P1ka3UbzeGrZhulchsNvyYPptzQ7I/s1600/digest.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 397px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYSyviPlimjJxBEV91irIf6hoBLF300Y1NJwNzGC5CGy4bIv06iIkSRFsvN9UyG4Z5iDwWM5szfH4AexmCPWBZFSgGl34jH1n7ZdM-YssbYJMwm0P1ka3UbzeGrZhulchsNvyYPptzQ7I/s400/digest.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5578830171467146034" /></a><br />
<span style="font-size: large; text-decoration: underline;"><b>不具合の修正</b></span><br />
<br />
マイクロブログの返信機能の不具合や Picasa Web Albums の https への対応等、いくつかの改修を実施しました。<br />
<br />
<span style="font-size: large; color: #cc0000; text-decoration: underline;"><b>全てのアプリケーションの更新をお願いします!</b></span><br />
<br />
管理者の方は、コントロールパネルのアプリケーションタブから、全てのアプリケーションを更新してください。「更新する」 リンクをクリックすると、アプリケーションを更新できます。「最新」 と表示されれば更新の完了です。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s1600/applications.png"><img style="display:block; margin:0px auto; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 271px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s400/applications.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5574156228142663426" /></a><br />
<a href="http://www.3arrows.jp/">3arrows</a> では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-23415402425974353282011-02-27T19:02:00.001+09:002011-02-27T19:05:07.574+09:00Firefox の location.hash は自動デコードにも関わらず、制御コードはデコードしないとか知ってました?こんばんは。なかじまんです。<br />
<br />
Firefox の location.hash は、他のブラウザと異なり、URI デコードした結果を表すのは、よく知られていると思いますが、なんど制御コードに限ってデコードしない例外があるようです。試しているのは Firefox 3.6 です。<br />
<br />
例えば、改行入りのテキストを location.hash で状態を保持しようとすると、改行コードは CR/LF にデコードされず、%0D%0A のままとなってしまいます。なんじゃこれ。何か勘違いしているのかなぁ。<br />
<br />
試しに ASCII コードをぜんぶ試してみたところ、<br />
<pre>for (var i = 0x0; i <= 0x7f; i++) {
var hex = Number(i).toString(16);
var ch = String.fromCharCode(i);
location.href = '#' + encodeURIComponent(ch);
console.log('0x' + hex + ': ' + location.hash);
}
</pre>
制御コードは、デコードされないことを知りました。HTML や DOM の仕様にそぐわないからだろうか。それとも、脆弱性に関するものだろうか。
<pre>0x0: #%0<span>0</span>
0x1: #%01
0x2: #%02
0x3: #%03
0x4: #%04
0x5: #%05
0x6: #%06
0x7: #%07
0x8: #%08
0x9: #%09
0xa: #%0A
0xb: #%0B
0xc: #%0C
0xd: #%0D
0xe: #%0E
0xf: #%0F
0x10: #%10
0x11: #%11
0x12: #%12
0x13: #%13
0x14: #%14
0x15: #%15
0x16: #%16
0x17: #%17
0x18: #%18
0x19: #%19
0x1a: #%1A
0x1b: #%1B
0x1c: #%1C
0x1d: #%1D
0x1e: #%1E
0x1f: #%1F
0x20: #
0x21: #!
0x22: #"
0x23: ##
0x24: #$
0x25: #%
0x26: #&
0x27: #'
0x28: #(
0x29: #)
0x2a: #*
0x2b: #+
0x2c: #,
0x2d: #-
0x2e: #.
0x2f: #/
0x30: #0
0x31: #1
0x32: #2
0x33: #3
0x34: #4
0x35: #5
0x36: #6
0x37: #7
0x38: #8
0x39: #9
0x3a: #:
0x3b: #;
0x3c: #<
0x3d: #=
0x3e: #>
0x3f: #?
0x40: #@
0x41: #A
0x42: #B
0x43: #C
0x44: #D
0x45: #E
0x46: #F
0x47: #G
0x48: #H
0x49: #I
0x4a: #J
0x4b: #K
0x4c: #L
0x4d: #M
0x4e: #N
0x4f: #O
0x50: #P
0x51: #Q
0x52: #R
0x53: #S
0x54: #T
0x55: #U
0x56: #V
0x57: #W
0x58: #X
0x59: #Y
0x5a: #Z
0x5b: #[
0x5c: #\
0x5d: #]
0x5e: #^
0x5f: #_
0x60: #`
0x61: #a
0x62: #b
0x63: #c
0x64: #d
0x65: #e
0x66: #f
0x67: #g
0x68: #h
0x69: #i
0x6a: #j
0x6b: #k
0x6c: #l
0x6d: #m
0x6e: #n
0x6f: #o
0x70: #p
0x71: #q
0x72: #r
0x73: #s
0x74: #t
0x75: #u
0x76: #v
0x77: #w
0x78: #x
0x79: #y
0x7a: #z
0x7b: #{
0x7c: #|
0x7d: #}
0x7e: #~
0x7f: #%7F
</pre>ただ、今日のウェブアプリの作り方からすると、タブや改行コードも含めて状態を保持して欲しいところでもあり、次のように location.href から hash を取り出せば解決しそうな気がするのですが、このようなアプローチをとっている解説が見つからないのはなぜだろう?
<pre>window.onhashchange = function() {
var hash = firefox
? (location.href.split('#')[1] || '')
: location.hash;
}
</pre>参考にした情報などどなど。ただ、Firefox の仕様はどうなっているのかは分かりませんでした。
<ul><li><a href="https://developer.mozilla.org/en/DOM/window.location">window.location - MDC Doc Center</a></li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=483304">Bug 483304 – location.hash getter returns the hash value unescaped ("%7C" turns into "|")</a></li>
</ul>Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-5338664007993016452011-02-25T21:52:00.000+09:002011-02-25T21:52:11.849+09:003arrows アップデート! カレンダーを利用できるようになりました。2月16日(水)、企業やチーム向けのプライベートマイクロブログ、<a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。アップデートの主な内容は次の通りです。<br />
<br />
<span style="font-size: large; text-decoration: underline;"><b>カレンダーの追加</b></span><br />
<br />
新しい標準アプリケーションとして、カレンダーを追加しました。<br />
<br />
カレンダーの表示画面では、自分のカレンダーの他、フォローしている他のユーザーのカレンダーもまとめて閲覧することができます。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNBmZloGQlHH_aUQBMejHAAdaXl60J_YFa-D34STiISedo9W8exhlcphkhz2N4f7yVUNC_xb0JqzhV7X7x5l1LMPRY6uvtwn75GdNYRX48M5khcSol7vYZcFPlniOPqAeQSKQ-EhQPNhg/s1600/home.png"><img style="display:block; margin:0px auto; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 317px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNBmZloGQlHH_aUQBMejHAAdaXl60J_YFa-D34STiISedo9W8exhlcphkhz2N4f7yVUNC_xb0JqzhV7X7x5l1LMPRY6uvtwn75GdNYRX48M5khcSol7vYZcFPlniOPqAeQSKQ-EhQPNhg/s400/home.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5574149006063539570" /></a><br />
個々のスケジュールの表示画面では、スケジュールの詳細情報を閲覧することができます。スケジュールの詳細情報にはマイクロブログと連携するハッシュタグや、@ 記法によりユーザーへのリンクを含めることもできます。また、スケジュールにはコメントを付けることもできますので、この機能により会議の参加者をコメントで募ったり、会議の議事録をコメントで付けることもできます。(日報のアプリケーションでも同様にハッシュタグや @ 記法を利用することができます。)<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2TWEDHVJZcyyhpV0cSrNo0wdj214bGkwS96TWuPJfp1eEMJ78QloXnRWamwjKYmRlkGl1jMnS2iqh1wP6csMSuJNVx-BuhxkHOv2Cf_3dk5_2Etrh9eqkIdaOOW1bCH1LhIfwqkQouoE/s1600/schedule.png"><img style="display:block; margin:0px auto; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 315px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2TWEDHVJZcyyhpV0cSrNo0wdj214bGkwS96TWuPJfp1eEMJ78QloXnRWamwjKYmRlkGl1jMnS2iqh1wP6csMSuJNVx-BuhxkHOv2Cf_3dk5_2Etrh9eqkIdaOOW1bCH1LhIfwqkQouoE/s400/schedule.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5574148998297586050" /></a><br />
また、既に Google カレンダーを利用されている場合には、Google カレンダーをインポートすることもできます。(最大 5 つのカレンダーまで)<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg78CO2HMHNRF1EHgR5W1iirwnLrDUgAmaZng5s20Lspal0bFVR9oXv4RX8xOrlZvryquEkxw0zjFNDZar4cKUcbed2wIEVOHUG0uxVXQQJ_6RBogINYJNt9_Q5hChP5GOad7oRXQflFR8/s1600/import.png"><img style="display:block; margin:0px auto; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 255px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg78CO2HMHNRF1EHgR5W1iirwnLrDUgAmaZng5s20Lspal0bFVR9oXv4RX8xOrlZvryquEkxw0zjFNDZar4cKUcbed2wIEVOHUG0uxVXQQJ_6RBogINYJNt9_Q5hChP5GOad7oRXQflFR8/s400/import.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5574148994892536450" /></a><br />
次の画像は <a href="https://www.google.com/calendar/embed?src=fvijvohm91uifvd9hratehf65k%40group.calendar.google.com">「IT 勉強会」</a> の Google カレンダーをインポートした例です。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTnhppbFB8MqAU0m-jej06TxHJzviZGcLqBP_30TLV_U-8DBuTmOM1vqefZMc1iysGgnE07zCI8pBduVjYsLBGASLlbe7r1zoiXpQcYi-V9LdC5LTIjmz3XZ4mkUfP-Ow7C7px_LMd59Y/s1600/google.png"><img style="display:block; margin:0px auto; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 315px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTnhppbFB8MqAU0m-jej06TxHJzviZGcLqBP_30TLV_U-8DBuTmOM1vqefZMc1iysGgnE07zCI8pBduVjYsLBGASLlbe7r1zoiXpQcYi-V9LdC5LTIjmz3XZ4mkUfP-Ow7C7px_LMd59Y/s400/google.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5574148992361107890" /></a><br />
なお、日報のアプリケーションと同様に、カレンダーにおけるスケジュールの作成やスケジュールへのコメント等は、全てマイクロブログに通知されます。そのため、ユーザーはマイクロブログを通じてスケジュールを確認したり、また、マイクロブログを起点として、スケジュールについてのコミュニケーションを取ることができるようになっています。<br />
<br />
<span style="font-size: large; text-decoration: underline;"><b>メニューの整理</b></span><br />
<br />
アプリケーションの右上のメニューを整理しました。今後もタスク管理やファイル共有等のアプリケーション、マイクロブログの検索機能等の追加を見込んでいますので、段階的にメニューの整理を続けていきます。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifDWsB2Z8t8p8Hl14lzAXJXswPCUAWpGIPgq10Z3j5sfHRtmCDxy_Fb1Qxp6S1Iy7miYUyTR0KHZZ3t7R2cWf_EhVMn4lWHevkyPvSCSJlR0ADekcVFYFmYFKCXEyaxDOKB-U0DXlacCE/s1600/menu.png"><img style="display:block; margin:0px auto; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 315px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifDWsB2Z8t8p8Hl14lzAXJXswPCUAWpGIPgq10Z3j5sfHRtmCDxy_Fb1Qxp6S1Iy7miYUyTR0KHZZ3t7R2cWf_EhVMn4lWHevkyPvSCSJlR0ADekcVFYFmYFKCXEyaxDOKB-U0DXlacCE/s400/menu.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5574153999798490002" /></a><br />
<span style="font-size: large; color: #cc0000; text-decoration: underline;"><b>全てのアプリケーションの更新をお願いします!</b></span><br />
<br />
管理者の方は、コントロールパネルのアプリケーションタブから、全てのアプリケーションを更新してください。「更新する」 リンクをクリックすると、アプリケーションを更新できます。「最新」 と表示されれば更新の完了です。<br />
<br />
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s1600/applications.png"><img style="display:block; margin:0px auto; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 271px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s400/applications.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5574156228142663426" /></a><br />
<a href="http://www.3arrows.jp/">3arrows</a> では、引き続き α テストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を始めることができます。企業や個人等、利用条件に制限はありませんので、この機会にぜひお試しください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-13511728776181394782011-02-21T16:30:00.000+09:002011-02-21T16:30:15.373+09:00Amazon S3 でウェブサイトがホストできるようになったので移転してみたこんにちは。なかじまんです。<br />
<br />
ずっととある VPS を利用していて、料金がもったいないなぁと思いつつも、過去に作ったコンテンツを破棄するのもなんだしなーと放置していたウェブサイトがあったのですが、なんと Amazon S3 でウェブサイトがホストできるようになったので、さっそく移転してみました。<br />
<br />
<b><span style="font-size: large;">移転元のサイト</span></b><br />
<br />
Postal Search APIs & Solutions<br />
<a href="http://developmentor.lrlab.to/postal/">http://developmentor.lrlab.to/postal/</a><br />
<br />
<b><span style="font-size: large;">移転で捨てたこと</span></b><br />
<br />
Perl5 による CGI がいくつかあったのですが、この機会に削除しました。また、Apache 固有の .ht ファイルも削除しました(もちろん不可視であるべきファイルも削除しました)。ので、正しく表示されないページやデッドリンクがありますが、そこはご愛敬で。<br />
<br />
<b><span style="font-size: large;">バケットの作成と設定</span></b><br />
<br />
developmentor.lrlab.to という新バケットを作りました。バケット名は CNAME と同じにしないとダメです。ここは今までと同じ。<br />
<br />
<b><span style="font-size: large;">バケットの設定</span></b><br />
<br />
AWS Management Console からバケットのプロパティを開くと、Website タブが追加されています。ここで Enable のチェックを ON する。そんで Index Document: index.html、Error Document: 404.html とした。<br />
<br />
Index Document には / や /foo/ や /foo/bar/ のときに表示するファイルを指定する。今までは XML が表示されてしまったが、これでウェブサイトっぽくなる。ちなみに /foo/bar など末尾の / を省略したとき bar がフォルダのときは、302 でリダイレクトするあたりもウェブサイトと同じ。<br />
<br />
Error Document には、HTTP ステータスコードが 4xx のときに表示するファイルを指定する。指定したファイルはルートに置いておけばよい。Amazon S3 の仕様上は、400, 403, 404 が起こりうるが、ファイルは1つしか指定できない。ちょっと Amazon の手抜きっぽい気はするが、実質は 404 Not Found を表すファイルを追いておけば不自由ない。<br />
<br />
<b><span style="font-size: large;">ファイルのアップロード</span></b><br />
<br />
移転元のサイトのファイルをアップロードしました。ここも今までと同じ。<br />
<br />
<b><span style="font-size: large;">移転先のサイト</span></b><br />
<br />
Amazon S3 のエンドポイントは、今までと同じ↓と思いきや、これが違うのです。このエンドポイントは、いわゆる S3 として振る舞うもので、Website とは関係ないようです。<br />
<br />
<a href="http://developmentor.lrlab.to.s3.amazonaws.com/postal/">http://developmentor.lrlab.to.s3.amazonaws.com/postal/</a><br />
<br />
構成上、そりゃそうかとも思えるし、いっしょにしてよとも思えるし。それで WebSite のエンドポイントは、特別に用意されたものがあり↓、今までと異なりました。しかも、選択した地域によって URL が違います。ありゃりゃ。<br />
<br />
<a href="http://developmentor.lrlab.to.s3-website-us-east-1.amazonaws.com/postal/">http://developmentor.lrlab.to.s3-website-us-east-1.amazonaws.com/postal/</a><br />
<br />
<b><span style="font-size: large;">DNS の設定</span></b><br />
<pre>CNAME developmentor.lrlab.to
developmentor.lrlab.to.s3-website-us-east-1.amazonaws.com
</pre>とすれば、おけ。<br />
<br />
<b><span style="font-size: large;">さようなら VPS</span></b><br />
<br />
というわけで、次の更新のときには VPS を解約します。元々のアクセスはそれなりにありますが Amazon S3 の単価のほうが安いでしょう。また、気持ち的に管理主体が、自分から Amazon に移った気持ちになれるので、そこが気楽でいいかな。どうがんばったって第三者が悪さできることもないしね。<br />
<br />
ちょう適当メモですが、参考になれば幸いです。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-31912868130891172872011-02-21T14:08:00.000+09:002011-02-21T14:08:12.537+09:003arrows アップデート! 多数のご要望を受けて、マイクロブログをキーワード検索できるようにしました! ブラウザの検索バーにも対応してます!2月18日(金)、会社やチーム向けプライベートマイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。<br />
<br />
<span style="font-size: large;"><b>マイクロブログのキーワード検索</b></span><br />
<br />
ユーザーからの多数のご要望を受けて、マイクロブログをキーワード検索できるようにしました。<br />
<br />
<span style="font-size: small;"><b>アプリの検索ボックスから検索</b></span><br />
<br />
マイクロブログと各アプリの右上メニューに、検索ボックスを配置しました。キーワードを入力して、検索ボタンをクリックすると、マイクロブログを検索できます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQUCr6gyc3pX7C0gTCjxP3CnDZkToeVj0ZiM-IC-2lLfOnxQiJBp0mkiIrSn77hhQ4y1SL3MFAu-4IhaVOTxA9AhfuPav6eCaUk3tSNSZ7JsaLoD9xt4U1L0WKPbVJ2BWAf-x3YpP8p8A/s1600/20110218-2.gif" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQUCr6gyc3pX7C0gTCjxP3CnDZkToeVj0ZiM-IC-2lLfOnxQiJBp0mkiIrSn77hhQ4y1SL3MFAu-4IhaVOTxA9AhfuPav6eCaUk3tSNSZ7JsaLoD9xt4U1L0WKPbVJ2BWAf-x3YpP8p8A/s480/20110218-2.gif" /></a><br />
<br />
任意のキーワードのほか、ハッシュタグやユーザーID、文中の URL でも検索できます。<br />
<ul><li>キーワード</li>
<li>#ハッシュタグ</li>
<li>@ユーザーID</li>
<li>http(s):// ...</li>
</ul><br />
<span style="color: #cc0000;">なお、2月18日(金)からの投稿が検索対象になります。</span><br />
<br />
<span style="font-size: small;"><b>ブラウザの検索バーから検索</b></span><br />
<br />
Firefox 3、IE8、IE7 の検索バーから 3arrows のマイクロブログを直接検索できます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyjgcSog-PcDE4W4x9wyiN-MAOJ8r6C150eo9KdNStLlLlT2VQydhPsRdl3l-qEuVGnlzGtPckDz5HX-VUkZ97PRIPec-hpRpXmXpFa9CkmWUF1kGsvToJuso8ncFW2Kk9KUeyEHv7las/s1600/20110218-1.gif" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyjgcSog-PcDE4W4x9wyiN-MAOJ8r6C150eo9KdNStLlLlT2VQydhPsRdl3l-qEuVGnlzGtPckDz5HX-VUkZ97PRIPec-hpRpXmXpFa9CkmWUF1kGsvToJuso8ncFW2Kk9KUeyEHv7las/s480/20110218-1.gif" /></a><br />
<br />
<span style="color: #cc0000; font-size: large;"><b>アプリケーションのアップデートをお願いします。</b></span><br />
<br />
管理者の方は、コントロールパネルのアプリケーションタブにアクセスして、各アプリケーションを更新してください。「更新する」リンクをクリックすると、アプリケーションを更新できます。「最新」と表示されれば、アップデートの完了です。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s400/applications.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWm2X6l4bWUprKFj7pgEwS6In_ANrfo6cLxVspA9kjyKIX7fC_a7e_zWmu9peE-aMFkKg5KJ_DZzRtAo5WQLlta2zQ_LGa_BOdghaUv79IJzh1FqnUigpRuapSXGPX2riWv_86_yckGc8/s480/applications.png" /></a><br />
<br />
<span style="font-size: large;"><b>3arrows では αユーザーを募集しています。</b></span><br />
<br />
<a href="http://www.3arrows.jp/">3arrows</a> では、αユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-84301572411513775882011-02-14T09:56:00.000+09:002011-02-14T09:56:39.990+09:003arrows アップデート! ご登録のメールアドレスからメールを送信してマイクロブログに投稿できるようになりました!2月11日(金)、会社やチーム向けプライベートマイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。アップデートの主な内容は、次のとおりです。<br />
<br />
<span style="font-size: large;"><b>メールからマイクロブログへの投稿</b></span><br />
<br />
ご登録のメールアドレスから、メールを送信してマイクロブログに投稿できるようになりました。<br />
<br />
次の例では、Google AdWords から 10,000 円分の無料クーポンが届いたので、そのメールをマイクロブログに投稿して、何か広告を出すかメンバーに聞いています。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx9eRL901VFRzrceZYot-Lrp0xa95hNVlovBzaC2yotUGuCfYjySyPmP9L6ZnRHxQCNBvlnTf5un9TJNXSN46D2MeXzFkUUfJYineyMqg9nKa5Em6oQppBHPEIrs0iktA4tDo4AqS41CY/s1600/20110212-1.png" imageanchor="1" style=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx9eRL901VFRzrceZYot-Lrp0xa95hNVlovBzaC2yotUGuCfYjySyPmP9L6ZnRHxQCNBvlnTf5un9TJNXSN46D2MeXzFkUUfJYineyMqg9nKa5Em6oQppBHPEIrs0iktA4tDo4AqS41CY/s480/20110212-1.png" /></a><br />
<br />
投稿先のメールアドレスは、マイクロブログの右上メニューのツールから入手できます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiaAph2urTe3xc8JV7TCGLwiKKeHrw-gpCpprkuO_JxrYNbUt2oQCZopD9KSUGtF6dkbdUJaKtt8zkGF8R9OQIFQbVUyFpgHs8072E7bJ0vmjw_t9SmDXeteP47X_8eC3AXVmQtdDtEnY/s1600/20110212-2.png" imageanchor="1" style=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiaAph2urTe3xc8JV7TCGLwiKKeHrw-gpCpprkuO_JxrYNbUt2oQCZopD9KSUGtF6dkbdUJaKtt8zkGF8R9OQIFQbVUyFpgHs8072E7bJ0vmjw_t9SmDXeteP47X_8eC3AXVmQtdDtEnY/s480/20110212-2.png" /></a><br />
<br />
<span style="font-size: large;"><b>マイクロブログのリアルタイム性の向上</b></span><br />
<br />
ブラウザでマイクロブログを開いている間、新着の投稿があれば、順々と表示するようになりました。もう更新の操作は必要ありません。<br />
<br />
<span style="font-size: large;"><b>プラットフォームの性能向上</b></span><br />
<br />
各アプリケーション (OpenSocial AppData) のデータ格納方法を見直して効率化することで、さらにパフォーマンスが向上しました。<br />
<br />
<span style="font-size: large;"><b>アプリケーションの改善</b></span><br />
<br />
日報アプリのいくつかの不具合を修正しました。<br />
<br />
<span style="font-size: large; color: #cc0000;"><b>マイクロブログ、日報アプリのアップデートをお願いします。</b></span><br />
<br />
管理者の方は、コントロールパネルのアプリケーションタブにアクセスして、各アプリケーションを更新してください。「更新する」リンクをクリックすると、アプリケーションを更新できます。「最新」と表示されれば、アップデートの完了です。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtsEvh2rWhKsfOt5Q1HjdetuXBiwwVxqbfw8CM6xMj0llD9Wb8Wz6z3Dh_LvI7UshkpS17QaxdWJkP0r5vpGRI91C2_owdMCzIJV3axx2tl7xexWEFewl9IYvOnudOnSQ6_EWq0R72BpE/s1600/IMG_0025.png" imageanchor="1" style=""><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtsEvh2rWhKsfOt5Q1HjdetuXBiwwVxqbfw8CM6xMj0llD9Wb8Wz6z3Dh_LvI7UshkpS17QaxdWJkP0r5vpGRI91C2_owdMCzIJV3axx2tl7xexWEFewl9IYvOnudOnSQ6_EWq0R72BpE/s480/IMG_0025.png" /></a><br />
<br />
<a href="http://www.3arrows.jp/">3arrows</a> では、αユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-14113635276460992052011-02-10T20:58:00.000+09:002011-02-10T20:58:21.475+09:003arrows のマイクロブログと日報アプリを通じて、日報を中心としたコラボレーション、チームの知識や問題意識の共有を促進しよう!プライベートマイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> は、マイクロブログと連携する日報アプリも提供しています。<br />
<br />
日報は、上司への報告、チームへの共有という一方通行な関わりになりがちですが、マイクロブログと日報の組み合わせにより、マイクロブログを通じて、日報を中心とした双方向のコラボレーション、知識や問題意識の共有といった様々な効果が期待できます。<br />
<br />
マイクロブログと日報アプリの使い方(使われ方)をご紹介します。<br />
<br />
<span style="font-size: large;"><b>日報を登録する</b></span><br />
<br />
仕事が終わったら、日報アプリを使って、今日の業務内容や連絡事項を入力して、日報を登録します。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhjsanX9H75BCNMeD8JnePsyBvdUNN6_Yc5PYcBWdDj61iL3Npaqsjm1Gcur5jlOt5DU9FE381IrYRxoxiW6eU43ieDAICcKmKFsCtN38Q7sWRZg0HdyJ2yHqrE79rl95vrnX_7yUakjg/s1600/20110209-4.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhjsanX9H75BCNMeD8JnePsyBvdUNN6_Yc5PYcBWdDj61iL3Npaqsjm1Gcur5jlOt5DU9FE381IrYRxoxiW6eU43ieDAICcKmKFsCtN38Q7sWRZg0HdyJ2yHqrE79rl95vrnX_7yUakjg/s480/20110209-4.png" /></a><br />
<br />
<span style="font-size: large;"><b>日報を共有する</b></span><br />
<br />
日報を登録すると、日報の概要がマイクロブログに投稿されます。そして、マイクロブログを通じて、メンバーや上司は、日報の登録があったことを知ります。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirRaZyLI8lv4wJijTapLOqhyphenhyphenUrwueKGRR9JZZ0xhZ7LVWWQrKvlG4auc10Cwot-wbNWJHLACF3Q89sNDKOCDPNqB7bKb3cArfgPCfzQBnBG1H0B5elithPBLtN-iBHCVCDj6OcXkIBmEk/s1600/20110209-1.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirRaZyLI8lv4wJijTapLOqhyphenhyphenUrwueKGRR9JZZ0xhZ7LVWWQrKvlG4auc10Cwot-wbNWJHLACF3Q89sNDKOCDPNqB7bKb3cArfgPCfzQBnBG1H0B5elithPBLtN-iBHCVCDj6OcXkIBmEk/s480/20110209-1.png" /></a><br />
<br />
<span style="font-size: large;"><b>日報にコメントする</b></span><br />
<br />
メンバーや上司は、マイクロブログから日報を開き、日報の詳細を確認します。また、必要に応じて、日報にコメントをします。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_fgg4hO8MsxG81IXiBkpc7lfMaWb9BXy67GcsibMx73a79wnPkE7KRKlmHzkiOawkoYAyqXfe7r8S26DRVIViZAC-fibBRr77Ee3mw_i82DyaGTUX1V5p8AmqpVAAmHRh_Ngzitrhsv4/s1600/20110209-3.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_fgg4hO8MsxG81IXiBkpc7lfMaWb9BXy67GcsibMx73a79wnPkE7KRKlmHzkiOawkoYAyqXfe7r8S26DRVIViZAC-fibBRr77Ee3mw_i82DyaGTUX1V5p8AmqpVAAmHRh_Ngzitrhsv4/s480/20110209-3.png" /></a><br />
<br />
<span style="font-size: large;"><b>日報のコメントを確認する</b></span><br />
<br />
日報にコメントすると、そのコメントもマイクロブログに投稿されます。コメントの返信先は、日報を登録したユーザになります。ですので、マイクロブログへの返信を確認すれば、日報へのコメントをまとめて把握できます。さらにコメントを返すこともできます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinP3pQ8O8_PDaMNViWHO7Z3NBFBZ78wIEy_Y97quV14Zos1FzKmmUXLYEWsV1ZWYMmCYVv4XMcuE-yBtaHadHfGPpa9320a43l8YCtgAUL3WROFUu_FrU_uTnTKeTFMFoC5my1d4JbpOE/s1600/20110209-2.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinP3pQ8O8_PDaMNViWHO7Z3NBFBZ78wIEy_Y97quV14Zos1FzKmmUXLYEWsV1ZWYMmCYVv4XMcuE-yBtaHadHfGPpa9320a43l8YCtgAUL3WROFUu_FrU_uTnTKeTFMFoC5my1d4JbpOE/s480/20110209-2.png" /></a><br />
<br />
<span style="font-size: large;"><b>メールで日報を共有する</b></span><br />
<br />
日報を登録すると、日報を登録したユーザをフォローしているメンバーや上司に対して、日報の内容をメールで通知します。例えば、上司は、報告を必要とするユーザさえフォローしておけば、マイクロブログを使わずとも、メールにより、日報を受け取ることができます。<br />
<pre><span style="font-size: xx-small;">3arrows - #日報 #2011/02/09 3arrows のテスト、不具合修正
なかじまんソフトウェア の Nobuhiro Nakajima さんからメッセージが届いています。
-- メッセージここから --
下記の不具合を修正しました。
(1) 日報、コメントの投稿の際にタグをエスケープするようにしました。
(2) コメントの表示順を最新日時順にしました。
(3) いくつかの JavaScript エラーを修正しました。
下記の改善をしました。
(1) 定期的にトークンをリフレッシュして、ログインの有効期限の間 API にアクセスできるようにしました。
出社時刻 10:30、退社時刻 18:00、勤務時間 06:30
-- メッセージここまで --
今後とも 3arrows をどうぞよろしくお願いいたします。
--
3arrows
http://www.3arrows.jp/
メッセージを送信したアプリケーション
http://nakajiman.3arrows.jp/a/@dailyreport</span></pre><span style="font-size: large;"><b>過去の日報を確認する</b></span><br />
<br />
過去に登録した日報は、後からいつでも再確認できます。日報のコメントも確認できますので、情報がバラバラになることもありません。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZPdzMJzeuwWtOhQLyVMNvvGQ_FjVyWhdKHeq7pNmXgqUDvnR28J0FfoOgibGttOPxUrmTFN7U4dO1FDosrUrGDFMt2EQ2KAIAwe0Jakqcj9oJrXIua2o3I1w4jqJGhEae1FjfP_IxEdM/s1600/20110209-5.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZPdzMJzeuwWtOhQLyVMNvvGQ_FjVyWhdKHeq7pNmXgqUDvnR28J0FfoOgibGttOPxUrmTFN7U4dO1FDosrUrGDFMt2EQ2KAIAwe0Jakqcj9oJrXIua2o3I1w4jqJGhEae1FjfP_IxEdM/s480/20110209-5.png" /></a><br />
<br />
いかがでしょうか。<a href="http://www.3arrows.jp/">3arrows</a> によって、さらに日報を活用してみませんか。<br />
<br />
<a href="http://www.3arrows.jp/">3arrows</a> では、αユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com2tag:blogger.com,1999:blog-1509463847369212828.post-80268739380815101092011-02-08T20:08:00.000+09:002011-02-08T20:08:42.501+09:003arrows のマイクロブログで、各メンバーの最新投稿を確認して、出社状況や今日の予定をまとめて把握しようプライベートマイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> のマイクロブログは、<b><span style="font-size: large;"><span style="color: #990000;">時系列のタイムライン表示に加えて、各メンバーの最新投稿を確認</span></span></b> できます。<br />
<br />
朝の 9:00 過ぎに、各メンバーの最新投稿を確認すると、各メンバーの出社状況や、今日の予定がまとめて確認できるでしょう。また、投稿がなければ寝坊や事件に巻き込まれているのかもしれません。<br />
<br />
例えば、次のように表示されます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDO7b8RddCiOxLN93kWw-drcA9dLzrbYp-ak7T3VWBS00vDPtIb0YfvnU3A6kP8qH9rWni5bQtBnMjDzGs-C_6hsN2bUWufYX4I7gOKqWoCblcTMX0VcZlOOg2tBMEf-sDY2kENimkOk4/s1600/20110207-1.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDO7b8RddCiOxLN93kWw-drcA9dLzrbYp-ak7T3VWBS00vDPtIb0YfvnU3A6kP8qH9rWni5bQtBnMjDzGs-C_6hsN2bUWufYX4I7gOKqWoCblcTMX0VcZlOOg2tBMEf-sDY2kENimkOk4/s480/20110207-1.png" /></a><br />
<br />
この会社では、朝イチにラジオ体操をするようです。ミーティングで客先に直行している社員がいます。今日は、仕事が終わったら、社長がご馳走してくれるようです。<br />
<br />
<div style="color: #444444;"><span style="font-size: x-small;">※この会社はフィクションであり、実在の人物・団体等とは一切関係がありません。(^_^;)</span></div><br />
プライベートマイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> では、αユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-18236283516637759292011-02-05T20:23:00.000+09:002011-02-05T20:23:13.145+09:003arrows アップデート! ユーザーからの多数のご要望を受けて、オリジナル画像をプロフィールアイコンに設定できるようにしました!2月4日(金)、会社やチーム向けマイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。<br />
<br />
<span style="font-size: large;"><b>オリジナル画像によるプロフィールアイコンの設定</b></span><br />
<br />
ユーザーからの多数のご要望を受けて、オリジナル画像をプロフィールアイコンに設定できるようにしました。マイクロブログの右メニューの設定リンクをクリックすると、プロフィール編集のページが開きます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgun71T-o_bZtKOUFE8E4sErPSITv7bzKXyMxV7znVZN70Sasrimy7yAcTvA_Sj6MPEHsdOfgvUnWrG3YrQcRC5XRmVZ0qURgUxb4afinUe1DGcxxjYRCCx40Z11I_bivQrT1N9WsEbIgo/s1600/20110128-3.png" imageanchor="1"><img border="0" height="58" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgun71T-o_bZtKOUFE8E4sErPSITv7bzKXyMxV7znVZN70Sasrimy7yAcTvA_Sj6MPEHsdOfgvUnWrG3YrQcRC5XRmVZ0qURgUxb4afinUe1DGcxxjYRCCx40Z11I_bivQrT1N9WsEbIgo/s400/20110128-3.png" width="400" /></a><br />
<br />
続けて、画像をアップロードするリンクをクリックして、オリジナル画像をアップロードしてください。オリジナル画像は自動リサイズしますが、あらかじめ 48x48 サイズのものをアップロードすることをお勧めします。 <br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-KA7dZTISQeKAJcU_trm1g0vsyQewA9kVgXGusARpQSNM608KpEogAZ53z3Ihk1_eIbTipI1xaE8sParTE3LRHbMMLdOg15TcH2GStUbQQP9oM4REg_w1aZcx5yvnX1n47glex2QnfyQ/s1600/20110204-2.png" imageanchor="1"><img border="0" height="253" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-KA7dZTISQeKAJcU_trm1g0vsyQewA9kVgXGusARpQSNM608KpEogAZ53z3Ihk1_eIbTipI1xaE8sParTE3LRHbMMLdOg15TcH2GStUbQQP9oM4REg_w1aZcx5yvnX1n47glex2QnfyQ/s320/20110204-2.png" width="320" /></a><br />
<br />
なお、3arrows は <b><span style="font-size: large;"><span style="color: #990000;">管理者があらゆることをコントロールできること</span></span></b> を原則に掲げて取り組んでいます。この原則に変わりはなく、管理者の方は、今までどおり、コントロールパネル上で各メンバーのプロフィールアイコンを上書き変更できます。<br />
<br />
また、アップロードした画像は、同じ会社やチームのメンバーしか閲覧できないように制限しています。<br />
<br />
<span style="font-size: large;"><b>マイクロブログのサムネイル表示</b></span><br />
<br />
マイクロブログのサムネイル表示対象を拡大しました。 <b><span style="color: #990000; font-size: large;">赤字</span></b> が追加分です。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEFymlDGkX8-A-5Jtj9-nKdiiqESVcAntR9AgWM6N3XbVF5qor-V5WZNjoWf3nTp2LHWJoHI0bicP5Xo8SnKvxbxiM9tX__oU2bDrucH1IbBpD1_cvZ_0uEqRc8dBckFkHpO71-asPlBg/s1600/20110204-1.png" imageanchor="1"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEFymlDGkX8-A-5Jtj9-nKdiiqESVcAntR9AgWM6N3XbVF5qor-V5WZNjoWf3nTp2LHWJoHI0bicP5Xo8SnKvxbxiM9tX__oU2bDrucH1IbBpD1_cvZ_0uEqRc8dBckFkHpO71-asPlBg/s400/20110204-1.png" width="400" /></a><br />
<br />
<b>ドキュメント:</b> PDF, Word, Excel, Power Point, Cacoo, SlideShare, JPEG, GIF, PNG <br />
<b>動画:</b> Ustream, YouTube, Vimeo<br />
<b>写真:</b> Flickr, Picasa, 壁紙.com, フォト蔵, TwitPic, Yfrog<br />
<b>地図:</b> Google Maps<br />
<b>ニュース:</b> Teckwave, Web 担当者 Forum, CNET Japan, <span style="font-size: large;"><b style="color: #990000;">ITpro</b></span><br />
<b>レビュー:</b> DIME, ブクログ, coneco.net, MonoColle<br />
<b>コラム:</b> ダイヤモンド・オンライン<br />
<b>グルメ:</b> ホットペッパー, ぐるなび, 食べログ<br />
<b>クーポン:</b> ポンパレード, グルーポン, Piku<br />
<b>ファッション:</b> ママ・マーケット, BUYMA, ホットペッパービューティー, ZOZOTOWN<br />
<b>通販:</b> アイテムポスト, カラメル<br />
<b>自動車:</b> グーネット, グーワールド, グーバイク<br />
<b>Q & A:</b> 教えて! goo<br />
<b>ブログ:</b> goo ブログ, Blogger<br />
<b>結婚:</b> ウエディングパーク<br />
<b>コミュニティ:</b> cooboo<br />
<b>エンタメ:</b> 講談社コミックプラス<br />
<br />
<a href="http://www.3arrows.jp/">3arrows</a> は αテストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-76679447026761943232011-02-04T10:59:00.000+09:002011-02-04T10:59:49.498+09:00Twitter 上の情報収集、チーム内共有、発信までのワークフローを支援するツイートインアプリをアップデートしました!2月2日、マイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> の「ツイートイン」アプリをアップデートしました。<br />
<br />
「ツイートイン」アプリは、ソーシャルメディア Twitter からの情報収集、チーム内共有、発信までのワークフローを支援することを目的としたアプリケーションです。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXgOuvnADXUSmwn8I-KQnIxe1VE8hAbsqyWM9U4wD5hj1WnlrAWveKIU22KUs6hzfrypNWH_9o-n3cdxvR1nBdm7l-_Twst4DsooDfq413Sjffju3lwS34rConQvgH-2fMH2GbLOlcZJo/s1600/tweet-in-1.png" imageanchor="1"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXgOuvnADXUSmwn8I-KQnIxe1VE8hAbsqyWM9U4wD5hj1WnlrAWveKIU22KUs6hzfrypNWH_9o-n3cdxvR1nBdm7l-_Twst4DsooDfq413Sjffju3lwS34rConQvgH-2fMH2GbLOlcZJo/s400/tweet-in-1.png" width="372" /></a><br />
<br />
アプリケーションの特徴や使い方、導入方法は、<a href="http://nakajiman.blogspot.com/2011/01/blog-post.html">ソーシャルメディアの情報収集、チーム内共有、発信までのワークフローを支援するツイートインアプリのご紹介</a> をご覧ください。<br />
<br />
アップデートの内容は、次のとおりです。<br />
<br />
<b>ウォッチ対象の並び替え</b><br />
<br />
マウスのドラッグ&ドロップで、ウォッチ対象を並び替えできるようにしました。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6O5QYUPXmziTo9CUn0q5f_d_2OkgPCBtC2EmLxrlD1FGEJca_mU4q46_cijx0pcLPt5m0wI_R-0sU8lgxzfOd8JpPpB0sPwZ5ckeZ_TqTaa0MW_jx-JBsUV_1DsC1r0Y0WwPhui90o4I/s1600/20110202-1.png" imageanchor="1"><img border="0" height="327" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6O5QYUPXmziTo9CUn0q5f_d_2OkgPCBtC2EmLxrlD1FGEJca_mU4q46_cijx0pcLPt5m0wI_R-0sU8lgxzfOd8JpPpB0sPwZ5ckeZ_TqTaa0MW_jx-JBsUV_1DsC1r0Y0WwPhui90o4I/s400/20110202-1.png" width="400" /></a><br />
<br />
<b>重複ハッシュタグの除去</b><br />
<br />
ハッシュタグが重複しないようになりました。ツイートをマイクロブログで共有するとき、ウォッチ条件をハッシュタグとして付与していましたが、すでにツイートにハッシュタグが含まれるときは、付与しないようにしました。<br />
<br />
<b>アプリ名ハッシュタグの追加</b><br />
<br />
ツイートをマイクロブログで共有するとき、「#ツイートイン」ハッシュタグを付与するようにしました。<br />
<br />
<a href="http://www.3arrows.jp/">3arrows</a> は αテストのユーザーを募集しています。サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。もちろん、α版の期間中は無料でご利用いただけます。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-29813731308978221082011-01-29T08:39:00.002+09:002011-01-29T08:39:58.369+09:00ソーシャルメディアの情報収集、チーム内共有、発信までのワークフローを支援するツイートインアプリのご紹介会社やチーム向けマイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> の可能性を証明する活動として、3arrows チーム内では、さまざまなアプリケーションの開発を試みています。<br />
<br />
今回はその成果のひとつである「ツイートイン」アプリを紹介します。「ツイートイン」アプリは、ソーシャルメディアの情報収集、チーム内共有、発信までのワークフローを支援することを目的としたアプリケーションです。ソーシャルメディアは Twitter を題材としています。<br />
<br />
「ツイートイン」アプリは、様々な条件で Twitter 上のツイートをウォッチできます。ダッシュボードスタイルを採用して、ひとつのページ内でまとめて情報収集できます。次の画面イメージは、Twitter 上の自社ブランドに対するツイートをウォッチしている様子を表しています。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXgOuvnADXUSmwn8I-KQnIxe1VE8hAbsqyWM9U4wD5hj1WnlrAWveKIU22KUs6hzfrypNWH_9o-n3cdxvR1nBdm7l-_Twst4DsooDfq413Sjffju3lwS34rConQvgH-2fMH2GbLOlcZJo/s1600/tweet-in-1.png" imageanchor="1"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXgOuvnADXUSmwn8I-KQnIxe1VE8hAbsqyWM9U4wD5hj1WnlrAWveKIU22KUs6hzfrypNWH_9o-n3cdxvR1nBdm7l-_Twst4DsooDfq413Sjffju3lwS34rConQvgH-2fMH2GbLOlcZJo/s400/tweet-in-1.png" width="372" /></a><br />
<br />
自社ブランドに対する質問や苦情、ファン、有益な情報を見つけたときは、そのツイートを引用する形でマイクロブログに投稿して、社内で情報共有できます。そして、続けてマイクロブログで、そのツイートへの対応をディスカッションして、その結果をマイクロブログから直接 Twitter へ発信できます。<br />
<br />
さらに、見つけたツイートのユーザやハッシュタグからマイクロブログを検索して、過去の話題を引き出すこともできます。例えば、あるユーザの自社ブランドに対する発言が、ネガティブからポジティブに変わったといった変化を追跡できる可能性が高まります。<br />
<br />
「ツイートイン」アプリは、使えば使うほど (マイクロブログに投稿が蓄積されるほど) 効果が高まる仕組みとなっていますので、ぜひ使ってみてください。ご要望がありましたらぜひフィードバックをお願いします。作者としては公式アプリに格上げしたい意気込みです。<br />
<br />
詳しく機能と使い方をご紹介します。<br />
<br />
<b>ウォッチ対象の追加</b><br />
<br />
ツイートのウォッチ対象は、①ユーザ、②リスト、③キーワードの 3とおりで、フォームから簡単に追加できます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir4mWD3Qrc8K1wUcK7nivInJcOe7T1OSjJ9vDlK4D1d6AQy17ch9X8axhhbXvwEeGA5aigIPvqkGb1XjTXgR6pfur2nuI1JopsO7F0oTXPSdXmdOI8AD0Tg-zv-aPymmygUvrz0UgGaWI/s1600/tweet-in-2.png" imageanchor="1"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir4mWD3Qrc8K1wUcK7nivInJcOe7T1OSjJ9vDlK4D1d6AQy17ch9X8axhhbXvwEeGA5aigIPvqkGb1XjTXgR6pfur2nuI1JopsO7F0oTXPSdXmdOI8AD0Tg-zv-aPymmygUvrz0UgGaWI/s400/tweet-in-2.png" width="400" /></a><br />
<br />
<b>ウォッチの内容とマイクロブログでの共有</b><br />
<br />
ウォッチ対象は、緑のボックスで表示し、最新 20件のツイートを表示します。また、新しいツイートが見つかると、メッセージでお知らせします。<br />
<br />
① タイトルは、ウォッチ対象を表し、クリックすると Twitter の該当ページを開きます。<br />
② ×アイコンをクリックすると、ウォッチ対象を削除します。<br />
③ (後述)<br />
④ 同じ対象をウォッチしているフォロワーをアイコンで表します。<br />
⑤ (後述)<br />
⑥ ユーザのアイコンをクリックすると、Twitter のプロフィールページを開きます。<br />
⑦ 日時をクリックすると、Twitter のツイートページを開きます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpzMwXCaSmSnFC43pot9uZscHawJeWt4u6v7BzZHKvRyc8-IAI7LmTJrB6QmusTmWXIgNrsFcBaHuillTYCukWSmcMePAZcShkLB5rbGGuaEfrYRXTW4n9XnjV0pAkDr5cPHLixp-gyPg/s1600/tweet-in-3.png" imageanchor="1"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpzMwXCaSmSnFC43pot9uZscHawJeWt4u6v7BzZHKvRyc8-IAI7LmTJrB6QmusTmWXIgNrsFcBaHuillTYCukWSmcMePAZcShkLB5rbGGuaEfrYRXTW4n9XnjV0pAkDr5cPHLixp-gyPg/s320/tweet-in-3.png" width="169" /></a><br />
<br />
③ 共通リンクをクリックすると、ツイートの URL と内容をマイクロブログに投稿します。このとき、ウォッチ対象をハッシュタグとして加えます。また、ツイートの内容に URL が含まれるときは <a href="http://socialprise-association.blogspot.com/2011/01/3arrows.html">サムネイル画像を表示</a> します。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtOEUquhjFhGf-q9nzcKbhS-EftNjbVlR81swHFvqXtWTFAgsQcjR3ibzuNp3ORjGLYesFWdShIelU_v4rt_-cHnk5-tWrQluc_pdf0jE3GYbGoxTfPuTsVkBoVYIj9-WgxXJxHGd2oc8/s1600/tweet-in-4.png" imageanchor="1"><img border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtOEUquhjFhGf-q9nzcKbhS-EftNjbVlR81swHFvqXtWTFAgsQcjR3ibzuNp3ORjGLYesFWdShIelU_v4rt_-cHnk5-tWrQluc_pdf0jE3GYbGoxTfPuTsVkBoVYIj9-WgxXJxHGd2oc8/s400/tweet-in-4.png" width="400" /></a><br />
<br />
⑤ ユーザ名やハッシュタグをクリックすると、該当ユーザやハッシュタグでマイクロブログを検索します。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYo3BLmovlWnxO1TjX_2DZeHrirKq1pjP3xkqVJjv4Tl1rNvv-4qC9zXUpFFQWcpUKAPZiTUGsmIvaaQexp0d9ha_58uabD1K1AvV2exmoFqHjkDMSU52K2CoJ47ufhXS6IN5nLPIzvc/s1600/tweet-in-5.png" imageanchor="1"><img border="0" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYo3BLmovlWnxO1TjX_2DZeHrirKq1pjP3xkqVJjv4Tl1rNvv-4qC9zXUpFFQWcpUKAPZiTUGsmIvaaQexp0d9ha_58uabD1K1AvV2exmoFqHjkDMSU52K2CoJ47ufhXS6IN5nLPIzvc/s400/tweet-in-5.png" width="400" /></a><br />
<br />
ツイートボタンをクリックすると、マイクロブログの投稿内容をそのまま Twitter に投稿できます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHADh0KAojrU3Fi3uz7eIlTznRvfWud_5kOd52H0nldCZDmeQ-7Bw6qkuYSKidbmOf0pgsZLJmJkxPIqxeu4OXsE20XgRatr7TB55TBPnQc67MNKLTHJWoR4gk0FnhYYxdgjEuGfwEPa8/s1600/20110128-2.png" imageanchor="1"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHADh0KAojrU3Fi3uz7eIlTznRvfWud_5kOd52H0nldCZDmeQ-7Bw6qkuYSKidbmOf0pgsZLJmJkxPIqxeu4OXsE20XgRatr7TB55TBPnQc67MNKLTHJWoR4gk0FnhYYxdgjEuGfwEPa8/s400/20110128-2.png" width="400" /></a><br />
<br />
「ツイートイン」アプリは、3arrows の管理者権限があれば、特別な条件なくいつでも導入できます。「ツイートイン」アプリの導入手順は、次のとおりです。<br />
<br />
(1) 次のページから tweet-in.xml ファイルをダウンロードしてください。<br />
<br />
<span style="font-size: large;"><a href="https://sites.google.com/a/socialprise.jp/3arrows-jp/downloads">https://sites.google.com/a/socialprise.jp/3arrows-jp/downloads</a></span><br />
<br />
(2) 3arrows にログインし、コントロールパネルのアプリケーションタブを選択します。<br />
(3) アプリケーションを追加するボタンをクリックし、テンプレートアプリを作成します。<br />
(4) テンプレートアプリをクリックして、アプリケーションの情報を表示します。<br />
(5) 編集するボタンをクリックして、オンラインエディタを開きます。<br />
(6) tweet-in.xml ファイルの内容をそのまま貼り付けて、保存ボタンをクリックします。<br />
(7) 実行ボタンをクリックすると、「ツイートイン」アプリを実行できます! <br />
<br />
導入手順は少し敷居が高くなっています。もしも分からないことがありましたら、お気軽にお問い合わせください。導入をお手伝いします。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-37827740752423027382011-01-28T13:18:00.002+09:002011-01-28T13:18:41.790+09:00本日 (1/28) より 3arrows は、試用キーなしで、どなたでもすぐに試用できるようになりました!会社やチーム向けマイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> は、<a href="http://socialprise-association.blogspot.com/2010_12_01_archive.html">α版の提供開始</a> からちょうど 1ヵ月が経過しました。そして、<span style="font-size: large; color: #cc0000;"><b>本日 (1/28) より 3arrows は、試用キーなしで、どなたでもすぐに試用できる</b></span> ようになりました。<br />
<br />
サインアップの手続きはとても簡単です。数分ですぐに利用を開始できます。会社や個人など利用条件に制限はありませんので、この機会にぜひご利用ください。もちろん、α版の期間中は無料でご利用いただけます。<br />
<br />
3arrows のサインアップは、トップページ右の試用するリンクからお願いします。<br />
<br />
<span style="font-size: large;"><a href="http://www.3arrows.jp/">http://www.3arrows.jp/</a></span><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAkWJdTIbhK2wyNae9As3NGfRiQrN91saMC4wp0MhiLGjWip9iIQ0kdPeScZFy6CJV_x6NCaOu8CMPNJJ__jTPlwuPbOP4Z4tpwIAU6W8p8_Oc4xPLZZK8hS4IE7kRso3e6o1bmGOryKs/s1600/20110128-4.png" imageanchor="1" style=""><img border="0" height="249" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAkWJdTIbhK2wyNae9As3NGfRiQrN91saMC4wp0MhiLGjWip9iIQ0kdPeScZFy6CJV_x6NCaOu8CMPNJJ__jTPlwuPbOP4Z4tpwIAU6W8p8_Oc4xPLZZK8hS4IE7kRso3e6o1bmGOryKs/s320/20110128-4.png" /></a><br />
<br />
任意のメールアドレスでサインアップできます。後は、ページの案内に従って、手続きをお願いします。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiqw1SWVqfsgxV52yWcHVBNwUD9KseCjNUCRd7he8YmSor-gwAnqMWjYSBTYjLGuJHUo_HqfztL-PnJ9WC22_kP9xQGc4rCKEQ3gHUQAyweCJtlkGni2CVjn81pOdZP79A49Q2qMwF9wY/s1600/20110128-5.png" imageanchor="1" style=""><img border="0" height="225" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiqw1SWVqfsgxV52yWcHVBNwUD9KseCjNUCRd7he8YmSor-gwAnqMWjYSBTYjLGuJHUo_HqfztL-PnJ9WC22_kP9xQGc4rCKEQ3gHUQAyweCJtlkGni2CVjn81pOdZP79A49Q2qMwF9wY/s320/20110128-5.png" /></a><br />
<br />
この 1ヵ月の間、多くのフィードバックを頂き、いろいろ学ぶことができました。まだまだ、頂いた要望をすべて実現してお届けできていませんが、1つ1つ丁寧に対応していきますので、今後もご支援よろしくお願いします。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-6478255101371122952011-01-28T12:36:00.002+09:002011-01-28T12:36:43.315+09:003arrows アップデート! ユーザーからのご要望を受けて、広報活動を支援するツイートボタンの設置、各ユーザによるプロフィールの編集を追加しました本日(1/28)、会社やチーム向けマイクロブログ <a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。今回のアップデートでは、ユーザーからのご要望を受けて、2つの機能を追加しました。<br />
<br />
<b>(1) 広報活動を支援するツイートボタンの設置</b><br />
<br />
マイクロブログの各投稿にツイートボタンを設置しました。ツイートボタンをクリックすると、マイクロブログの投稿内容をそのまま Twitter に投稿できます。<br />
<br />
社内メンバーとマイクロブログを使って Twitter の告知内容をディスカッションしながら下書きを作り、メンバーの承認を得て、ツイートボタンで Twitter へ投稿するといった流れの使い方ができるようになりました。<br />
<br />
社内やチームの広報活動にご活用ください。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHADh0KAojrU3Fi3uz7eIlTznRvfWud_5kOd52H0nldCZDmeQ-7Bw6qkuYSKidbmOf0pgsZLJmJkxPIqxeu4OXsE20XgRatr7TB55TBPnQc67MNKLTHJWoR4gk0FnhYYxdgjEuGfwEPa8/s1600/20110128-2.png" imageanchor="1"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHADh0KAojrU3Fi3uz7eIlTznRvfWud_5kOd52H0nldCZDmeQ-7Bw6qkuYSKidbmOf0pgsZLJmJkxPIqxeu4OXsE20XgRatr7TB55TBPnQc67MNKLTHJWoR4gk0FnhYYxdgjEuGfwEPa8/s400/20110128-2.png" width="400" /></a><br />
<br />
<b>(2) 各ユーザによるプロフィールの編集</b><br />
<br />
各ユーザが直接プロフィールを編集できるようにしました。マイクロブログの右メニューの設定リンクをクリックすると、自己プロフィールを編集できます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgun71T-o_bZtKOUFE8E4sErPSITv7bzKXyMxV7znVZN70Sasrimy7yAcTvA_Sj6MPEHsdOfgvUnWrG3YrQcRC5XRmVZ0qURgUxb4afinUe1DGcxxjYRCCx40Z11I_bivQrT1N9WsEbIgo/s1600/20110128-3.png" imageanchor="1"><img border="0" height="58" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgun71T-o_bZtKOUFE8E4sErPSITv7bzKXyMxV7znVZN70Sasrimy7yAcTvA_Sj6MPEHsdOfgvUnWrG3YrQcRC5XRmVZ0qURgUxb4afinUe1DGcxxjYRCCx40Z11I_bivQrT1N9WsEbIgo/s400/20110128-3.png" width="400" /></a><br />
<br />
3arrows は「管理者があらゆることをコントロールできること」を原則に掲げて取り組んでいますが、自己紹介やアイコンという項目は、ユーザの裁量によって決定したいこともあることを学びました。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhExFDH7rc1atu55Zq5wWnmab0snyZthzrrEK86rZfKfppOPpkNFnbSJgY4X1UlJIJLBRxeXR4YIsqAxytWWi29FWw0LJn8RKCUSLcHShFnbrzR-2Y-EDWRH9EK_C9a8ZrqFxHJQI0AHlg/s1600/20110128-1.png" imageanchor="1"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhExFDH7rc1atu55Zq5wWnmab0snyZthzrrEK86rZfKfppOPpkNFnbSJgY4X1UlJIJLBRxeXR4YIsqAxytWWi29FWw0LJn8RKCUSLcHShFnbrzR-2Y-EDWRH9EK_C9a8ZrqFxHJQI0AHlg/s400/20110128-1.png" width="400" /></a><br />
<br />
もちろん、引き続き、管理者による各ユーザのプロフィール編集はサポートしますので、管理者がコントロールできる範囲に変わりはありません。<br />
<br />
<span style="font-size: large; color: #cc0000;"><b>マイクロブログ、チェックイン、日報アプリのアップデートをお願いします。</b></span><br />
<br />
管理者の方は、コントロールパネルのアプリケーションタブにアクセスして、各アプリケーションを更新してください。「更新する」リンクをクリックすると、アプリケーションを更新できます。「最新」と表示されれば、アップデートの完了です。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtsEvh2rWhKsfOt5Q1HjdetuXBiwwVxqbfw8CM6xMj0llD9Wb8Wz6z3Dh_LvI7UshkpS17QaxdWJkP0r5vpGRI91C2_owdMCzIJV3axx2tl7xexWEFewl9IYvOnudOnSQ6_EWq0R72BpE/s1600/IMG_0025.png" imageanchor="1" style="margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtsEvh2rWhKsfOt5Q1HjdetuXBiwwVxqbfw8CM6xMj0llD9Wb8Wz6z3Dh_LvI7UshkpS17QaxdWJkP0r5vpGRI91C2_owdMCzIJV3axx2tl7xexWEFewl9IYvOnudOnSQ6_EWq0R72BpE/s400/IMG_0025.png" width="400" /></a><br />
<br />
<a href="http://www.3arrows.jp/">3arrows</a> は αテストのユーザーを募集しています。もちろん、テストの期間中は無料でご利用いただけます。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-69257567313307720852011-01-24T10:43:00.002+09:002011-01-24T10:43:43.733+09:003arrows アップデート! お客様のドメイン ID をサブドメインとして、よりセキュアな環境でご利用いただけるようになりました!1月21日(金)、会社やチームなどプライベート向けマイクロブログ/コラボレーションサービス <a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。<br />
<br />
<b>(1) 各ドメイン ID のサブドメイン化</b><br />
<br />
今回のアップデートにより、お客様のドメイン ID がサブドメインとなり、よりセキュアな環境でご利用いただけるようになります。<br />
<br />
従来のログイン URL<br />
http://www.3arrows.jp/a/{お客様のドメイン ID}/<br />
<br />
新しいログイン URL<br />
http://{お客様のドメイン ID}.3arrows.jp/a/<br />
<br />
今回のアップデート以降、従来の URL は新しい URL にリダイレクトされます。そのため、お客様による対応は特に必要ありません。<br />
<br />
<b>(2) マイクロブログ、チェックイン、日報アプリの改善</b><br />
<br />
各アプリにおいて、エラー検出とメッセージの内容を見直し、万が一エラーが発生したとき、お客様がそのエラーの内容を把握しやすくなりました。<br />
<br />
<b>(3) マイクロブログのサムネイル表示</b><br />
<br />
マイクロブログのサムネイル表示対象を拡大しました。赤字が追加分です。<br />
<br />
<b>ドキュメント:</b> PDF, Word, Excel, Power Point, Cacoo, SlideShare, JPEG, GIF, PNG <br />
<b>動画:</b> Ustream, YouTube, <b style="color: #990000;">Vimeo</b><br />
<b>写真:</b> Flickr, Picasa, 壁紙.com, フォト蔵, TwitPic, Yfrog<br />
<b>地図:</b> Google Maps<br />
<b>ニュース:</b> Teckwave, Web 担当者 Forum, CNET Japan <br />
<b>レビュー:</b> DIME, ブクログ, coneco.net, MonoColle<br />
<b>コラム:</b> ダイヤモンド・オンライン<br />
<b>グルメ:</b> ホットペッパー, ぐるなび, 食べログ<br />
<b>クーポン:</b> ポンパレード, グルーポン, Piku<br />
<b>ファッション:</b> ママ・マーケット, BUYMA, ホットペッパービューティー, ZOZOTOWN<br />
<b>通販:</b> アイテムポスト, カラメル<br />
<b>自動車:</b> グーネット, グーワールド, グーバイク<br />
<b>Q & A:</b> 教えて! goo<br />
<b>ブログ:</b> goo ブログ, Blogger<br />
<b>結婚:</b> ウエディングパーク<br />
<b>コミュニティ:</b> cooboo<br />
<b>エンタメ:</b> 講談社コミックプラス<br />
<br />
<span style="font-size: large; color: #cc0000;"><b>マイクロブログ、チェックイン、日報アプリのアップデートとお願いします。</b></span> 管理者の方は、コントロールパネルのアプリケーションタブにアクセスして、各アプリケーションを更新してください。「更新する」リンクをクリックすると、アプリケーションを更新できます。「最新」と表示されれば、アップデートの完了です。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtsEvh2rWhKsfOt5Q1HjdetuXBiwwVxqbfw8CM6xMj0llD9Wb8Wz6z3Dh_LvI7UshkpS17QaxdWJkP0r5vpGRI91C2_owdMCzIJV3axx2tl7xexWEFewl9IYvOnudOnSQ6_EWq0R72BpE/s1600/IMG_0025.png" imageanchor="1" style="margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtsEvh2rWhKsfOt5Q1HjdetuXBiwwVxqbfw8CM6xMj0llD9Wb8Wz6z3Dh_LvI7UshkpS17QaxdWJkP0r5vpGRI91C2_owdMCzIJV3axx2tl7xexWEFewl9IYvOnudOnSQ6_EWq0R72BpE/s400/IMG_0025.png" width="400" /></a><br />
<br />
<a href="http://www.3arrows.jp/">3arrows</a> では、α版の試用ユーザを幅広く募集しています。試用に特別な条件はありません。ご希望の方に試用キーを発行する形をとっています。試用をご希望の方は <a href="http://www.3arrows.jp/">3arrows</a> トップの <a href="https://www.heartrails.com/company/inquiry.html?service=3arrows.trial">試用を申し込む</a> からお申し込みください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0tag:blogger.com,1999:blog-1509463847369212828.post-53135102624458044162011-01-12T13:41:00.000+09:002011-01-12T13:41:49.401+09:003arrows アップデート! ログイン有効期限を設定できます! Google Reader からマイクロブログへの投稿など、マイクロブログと日報アプリを改善しました!本日(1/12)、会社やチームなどプライベート向けマイクロブログ/コラボレーションサービス <a href="http://www.3arrows.jp/">3arrows</a> をアップデートしました。<br />
<br />
<b>(1) ログインの有効期限の指定</b><br />
<br />
ログインの有効期限を指定できるようにしました。1時間、3時間、6時間、12時間、1日、3日、7日から選択できます。初期値は 1日です。コントロールパネルのドメインタブから指定できます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSYEsVSKf-YHUppJuDkGVKsKV4_EU2aRGWtXOirNWPNxOGWYy07G4LN82GuqZ-3DQZpN3M66kCwObCoVd3kFTqPWWLlHCtRO9kBNB1fCeY5PgwrK9whJzNplEPAV-bJiBjX1RQ8EK1YGs/s1600/20110112-1.gif" imageanchor="1"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSYEsVSKf-YHUppJuDkGVKsKV4_EU2aRGWtXOirNWPNxOGWYy07G4LN82GuqZ-3DQZpN3M66kCwObCoVd3kFTqPWWLlHCtRO9kBNB1fCeY5PgwrK9whJzNplEPAV-bJiBjX1RQ8EK1YGs/s400/20110112-1.gif" width="400" /></a><br />
<br />
<b>(2) マイクロブログへ Google Reader からの共有</b><br />
<br />
Google Reader で読んでいるブログ記事を、その場で直接マイクロブログに投稿できるようにしました。マイクロブログの右上のメニューからツールをクリックすると、Google Reader のカスタムリンクの設定が表示されますので、 <br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAWN7kMRYRowG5sAJ5bSYbpXGDBEnyOK9u0z1skWHBuPMYy97kwwarHiZ2LYucyVFzpiSRSpUFcdOGnRQ5Kmj9xbEw0lClPM_kIBoWNF3hMUAZcJYDBGm6wRtj3WsDtYP36gWIHYaKYGY/s1600/20110112-2.gif" imageanchor="1"><img border="0" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAWN7kMRYRowG5sAJ5bSYbpXGDBEnyOK9u0z1skWHBuPMYy97kwwarHiZ2LYucyVFzpiSRSpUFcdOGnRQ5Kmj9xbEw0lClPM_kIBoWNF3hMUAZcJYDBGm6wRtj3WsDtYP36gWIHYaKYGY/s400/20110112-2.gif" width="400" /></a><br />
<br />
Google リーダー <a href="http://www.google.co.jp/reader/settings">設定</a> の送信先タブを開いて、3arrows のカスタムリンクを作成してください。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1G8W4dwYAQBiVl0BPu8G1yBAthgTIokHXRNDyZwHO4qkfzdGF7n04ZZ_MdnDmlQPiYNt0Zej4iddZEfOPvWTIGk4iZUzvvb5r_kZ33ZVeTBWaIfE4vRq-CsPtTp_jM9Wfd_JmHkKxD18/s1600/20110112-3.gif" imageanchor="1"><img border="0" height="158" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1G8W4dwYAQBiVl0BPu8G1yBAthgTIokHXRNDyZwHO4qkfzdGF7n04ZZ_MdnDmlQPiYNt0Zej4iddZEfOPvWTIGk4iZUzvvb5r_kZ33ZVeTBWaIfE4vRq-CsPtTp_jM9Wfd_JmHkKxD18/s400/20110112-3.gif" width="400" /></a><br />
<br />
カスタムリンクを作成すると、ブログ記事のメニューの送信先に 3arrows が追加されます。この 3arrows をクリックすると、このブログ記事をマイクロブログに投稿できます。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwqL6tlqbljFGDLXkxDdYx8-Ratwf0t2wyRGk9iDXYjJzipt-0edBdwnHLAC5sWNxZrhxbpy1MBLFt7-fdEG__Kd-Gm2mwH581IIR3g0RZFXETDqgpNOgZJ9utMkfgJ-H6DMGloK9w8H4/s1600/20110112-4.gif" imageanchor="1"><img border="0" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwqL6tlqbljFGDLXkxDdYx8-Ratwf0t2wyRGk9iDXYjJzipt-0edBdwnHLAC5sWNxZrhxbpy1MBLFt7-fdEG__Kd-Gm2mwH581IIR3g0RZFXETDqgpNOgZJ9utMkfgJ-H6DMGloK9w8H4/s400/20110112-4.gif" width="400" /></a><br />
<br />
<b>(3) マイクロブログのサムネイル表示</b><br />
<br />
マイクロブログのサムネイル表示対象を拡大しました。赤字が追加分です。<br />
<br />
<b>ドキュメント:</b> PDF, Word, Excel, Power Point, Cacoo, SlideShare, <b style="color: #990000;">JPEG</b>, <b style="color: #990000;">GIF</b>, <b style="color: #990000;">PNG</b> <br />
<b>動画:</b> Ustream, YouTube<br />
<b>写真:</b> Flickr, Picasa, 壁紙.com, フォト蔵, TwitPic, Yfrog<br />
<b>地図:</b> Google Maps<br />
<b>ニュース:</b> Teckwave, Web 担当者 Forum, <b style="color: #990000;">CNET Japan</b> <br />
<b>レビュー:</b> DIME, ブクログ, coneco.net, MonoColle<br />
<b>コラム:</b> <b style="color: #990000;">ダイヤモンド・オンライン</b><br />
<b>グルメ:</b> ホットペッパー, ぐるなび, 食べログ<br />
<b>クーポン:</b> ポンパレード, グルーポン, Piku<br />
<b>ファッション:</b> ママ・マーケット, BUYMA, ホットペッパービューティー, ZOZOTOWN<br />
<b>通販:</b> アイテムポスト, カラメル<br />
<b>自動車:</b> グーネット, グーワールド, グーバイク<br />
<b>Q & A:</b> 教えて! goo<br />
<b>ブログ:</b> goo ブログ, <b style="color: #990000;">Blogger</b><br />
<b>結婚:</b> ウエディングパーク<br />
<b>コミュニティ:</b> cooboo<br />
<b>エンタメ:</b> 講談社コミックプラス<br />
<br />
<b>(4) 日報の改善</b><br />
<br />
日報のメールに出社時刻、退社時刻、勤務時間を含め、かつ読みやすく改善しました。また、いくつかの不具合を修正しました。<br />
<br />
(2) と (4) のアップデートを反映するには、コントロールパネルで、各アプリケーションを更新する必要があります。管理者の方は、コントロールパネルのアプリケーションタブにアクセスして、各アプリケーションを更新してください。「更新する」リンクをクリックすると、アプリケーションを更新できます。「最新」と表示されれば、アップデートの完了です。<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtsEvh2rWhKsfOt5Q1HjdetuXBiwwVxqbfw8CM6xMj0llD9Wb8Wz6z3Dh_LvI7UshkpS17QaxdWJkP0r5vpGRI91C2_owdMCzIJV3axx2tl7xexWEFewl9IYvOnudOnSQ6_EWq0R72BpE/s1600/IMG_0025.png" imageanchor="1" style="margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtsEvh2rWhKsfOt5Q1HjdetuXBiwwVxqbfw8CM6xMj0llD9Wb8Wz6z3Dh_LvI7UshkpS17QaxdWJkP0r5vpGRI91C2_owdMCzIJV3axx2tl7xexWEFewl9IYvOnudOnSQ6_EWq0R72BpE/s400/IMG_0025.png" width="400" /></a><br />
<br />
<a href="http://www.3arrows.jp/">3arrows</a> では、α版の試用ユーザを幅広く募集しています。試用に特別な条件はありません。ご希望の方に試用キーを発行する形をとっています。試用をご希望の方は <a href="http://www.3arrows.jp/">3arrows</a> トップの <a href="https://www.heartrails.com/company/inquiry.html?service=3arrows.trial">試用を申し込む</a> からお申し込みください。Anonymoushttp://www.blogger.com/profile/15609076111671110079noreply@blogger.com0