<< 12月 2010 | Home | 2月 2011 >>

WiMAXに加入しました - 実質2,418円/月という格安プランにオドロキ

これまでWiFiのない環境ではiPhoneでMyWiを使ってテザリングしていました。
電波の良い所ではソフトバンクのネットワークも快調で、1Mbpsを超える快適な速度を実現できます。

しかし、ちょっとでも混み合っていると接続が不安定になったり、www.yahoo.co.jpへのpingが10,000msを超えるようなとんでもない遅延が発生したりするのがちょっと悩みでした。

で、先日価格.comで初年度実質月額2418円でWiMAXが使えるというキャンペーンを見つけたので申し込んでみました。
NECのWiMAXルーターAtermWM3500Rが無料、1年の契約縛り、プロバイダはBiglobe(UQ WIMAXのMVNO回線)という条件です。
申し込んだら3,4日ほどでルーターが到着しました。

Aterm WM3500R

このルーターは電池が公称8時間持つというスタミナ抜群の品物。まだがっつり使っているわけではありませんが良い感じです。

実効速度はMacで3Mbps〜6Mbpsくらい、iPhoneからだと1.6Mbps〜2.4Mbpsくらい出ています。場所によってはもっと速度がでるみたいです。

出先で作業するときに便利なのはもちろんのこと、iPhoneと一緒に持ち歩けばiPhoneのパケット料金を節約できます。毎日充電して持ち歩くのはやや面倒ですが、うまく運用すれば実質の通信料金はiPhoneのパケット代が浮いたお金でカバーできる計算です(iPhone 4 / 3GS:パケットし放題 for スマートフォンに切り替えた場合)。

また、WM3500RはUSBで接続するとドライバなしでEthernetアダプタとして認識してくれます。
ダイヤルアップ接続させる手間がないのももうれしいです。


お勧めなのでアフィリエイトのリンクを以下に張っておきます。リンク先の「WiMAX/3Gデータ通信」のカテゴリから地域を選ぶとBiglobeのキャンペーンにたどり着けます。

価格.com ブロードバンド

関連記事:
WiMAXを使って約1年 - 侍ズム
docomoのXi(LTE)を契約 - L-09C - 侍ズム

このエントリーをはてなブックマークに追加   

「小悪魔女子大生のサーバエンジニア日記」を頂きました

「小悪魔女子大生のサーバエンジニア日記」を献本頂きました。
技術評論社の池本さん、いつもありがとうございます。




同名のブログ、「小悪魔女子大生のサーバエンジニア日記」を書籍化したもので、サーバエンジニアとして活躍する女子大生、@aicoakumaの奮闘記です。
監修はなんとJUNETで有名な村井純先生!

インターネット(TCP/IP、DNS、MACアドレス、ARP)、メール(POP、IMAP、SMTP-AUTH)、WWW(Webサーバ、バーチャルホスト、SSL)、サーバ管理(サーバエンジニア、ssh、サーバへのアタック、ホスト認証)といったキーワードをカバーしています。

ほぼ全ページにわたって独特なウマヘタ系の可愛いイラストが満載。インターネットの要素技術がわかりやすく解説されています。「わかっている人が書いた本」じゃなくて「わからない人が調べて分かったことを書いた本」なのでとても説明が丁寧なのが良いです。

私は10年余りIT業界にいますが、幸い社会人になったときには既にGoogleがあったので、なんでも覚えておく必要はなく知らないことがあったら都度調べながら乗り越えてきました。しかし、体系的に学んでない分、現場で困ることもしばしば。
特にネットワーク周りはあまり得意でなく、第二種(今は基本情報処理だっけ?)が一応合格する程度の知識しかありません。パラパラっとこの本を見させて頂いて恥ずかしながらARPという単語を初めて知りました(汗)。
モンハンで遊ぶ時間を削ってじっくり読んで勉強させてもらおうと思います。

ちなみに今楽天で予約">すると先着1000冊までサーバエンジニア必携のねじ回しがオマケで付いてくるそうです。欲しい・・・
amazonでは壁紙を貰えるそうです。
小悪魔女子大生のサーバエンジニア日記 » Blog Archive » amazonキャンペーンのお知らせ!

関連記事:
小悪魔女子大生のサーバエンジニア日記 » Blog Archive » 小悪魔女子大生のサーバエンジニア日記、書籍化します!
404 Blog Not Found:小抜きで悪魔的! - 書評 - 小悪魔女子大生のサーバエンジニア日記

このエントリーをはてなブックマークに追加   

Twitter4J 2.1.11 リリース - ストリーミングAPI サポートを安定化

Twitter API の Java バインディングライブラリ、Twitter4J の最新版をリリースしました。
http://twitter4j.org/


特に新機能はありませんがストリーミングAPI利用時に特定の条件でCPU使用率が異常に上がる現象などが修正されています。ストリーミングAPIを利用している方はアップデートをお勧めします。
すでに Maven Central Repository にも入っています。

スナップショットビルドの公開時など、最新情報は @t4j_news で配信していますので興味のある方はフォローしてください。
Follow t4j_news on Twitter

twitter4j 2.1.11 JavaDoc
サポートAPIリスト
Release Notes - Twitter4J - Version 2.1.11

Bug

  • [TFJ-504] - RateLimitStatusListener.onRateLimitReached never gets called when receiving 420:ENHANCE_YOUR_CLAIM
  • [TFJ-511] - async.dispatherImpl property doesn't take effect
  • [TFJ-514] - TwitterStream.cleanUp() should close associated connection gracefully
  • [TFJ-516] - cpu usage spike upon streaming API recoonection
  • [TFJ-521] - Site Streams support is not aware of "list_member_added" and "list_member_removed" event
  • [TFJ-522] - Twitter instance created with TwitterFactory().getInstance(auth) fails to create valid OAuth signature
  • [TFJ-523] - TwitterStream#equals() always return true, unable to put instances in collection
  • [TFJ-524] - User Stream support is not aware of "list_member_added" and "list_member_removed" event
  • [TFJ-525] - TwitterStreams fails to shutdown internal thread in certain condition
  • [TFJ-526] - TimeSpanConverterTest is depending on timezone
  • [TFJ-527] - possible dispatcher leakage in TwitterStream
  • [TFJ-528] - TwitterStream#cleanUp() fails to close internal thread with Apache HttpClient support or onAndroid platform

Improvement

  • [TFJ-506] - instantiating ImageUpload associated with a Twitter instance is difficult
  • [TFJ-507] - ability to prettify debug output
  • [TFJ-509] - recognize list_user_unsubscribed events in streams
  • [TFJ-510] - Connection: close header is necessary only on Android platform
  • [TFJ-512] - make updateImageProfile compatible with Google App Engine
  • [TFJ-513] - *UN*deprecate TwitterFactory.getInstance(Authorization)
  • [TFJ-515] - make TwittertStream more debuggable
  • [TFJ-517] - add more verbose message to TwitterException when return code is 401
  • [TFJ-518] - remove twitter4j.internal.http.HttpClientImpl.setXXX methods
  • [TFJ-519] - include streaming API error message details in TwitterException
  • [TFJ-530] - korean resource for TimeSpanConverter

New Feature

  • [TFJ-508] - include links to google with error code in exception message
  • [TFJ-529] - support Site streams unfollow event

Task

  • [TFJ-520] - remove updateProfile(String name, String email, String url, String location, String description)

関連記事:
もう一つのTwitpocalypse:ダイレクトメッセージIDのオーバーフロー - 侍ズム
Twitter4J 2.1.8 リリース - Site Streams を含む全ての公式 API をサポート - 侍ズム
Twitter4J 2.1.7 リリース - 全ての REST API をサポート - 侍ズム
Twitter4J 2.1.3 リリース - YFrog/TwitPic, UserStream をサポート - 侍ズム
Twitter4J 2.1.2 リリース - 最新APIセットをサポート - 侍ズム
Twitter4J 2.1.1 リリース - 最新APIセットをサポート、パフォーマンス/Android対応を改善 - 侍ズム
Twitter4J 2.1.0 リリース - 最新APIセットをサポート、パフォーマンスを大幅改善 - 侍ズム
Twitter4J 2.0.10 リリース - geo location API, retweet API をサポート - 侍ズム
Twitter4J 2.0.7 リリース - 侍ズム
Twitter4J 2.0.6 リリース - 侍ズム
Twitter4J 2.0.5 リリース - 侍ズム
Twitter4J 2.0.4 リリース - ストリーミング API をサポート
Twitter4J 2.0.3 リリース - JDK1.4.2 互換性を確認 - 侍ズム
Twitter4J 2.0.2 リリース - trends API や gzip 圧縮をサポート - 侍ズム
Google App Engine 対応 の Twitter4J 2.0.1 リリース - 侍ズム
Twitter4J 1.1.8 リリース - 侍ズム
Twitter4J 1.1.5 リリース
Twitter4J 1.1.1 リリース
Twitter4J 1.1.0 リリース
Twitter4J 1.0.6 リリース
Twitter4J 1.0.5 リリース
Twitter4J 1.0.4 リリース
Twitter4J 自前 maven リポジトリを公開
Twitter4J 1.0.3 リリース
Google Calendar と Twitter を連携 - Twittercal
Suitter Public beta 1.0
メールで Twitter! - TwitterMail.com
Twitter4J 1.0.2 リリース
Twitter4J 1.0.1 リリース
Twitter4J 1.0 リリース

タグ :
このエントリーをはてなブックマークに追加   

masuidriveと学ぶ「60分で覚えるAndroidアプリの作り方」に参加 -「Androidの本当にあった怖い話」もLTしました

コンテンツワン様主催の「masuidriveと学ぶ60分で覚えるAndroidアプリの作り方」に参加してきました。
masuidriveと学ぶ「60分で覚えるAndroidアプリの作り方」 : ATND

風呂グラマーとして有名で現在Appcelaratorにお勤めの@masuidriveさんによるAndroidの基礎的な講座です。

Appcelarator 発の JavaScript によるモバイルアプリ開発環境、Titanium Mobile の紹介を期待していましたが Android アプリ開発の基本、Intent や Service の使い方の解説がメインでした。

Android に関連する LT 発表の枠があったので私は Twitter4J の開発で得た Java と Android の違いに関するノウハウについて話をしてきました。



Ustream の録画はこちらでご覧いただけます。私がしゃべっているのは01:05:00くらいから。
Androidseminar 01/17/11 04:11AM, Androidseminar 01/17/11 04:11AM siroi_mogutan on USTREAM. The Web

かなり駆け足の説明となってしまいましたが Java と Dalvik の非互換性に潜む罠について、Twitter4J で学んだことをお伝えでき、それなりに楽しんでいただけたのではないかと思います。
参加者はおそらくほとんどがJavaの開発に携わっている人でTwitter4Jを使っている(使ったことがある)方が1割くらいはいたでしょうか?嬉しい限りです。

Java と Dalvik の非互換部分についてはもう少しネタがあるのでもう少しまとめて別の機会でまたお話するか、ブログ記事にまとめたいなぁ・・・。

また懇親会ではたくさんの方とお話をすることができて有意義でした。このような機会を提供してくださったコンテンツワン様、ありがとうございました。

関連記事:
Togetter - 「2011/01/17 masuidriveと学ぶ「60分で覚えるAndroidアプリの作り方」
はてなブックマーク - Androidの本当にあった怖い話
masuidriveと学ぶ「60分で覚えるAndroidアプリの作り方」参加メモ - katz's adversaria

このエントリーをはてなブックマークに追加   

Dropquest 2011 で Dropbox に 1GB の追加容量をゲット!

lifehackerのサイトで知ったのですが、Dropboxが Dropquest 2011 というイベントをやっています。
クイズを解いていくと次のステップのURLが分かって・・・というWeb上の宝探しのようなものです。
ステップを追うごとに少しずつ追加容量を得られ、最後まで進むと1GB容量が追加されることになります。
Dropquest Awards Up to 1 GB of Dropbox Space Through an Online Scavenger Hunt

だんだんと難しくなってくるので私はへこたれて途中からGoogleさんに答えを聞いてしまいました。

Dropboxはオンラインでファイルをバックアップ、共有が簡単にできる便利なサービスです。まだお使いでない方はこちらのリンクからどうぞ。私からの紹介扱いでいきなり256mbの追加容量が貰えます。

このエントリーをはてなブックマークに追加   

JIRA Git Plugin のインストール

JIRA を Git と連携させるプラグインがgithubに対応したのでインストールしてみました。
JIRA Git Plugin - JIRA - Atlassian Plugin Exchange


インストール方法はWikiに書いてありますが以下にざっと日本語で書いておきます。

1. JAR ファイルをダウンロードして atlassian-jira/WEB-INF/lib/ 以下に配置する
2. JGitをダウンロードして WEB-INF/lib 以下に配置する
3. WEB-INF/lib 以下の jsch-*.jar を削除する
4. JSchをダウンロードして WEB-INF/lib 以下に配置する
5. JIRA を再起動する

6. 管理画面を開き、git Repositoriesリンクよりリポジトリを設定する。

Twitter4Jのgithubへの接続設定

以上。

com.jcraft.jsch.JSchException: UnknownHostKey という例外が発生するという問題がありましたが ~/.ssh/known_hosts に github.com へのエントリを追加した上で Jira を再起動したら抑止できました。

インストールがうまくいくと以下のように Git commits というタブが現れて issue にひもつくコミットが表示されるようになります。


[#TFJ-516] cpu usage spike upon streaming API recoonection - JIRA

最近いじってるコードは全部githubにあるのでfisheyeはしばらくいらないかも??

タグ :
このエントリーをはてなブックマークに追加   

FishEye 2.4.4 のインストールとアップグレード

FishEye はJBoss や Apache で使われているバグトラッキングシステム Jira を開発している Atlassian の製品で、ソースコードリポジトリの変更履歴を確認したり、統計情報を確認したりできる Web アプリケーションです。
例によってオープンソース製品には無償のライセンスが用意されていてJBoss.orgでも使われています。

私は 自宅の Jira と連携させて使っています。

昨日セキュリティアドバイザリが出ていたので急遽アップデートしました。
FishEye and Crucible Security Advisory 2011-01-12 - FishEye 2.4 - Atlassian Documentation - Confluence

インストールガイドは以下のページにあります。
FishEye 2.4 Upgrade Guide - FishEye 2.4 - Atlassian Documentation - Confluence

1. FishEye 2.4.4 のダウンロード
ダウンロードページより zip アーカイブをダウンロードします。FishEye はどういうわけか Jira と違って JBoss や WLS 等の既存のアプリケーションサーバにデプロイすることはできず、Jetty を内蔵するスタンドアロン版しかありません。

FishEye Downloads

2. FishEye インストールディレクトリの作成
FishEye は自己完結型のディレクトリ構成を持っていますが、そのまま利用するとアップグレードが面倒になるため、運用環境ではデータは別ディレクトリに配置することを推奨しています

私は fisheye ディレクトリを掘ってありますのですんなりアップグレードできそうです。

3. FISHEYE_INST / FISHEYE_HOME の設定
fisheyectl.sh を編集して FISHEYE_INST と FISHEYE_HOME 環境変数を設定します。

FISHEYE_INST=/Users/yusukey/server/fisheye
FISHEYE_HOME=/Users/yusukey/server/fisheye-2.4.4


4. ライセンスの設定(アップグレードの場合は不要)
4.a. FishEye を起動
まずは起動してからセットアップします。

今回はアップグレードにまつわるエラーが発生しました。
com.atlassian.applinks.host.OsgiServiceProxyFactory$ServiceTimeoutExceeded Exception Upon Upgrading to Fisheye 2.4 - Fisheye Knowledge Base - Atlassian Documentation - Confluence
jarファイルの重複はなかったのですが FISHEYE_HOME/var/plugins/config/pluginstate.properties の false と設定されているプラグインを全てコメントアウトすることで対処できました。


$ cd $FISHEYE_HOME/bin
./run.sh
INFO - FishEye/Crucible 2.4.4 (20110111045701), Built on 2011-01-11
INFO - FishEye: Open Source License registered to Yusuke Yamamoto.
INFO - Periodic polling for software updates is enabled (interval is 1 day).
INFO - Starting plugin system...
INFO - Starting database...
...
INFO -
Could not find a FishEye license.
Please visit http://my.atlassian.com and quote ****-****-****-**** to obtain a valid license,
or visit http://www.atlassian.com/fisheye/renew to renew your license.
INFO - Periodic polling for software updates is disabled.
INFO - Server started on :8060 (http) (control port on 127.0.0.1:8059)
WARN - No license info available, not starting FishEye repositories.


起動すると Server ID という 16 ケタの16進数の ID が発行されます。
これを控えておき、http://my.atlassian.com で評価用ライセンスを取得します。

4.b. ライセンスの入力
http://my.atlassian.com でライセンスキーを取得できたら http://ホスト:8060にアクセスし、ライセンスキーを入力します。

ライセンスキーを入力


ライセンスが受け入れられたところ

5. リポジトリのセットアップ(アップグレードの場合は不要)
http://ホスト:8060/adminにアクセスすると、管理画面になります。

fisheye 管理画面
[Repository List > Add repository] より、リポジトリを追加するフォームが表示されます。
Name*: リポジトリの名前
Repository type: SVN, CVS, perforce の中から選択
SVN URL*: プロトコルスキームから始まるリポジトリのパスを入力
Path: リポジトリのうち特定のディレクトリだけを fisheye で表示したい場合は入力
trunk/branch/tag structure: /project/trunk/..., /project/branches/NAME/..., /project/tags/NAME/...


リポジトリ追加フォーム

フォームに必要事項を記入したら [add] でリポジトリの追加が完了。
自動的にリポジトリのスキャンが始まります。

6. コンテクストパス、ajp コネクタのセットアップ(アップグレードの場合は不要)
FishEye はデフォルトでルートコンテキストで動作するようです。
今回は FishEye 用のサブドメインを立てるのではなく、http://yusuke.homeip.net/fisheye/ というパスでアクセスできるようにしたいのでコンテクストパスを設定することにしました。
コンテクストパスやその他 Web サーバの設定は [Server Settings > Web Server > Edit settings] より行えます。
以下のように設定しました。
WebContext: fisheye
Http Bind Address: 8060
Ajp13 Bind Address: 8069

Bind Address のところは特定の NIC だけでリスンてほしければ IPアドレス:ポート のフォーマットで入力すればokです。
今回は Wifi でも Ethernet でもリスンして欲しいのでポートだけ入力しました。

7. 起動スクリプト設定
デフォルトではヒープサイズや GC ログの設定がされていないようです。
最低限どれくらいのヒープサイズで動くのかわかりませんのでざっくりと 64mb に設定し、-XX:+PrintGCTimeSamps オプションで GC 状況のログを取っておくことにしました。
設定は fisheyectl.sh に書きます。
1: #!/bin/sh
2: FISHEYE_OPTS="$FISHEYE_OPTS -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xmx64m -Xms64m-Xss180k"
3: FISHEYE_INST=/Users/yusukey/server/fisheye
4: FISHEYE_HOME=/Users/yusukey/server/fisheye-2.0.6


8. mod_jk 設定
8060番ポートに穴を空けたくないので mod_jk を以下のように設定して Apache と連携させました。
worker.properties
worker.fisheye.port=8069
worker.fisheye.host=127.0.0.1
worker.fisheye.type=ajp13

uriworkermap.properties
/fisheye=fisheye
/fisheye/*=fisheye


9. 起動設定(アップグレードの場合は不要)
FishEye は run.sh で簡単に起動できますが、サーバ(再)起動時に手動で起動するのは面倒なので自動起動できるように設定しました。

# cd /Library/StartupItems/
# mkdir fisheye

MacOSX 独自の起動スクリプトを書く
# cd /Library/StartupItems/fisheye
# vi fisheye

#!/bin/sh

##
# fisheye
##

. /etc/rc.common

StartService ()
{
ConsoleMessage "Starting FishEye"
cd /Users/yusukey/server/fisheye-2.4.4/bin
sudo -u yusukey ./start.sh
}

StopService ()
{
ConsoleMessage "Stopping FishEye"
cd /Users/yusukey/server/fisheye-2.4.4/bin
sudo -u yusukey ./stop.sh
}

RestartService ()
{
ConsoleMessage "Restarting FishEye"
cd /Users/yusukey/server/fisheye-2.4.4/bin
sudo -u yusukey ./stop.sh
sudo -u yusukey ./start.sh
}

RunService "$1"

# vi StartupParameters.plist
{
Description = "fisheye";
Provides = ("fisheye");
Requires = ("DirectoryServices");
Uses = ("Disks");
OrderPreference = "None";
}

これで fisheye/StartupParameters.plist の2つのファイルを見て Mac OSX 起動時に勝手に FishEye を起動してくれるようになります。
コマンドラインから操作する際は
# SystemStarter start|stop|restart fisheye
でできます。
標準(エラー)出力は $FISHEYE_INST/var/log に記録されます。

10. robots.txt の設定
FishEye をセットアップしたことで、Google や Yahoo! にコードリポジトリそのものの索引を作ってもらう必要がなくなりましたので以下のように設定して検索対象からはずしました。
FishEye のコードは検索でヒットしても良いので Disallow に入れていません。
User-agent: *
Disallow: /svn/


11. 完了
以上の設定で無事 FishEye をインストールできました。
FishEye: browsing yusuke.homeip.net/

関連記事:
Fisheye 2.3.5 をインストール - 侍ズム
FishEye 2.0.6 のインストールとアップグレード - 侍ズム
Jira 3.13.1 へ FishEye プラグイン 2.3 をインストール
FishEye 1.6.3 のインストール - 侍ズム
Jira をバージョン 3.13.1 へアップデート
Jira をバージョン 3.12.3 へアップデート

タグ :
このエントリーをはてなブックマークに追加   

JIRA 4.2.2 のインストール/アップデート(バージョン 4.2.0 から)

JIRA はAtlassian社のJava ベースのバグトラッキングシステムで、ApacheCodehausでも使われています。
とっつきやすさと高機能をうまく両立しており、また見た目が洗練されている素晴らしい製品です。
オープンソースプロジェクトへは無償ライセンスを提供してくれるので私のプロジェクトでも使っています

今回はアップデートですが、新規インストールの手順もほとんど同じです。

JIRA のバージョンは 4.2 から 4.2.2 になりました。

1. 現行 JIRA のバックアップ、新規インスタンスでインポート
既存 JIRA インスタンスより、
ADMINISTRATION > Import & Export > Backup Data to XML
File name: jirabackup110107.xml > "Backup"

以前はファイル名としてフルパスを指定する必要がありましたが JIRA 4.2.2 からは : $jirahome/export ディレクトリへ書き出されるためファイル名だけを指定すれば良いようになりました。

無事成功すると Data exported to: /Users/yusukey/jirahome/export/jirabackup110107.xml と表示されます。
ここで現行インススタンスはシャットダウンします。

2. Atlassian より最新版をダウンロード
http://www.atlassian.com/software/jira/JIRADownloadCenter.jspaより atlassian-jira-enterprise-4.2.2-b589-standalone.tar.gz をダウンロードしました。b589 という文字が気になりますが、がんばって気にしません。

3. MySQL への接続設定
既存データベースに接続させることもできるけれども、最適なスキーマを作るには新規にデータベースを用意した方が良いとのことです。

$ ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 190447
Server version: 5.1.48 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database jira422 character set utf8;
Query OK, 1 row affected (0.06 sec)

mysql> ^DBye

conf/server.xml 内に以下の様に記述し、コネクションプールを設定&コンテクストパスを"/jira"に設定。
<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false">
<!-- <Resource name="jdbc/JIRADS" auth="Container" type="javax.sql.DataSource"
driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:${catalina.home}/database/jiradb"
username="sa"
password=""

minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000"
maxActive="20"
/>
-->
<Resource name="jdbc/JIRADS" auth="Container" type="javax.sql.DataSource"
username="yusukey"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jira422?useUnicode=true&amp;characterEncoding=UTF8"
validationQuery="SELECT 1"
minEvictableIdleTimeMillis="4000"
timeBetweenEvictionRunsMillis="5000"
maxActive="20" />

validationQueryというのを設定するのがミソです。最近のバージョンではこれを設定していないとJIRAの画面で警告がでます。

4. JIRA のデータソース設定
atlassian-jira/WEB-INF/classes/entityengine.xml を修正
接続 DB を hsql から mysql に、schema-name を削除。
99:    <datasource name="defaultDS" field-type-name="hsql"
100: schema-name="PUBLIC"

99: <datasource name="defaultDS" field-type-name="mysql"
100: <!--削除-->



5. メールセッションの設定
conf/server.xml 内に以下の様に追記してメールセッションを有効にします。
<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false">
<Resource name="mail/jiraMail"
auth="Container"
type="javax.mail.Session"
mail.transport.protocol="smtp"
mail.smtp.host="smtp.gmail.com"
mail.smtp.port="465"
mail.smtp.auth="true"
mail.smtp.user="jira@yusuke.homeip.net"
password="****"
mail.smtp.starttls.enable="true"
mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
/>


また、atlassian-jira/WEB-INF/lib/ 以下の activation-1.1.1.jar と mail-1.4.1.jar を lib/ 直下に移動します。
atlassian-jira-enterprise-4.1$ mv ./atlassian-jira/WEB-INF/lib/activation-1.1.1.jar lib/
atlassian-jira-enterprise-4.1$ mv ./atlassian-jira/WEB-INF/lib/mail-1.4.1.jar lib/


これは Tomcat レベルでメールセッションを設定する場合、クラスパスの階層の兼ね合いから JIRAの WEB-INF/lib 以下に JavaMail 関連のライブラリがあるとメール送信時に NoClassDefFoundError が発生してしまうからです。
JIRA の管理画面で smtp サーバを設定する場合はこの手順は不要です。
しかし、JIRA の管理画面からは Gmail 等 SSL しか受け付けない SMTP サーバを設定する場合必要になります。
参考:
Using Gmail as a JIRA Mail Server
Configuring JIRA to Send SMTP Mail

6. jira.home の設定
atlassian-jira/WEB-INF/classes/jira-application.properties の jira.home に任意のディレクトリを絶対パスで指定します。
jira.home=/Users/yusukey/jirahome


7. 起動パラメータの調整
ヒープサイズ、Permanent領域サイズを bin/setenv.sh では以下のように設定しました。
JVM_MINIMUM_MEMORY="170m"
JVM_MAXIMUM_MEMORY="170m"
JIRA_MAX_PERM_SIZE=160m

8. JIRA の起動
startup.sh とかから起動。

9. データのインポート
JIRA にアクセスし、インポート。
Import Existing Data
File name: /Users/yusukey/jirahome/export/jirabackup110107.xml
エクスポート時はディレクトリが固定されていて入力できないのにインポート時はフルパスで入力する必要がありました。ちょっと不親切です。

10. アップグレード完了!
以上でバージョンアップが完了。

関連記事:
JIRA 4.2 のインストール/アップグレード(バージョン 4.1 から) - 侍ズム
JIRA 4.1 のインストール/アップグレード(バージョン 4.0.2 から) - 侍ズム
JIRA 4.0.0 から JIRA 4.0.2 へのアップグレード - 侍ズム
アトラシアン(Atlassian)製品の価格と購入方法
Atlassian が JIRA4 をリリース - 指名ユーザライセンス制を導入 - 侍ズム
JIRA 3.13.1 へ FishEye プラグイン 2.3 をインストール
JIRA をバージョン 3.13.1 へアップデート - 侍ズム
FishEye 1.6.3 のインストール
JIRA をバージョン 3.12.3 へアップデート

このエントリーをはてなブックマークに追加   

AppStoreが来た! 最速レビュー

手軽にアプリケーションをインストール、アップデートできるAppStoreがMac OSXに来ました。

Angry Birdsもある!!!けど、iPhone版を持っているからいいかな・・。

AppStoreを起動したところ

早速インストールしたのは Twitter for Mac。Tweetie という名前で開発されていたものが Twitter 社に買収されて以降アップデートが止まっていたものです。ようやく公式RTにも対応し、Growlにも対応し、なかなか使い心地は良さそうです。
Jobsがプレゼンしていた通りちょっとクリックするだけでインストールが完了し、Dockにも自動的に登録されます。

Twitter for Mac をインストールしてみた

元々インストールしてある iWork は自動的に認識されました。AppStoreと同時にリリースされると言われていた iWork '11 はまだ出ていないみたい?


あ、TextWranglerやEvernoteは認識されてませんでした。自動認識はApple純正アプリだけ?

タグ :
このエントリーをはてなブックマークに追加   

もう一つのTwitpocalypse:ダイレクトメッセージIDのオーバーフロー



2009年6月12日にステータスIDが符号付き32bitの最大値を超え、一部のアプリケーションで不具合が出るという現象が起こりました。Twitpocalypseと呼ばれています。
TwitterのY2K問題「Twitpocalypse」が実際に起こってしまった件:CloseBox and OpenPod:ITmedia オルタナティブ・ブログ

特に事前に騒がれてはいなかったのですが今日TwitterのダイレクトメッセージのIDが符号付き32bitの最大値(=2147483647、約21億)を超えました。もう一つのTwitpocalypseですね。
DirectMessageJSONImpl getInt() bug - Twitter4J | Google Groups
ダイレクトメッセージのIDのオーバーフロー - Twitter Development Talk - ja | Google Groups
yet another twitterpocalypse - direct message id exceeded 32bit signed integer - Twitter Development Talk | Google Groups

一部のTwitterアプリケーションではダイレクトメッセージの送受信周りに不具合が出ている可能性があります。

Twitter4Jにも影響があり、古いバージョンでは NumberFormatException が発生、バージョン2.1.9ではダイレクトメッセージのIDが-1として取得されてしまいます。
緊急で直して本日バージョン2.1.10をリリースしました。
Twitter4J 2.1.10 をリリース - ダイレクトメッセージIDのオーバーフロー問題に対応 - Twitter4J J | Google Groups
もちろんライブラリを差し替えれば済むという話ではなく、アプリケーション内部で32bitで扱っていたり、データベースのスキーマが32bitになっていたりしたら併せて修正する必要があります。

ダイレクトメッセージのIDは現在のところシーケンシャルに割り振られているようなので、Twitterのサービスが始まって以来実に21億ものダイレクトメッセージが送られたことになります。ツイートに比べてダイレクトメッセ−ジの数はそんなに多くはないと思っていたのですが、結構多いものですね。
そういえば私も最近はちょっとした要件であれば @ で、人に見られないように個別に用件を伝えるときもメールではなくダイレクトメッセージを好んで使っている気がします。
場面によってはメールやIMよりも好まれるコミュニケーションインフラになっていると言えますね。

Twitter4JのメーリングリストではユーザーIDも64bitで扱うべきだという議論が定期的に沸き起ります。
Twitter4J - changing the type of userid from int to long is necessary?
Twitterのアカウントが21億を超える日はいつ来るのでしょうか?単純計算では20年以上先なのですが案外早く来るかもしれませんね。
→ 2013年中に32bitであふれるそうです。 Moving to 64-bit Twitter User IDs

関連記事:
Moving to 64-bit Twitter User IDs | Twitter Developers
Twitter botが作りたい。 - nigredoな日々 ~ arcanum.jpの出張所 ~

このエントリーをはてなブックマークに追加