<< 7月 2011 | Home | 9月 2011 >>

第1回 Twitter API 勉強会/ハッカソン を開催しました #twtr_hack

「第1回 Twitter API 勉強会/ハッカソン」を開催しました。
場所は新橋にある財団法人インターネット協会の会議室。電源もWiFiもプロジェクターもある理想的な環境でした。ありがとうございます!(ただ、ちょっと暑かった・・)

・内容
- API概要解説
- 自己紹介
- LT大会
といったところ。
以下のレポートでめちゃめちゃ詳しく分かりやすく書かれています!
第1回 Twitter API 勉強会/ハッカソン @東京 に参加してきた #twtr_hack - Shinya’s Dairy Report

初回ということで色々と模索しながらの運営となりました。ややグダグダ感がありましたが参加頂いた方、ありがとうございました!
時間の都合上、ハッカソンと題している割には99%勉強会でした。まだAPIを全然触ったことないという方も多くいらっしゃったのでこれはこれで良かったかな?とも思っています。
ハッカソンをしたいとの要望も強いので週末に長めにやってみたいですね。

・スイーツ!
@shin1ogawa さんと @skrb さんがおやつを持ってきてくださいました。仕事の後、小腹が空いたころの自己紹介タイムを

・反省点
- ustreamが不調
ustがブチブチ切れまくりでした。またマスコットキャラをデカデカと被せたまましばらく放送していたというひどい自体。
30人近くの方が使っていて回線が逼迫していたためと思われますが、設定により安定して配信できるかもしれないので要研究。

- 雰囲気
皆さん、なんとなく会場に入ってもらいそのままなんとなく座って貰い、「えっと、・・いま何する時間?」みたいに空気が固まっていました・・。
平日で遅れてくる方も多いので自己紹介は半ばくらいに・・・という主旨だったのですが自己紹介タイム以降一気に空気が溶けたので次回は早い段階で自己紹介をして頂こうかと思います。

・次回
会場、日時共に未定ですがZusaarでイベントだけ作ってあります。
第2回 Twitter API 勉強会/ハッカソン @東京 #twtr_hack on Zusaar
第2回 Twitter API 勉強会/ハッカソン @東京 #twtr_hack 【女性枠】 on Zusaar

関連記事:
第1回 Twitter API 勉強会/ハッカソンに行ってきたよ~! - 算譜王におれはなる!!!!
第1回 Twitter API 勉強会/ハッカソン @東京 に参加してきた #twtr_hack - Shinya’s Dairy Report
第1回 Twitter API 勉強会/ハッカソン @東京 #twtr_hack に参加してきました | 電脳農場
Togetter - 「第1回 Twitter API 勉強会/ハッカソン #twtr_hack」

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

gitのログを調べる方法色々 #git


・コミットハッシュの一覧を取得
$ git log --pretty='%H'

例:

$ git log --pretty='%H'
46297bdb1a1c020e7f19d62e47246f5d2d1fb773
4f48bc190e31b4ec67c8ca99d3ef3cc75493c35a
a24d0e13048b67191515e928fcacd44f821309c5
ce29d10961de4d76a6237e2f8c471e012a11edd3
ddbdc2e3f2c34d1c3be25b4bfaee5d27d2fab110
4a2f80e9941755ab1b3f0a13cd840e97bb25fb23
255f0270ee86afe895b5652ba028dc493b5c7bfb
...


・指定した正規表現にマッチするコミットログを含むコミット一覧
$ git log --grep=[REGEX]

例:
$ git log --grep=TFJ-600
commit fcb99a74709ea2f956ec87a5828b6e64bff57dee
Author: Yusuke Yamamoto <yusuke@mac.com>
Date: Wed Jun 22 00:55:10 2011 +0900

TFJ-600 add updateAccountSettings to AccountMethodsAsync

commit b835dfb6a95bc0ab01035b46f7afc15b2f2e9714
Author: Alessandro Bahgat <ale.bahgat@gmail.com>
Date: Fri Jun 17 17:30:55 2011 +0200

TFJ-600 support /post/account/settings


・指定したファイルが最初にコミットされた日を表示
$ git log --pretty='%ad' [FILENAME] |tail -1

例:
$ git log --pretty='%ad' twitter4j-core/src/main/java/twitter4j/TwitterImpl.java |tail -1
Mon Feb 21 21:31:33 2011 +0900


・指定したファイルが最初にコミットされた日を表示(ファイル名の変更を追う)
$ git log --pretty='%ad' --follow [FILENAME] |tail -1

例:
$ git log --pretty='%ad' --follow twitter4j-core/src/main/java/twitter4j/TwitterImpl.java |tail -1
Wed Jun 20 16:38:46 2007 +0000


・コミットで触れたファイルの追加、削除行数を表示
$ git log --numstat

例:
$ git log --numstat
commit 46297bdb1a1c020e7f19d62e47246f5d2d1fb773
Author: Yusuke Yamamoto <yusuke@mac.com>
Date: Tue Aug 2 19:55:26 2011 +0900

start working on 2.2.5

1 1 twitter4j-appengine/src/main/java/twitter4j/VersionAppEngine.java
1 1 twitter4j-async/src/main/java/twitter4j/VersionAsync.java
1 1 twitter4j-core/src/main/java/twitter4j/Version.java
1 1 twitter4j-httpclient-support/src/main/java/twitter4j/internal/http/alternative/Version.java
1 1 twitter4j-media-support/src/main/java/twitter4j/media/Version.java
1 1 twitter4j-stream/src/main/java/twitter4j/VersionStream.java

commit 4f48bc190e31b4ec67c8ca99d3ef3cc75493c35a
Author: Yusuke Yamamoto <yusuke@mac.com>
Date: Tue Aug 2 18:54:01 2011 +0900
...

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

Mail.app からmac.comのメールが送れない - 解決

一昨日くらいから突然発生。

どうもsmtpサーバとしてsmtp.mac.comではなくsmtp.me.comに接続しに行っているためのような雰囲気。




Mail.appで明示的にsmtp.mac.comを指定しても設定を保存するとsmtp.me.comに変更されてしまう。うーんどうしたものか?

サポートのドキュメントによるとmac.comのアドレスを使うにはsmtp.mac.comを使うべきっぽいんだけど・・・。
MobileMe:他社製メールアプリケーションの設定

続報:
サポートに問い合わせたところ、Mail.appの設定で一度 MobileMe のアカウントを削除してから追加すればokとのこと。確かに直りました。
しかし、MobileMe はiCloudに統合される予定でLionでは正式にサポートされていないとか言われました。ほんと!?

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

iPadスタンドはこれで決まり! MR-IPADST2 #ipad

最近自炊したpdfを読むためにiPadを活用しているので縦向きに立てかけられるスタンドを探してみました。
激しく普及しているiPadなだけあって市場には多数の選択肢があるのですが
・軽い
・かさばらない
・安い
という要件にマッチするものがなかなか見つからず、自作をかんがえていたところ、いいものがありました!

・SANWA SUPPLY iPadスタンド MR-IPADST2


サンワサプライといえば老舗のPC周辺機器メーカー。さすがに良いところをついています。


普段は平べったく持ち運んで・・


簡単に組み立てられる


もはやモバイルデュアルスクリーン!

Amazonのレビューにもある通り安物感があるのはしかたないとして、機能・価格・軽さでは他に勝るスタンドはなさそうです。

iPadの向きは横にも縦にも使えて、さらに角度も3段階調節できます。
またDockコネクタを繋げたまま縦向きに置けるのもうれしいところ。

あ、表示しているpdfはもちろん「プログラミングGROOVY」です!

関連記事:
「プログラミングGROOVY」を頂きました #groovy #twitter4j - 侍ズム
iPad WiFi 64GB 買いました - 侍ズム


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

JIRA 4.4 のインストール/アップデート(バージョン 4.3.4 から) #JIRA #atlassian

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

今回は4.3.4から4.4へのアップグレードをしました、新規インストールの手順もほとんど同じです。
JIRA4.4では色々と改善が加えられており、極力propertiesファイルやxmlファイルを触らなくても良いようになっています。
大幅にアップグレードが簡単になっており順調に進化している様子がうかがえます。

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

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

2. Atlassian より最新版をダウンロード
http://www.atlassian.com/software/jira/JIRADownloadCenter.jspaより atlassian-jira-4.4.tar.gz をダウンロードします。
なぜか今Mac版をダウンロードしようとするとLinux 64bit版を進められていしまう不具合がサイトにあります。Show allをクリックしてJIRA 4.4 Standalone (TAR.GZ Archive)をダウンロードするようにしましょう。普通にtar.gz版が提示されるようになりました。

3. データベースの作成

$ ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17958
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 jira440 character set utf8;
Query OK, 1 row affected (0.11 sec)

mysql> Bye


データベースを作成したら、以前は conf/server.xml 内にコネクションプールの設定をしていましたがこれはJIRAの管理画面から設定するように変更になりました。なのでウチのサーバーでは&コンテクストパスを"/jira"に設定しただけです。
<Context path="/jira" docBase="${catalina.home}/atlassian-jira" reloadable="false">


4. JIRA Configuration Toolによるデータソース、JIRA_HOMEの設定
以前はatlassian-jira/WEB-INF/classes/entityengine.xmlを手動してデータベース接続先を指定していましたが、今回からJIRA Configuration Toolという簡単なGUIで設定をできるようになりました。Configuration Toolはbin/config.shまたはconfig.config.batで起動できます。
または初回起動後にWebUIで設定することもできるそうです。

Configuration Toolの画面

データベース接続の設定内容は $JIRA_HOME/dbconfig.xml に、またJIRA HOMEはatlassian-jira/WEB-INF/classes/jira-application.propertiesに保存され、手動で変更することも可能です。

ちなみにdbconfig.xmlの内容はこんな感じになります。
<?xml version="1.0" encoding="UTF-8"?>

<jira-database-config>
<name>defaultDS</name>
<delegator-name>default</delegator-name>
<database-type>mysql</database-type>
<jdbc-datasource>
<url>jdbc:mysql://localhost:3306/jira440?useUnicode=true&amp;characterEncoding=UTF8</url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<username>yusukey</username>
<password></password>
<pool-size>15</pool-size>
<validation-query>select 1</validation-query>
</jdbc-datasource>
</jira-database-config>


以前はMySQLで文字化け対策としてJDBCURLに useUnicode=true&characterEncoding=UTF8 と指定していましたが、Configuration Toolは自動的にこれらを追加してくれるみたいです。

5. server.xmlの設定
ウチのサーバではApacheをフロントに立ててAJPで接続しているのでAJPコネクタをセットアップします。また使わないHTTPコネクタを無効に設定しました。

<Server port="9005" shutdown="SHUTDOWN">
.
.
.
<!--
<Connector port="8080"
.
.
.

</Engine>
<Connector port="9009"
maxHttpHeaderSize="8192" maxThreads="20" minSpareThreads="20" maxSpareThreads="20" useBodyEncodingForURI="true"
protocol="AJP/1.3" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="600000" disableUploadTimeout="true" />
</Service>
</Server>


6. JIRA の起動
startup.sh より起動。start-jira.sh というスクリプトもあるけど何が違うのかは不明。

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

以前はインポートが進んでいるのか、実は裏でOutOfMemoryErrorが発生しているのかわかりませんでしたが今回からインポートの進捗状況が表示されるようになりました。便利!

インポート中の状況表示

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

9. メールセッションの設定
以前、JIRA の管理画面からは Google Apps 等 SSL しか受け付けない SMTP サーバを設定することはできず、server.xmlにメールセッションというのを設定しておく必要があったのですが今回から(?) PROTOCOL: SECURE_SMTP というのを指定することで SSL で SMTP サーバに接続できるようになりました。

メールサーバの設定画面

関連記事:
JIRA 4.3.4 のインストール/アップデート(バージョン 4.3 から) - 侍ズム
JIRA 4.3 のインストール/アップデート(バージョン 4.2.2 から) - 侍ズム
JIRA 4.2.2 のインストール/アップデート(バージョン 4.2.0 から) - 侍ズム
JIRA Git Plugin のインストール - 侍ズム
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 へアップデート

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

Lionにしたら release:perform プラグインでエラー発生 #maven #gpg #fink #homebrew

Lionをインストール後初めて maven の release プラグインでTwitter4Jの安定バージョンをリリースしようとしたところエラーが発生しました。

Lionにしたせいなのか、pom.xmlをなにか間違えていじってしまったのか最初わかりませんでしたが、gpgがインストールされていないためでした。Lionをインストールしたタイミングでfinkをごっそり削除したためです。

Lion版のfinkではまだgpgがパッケージされていないようなのでhomebrewからインストールして一件落着。
以下検索用ログ。

$ mvn -e release:perform -Dgpg.passphrase=******* -Darguments="-Dgpg.passphrase=****** -Dmaven.test.skip=true"
...
[INFO] [INFO] Building jar: /Users/yusukey/opensource/twitter4j/target/checkout/twitter4j-core/target/twitter4j-core-2.2.4-javadoc.jar
[INFO] [INFO] [gpg:sign {execution: sign-artifacts}]
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [ERROR] BUILD ERROR
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Unable to execute gpg command
[INFO]
[INFO] Embedded error: Error while executing process.
[INFO] error=2, No such file or directory
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] For more information, run Maven with the -e switch
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time: 45 seconds
[INFO] [INFO] Finished at: Tue Aug 02 19:11:43 JST 2011
[INFO] [INFO] Final Memory: 35M/102M
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Maven execution failed, exit code: '1'

[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Maven execution failed, exit code: '1'
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Maven execution failed, exit code: '1'
at org.apache.maven.plugins.release.PerformReleaseMojo.execute(PerformReleaseMojo.java:133)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
... 17 more
Caused by: org.apache.maven.shared.release.ReleaseExecutionException: Maven execution failed, exit code: '1'
at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute(AbstractRunGoalsPhase.java:89)
at org.apache.maven.shared.release.phase.RunPerformGoalsPhase.execute(RunPerformGoalsPhase.java:67)
at org.apache.maven.shared.release.DefaultReleaseManager.perform(DefaultReleaseManager.java:334)
at org.apache.maven.shared.release.DefaultReleaseManager.perform(DefaultReleaseManager.java:282)
at org.apache.maven.shared.release.DefaultReleaseManager.perform(DefaultReleaseManager.java:262)
at org.apache.maven.plugins.release.PerformReleaseMojo.execute(PerformReleaseMojo.java:129)
... 19 more
Caused by: org.apache.maven.shared.release.exec.MavenExecutorException: Maven execution failed, exit code: '1'
at org.apache.maven.shared.release.exec.InvokerMavenExecutor.executeGoals(InvokerMavenExecutor.java:375)
at org.apache.maven.shared.release.exec.InvokerMavenExecutor.executeGoals(InvokerMavenExecutor.java:393)
at org.apache.maven.shared.release.phase.AbstractRunGoalsPhase.execute(AbstractRunGoalsPhase.java:81)
... 24 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 19 seconds
[INFO] Finished at: Tue Aug 02 19:11:43 JST 2011
[INFO] Final Memory: 9M/81M
[INFO] ------------------------------------------------------------------------


fink にはまだLion用のgpgがない。
$ fink install gpg
Password:
Information about 1817 packages read in 0 seconds.
Failed: no package found for specification 'gpg'!


homebrewからgpgをインストール。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
...
/usr/local/lib/libfuse_ino64.2.dylib
==> Installation successful!
Now type: brew help
$ brew install gpg
...
ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-1.4.11.tar.bz2
######################################################################## 100.0%
######################################################################## 100.0%==> Downloading patches
==> Patching
patching file configure.ac
patching file ChangeLog
==> /usr/bin/autoconf
==> ./configure --prefix=/usr/local/Cellar/gnupg/1.4.11 --disable-asm
==> make
==> make check
==> make install
/usr/local/Cellar/gnupg/1.4.11: 52 files, 5.1M, built in 55 seconds


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