Twitter4Jのプロモーション戦略 - たくさん使ってもらうためにしたこと #jjug_b11

  • 3,508 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,508
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
17
Comments
0
Likes
12

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Twitter4Jのプロモーション戦略たくさん使ってもらうためにしたこと Yusuke Yamamoto @yusuke
  • 2. @yusuke#jjug_b11 #q
  • 3. • 2007年5月∼• オープンソース• たくさん使って貰いたい• 営利目的ではない Yusuke Yamamoto @yusuke
  • 4. Yusuke Yamamoto @yusuke
  • 5. Twitter4Jの プロモーション 戦略たくさん使ってもらうためにしたこと Yusuke Yamamoto @yusuke
  • 6. プロモーション Yusuke Yamamoto @yusuke
  • 7. 活動プロモーション Yusuke Yamamoto @yusuke
  • 8. 活動 手段プロモーション 広告出稿 インセンティブ 営業活動 口コミ Yusuke Yamamoto @yusuke
  • 9. 目的 活動 手段 プロモーション 広告出稿 インセンティブ 営業活動 口コミ Yusuke Yamamoto @yusuke
  • 10. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブ 営業活動 口コミ Yusuke Yamamoto @yusuke
  • 11. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブブランド向上 営業活動 口コミ Yusuke Yamamoto @yusuke
  • 12. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブブランド向上 営業活動売上最大化 口コミ Yusuke Yamamoto @yusuke
  • 13. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブブランド向上 営業活動売上最大化 口コミ Yusuke Yamamoto @yusuke
  • 14. 目的 活動 手段知名度向上 プロモーション 広告出稿 インセンティブブランド向上 営業活動ユーザー増加 口コミ Yusuke Yamamoto @yusuke
  • 15. 目的 活動 手段知名度向上 プロモーションブランド向上ユーザー増加 Yusuke Yamamoto @yusuke
  • 16. 目的 活動 手段知名度向上 プロモーションブランド向上ユーザー増加 Yusuke Yamamoto @yusuke
  • 17. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上ユーザー増加 Yusuke Yamamoto @yusuke
  • 18. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上 安心して使えるようにユーザー増加 Yusuke Yamamoto @yusuke
  • 19. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上 安心して使えるようにユーザー増加 簡単に使えるように Yusuke Yamamoto @yusuke
  • 20. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上 安心して使えるようにユーザー増加 簡単に使えるように Yusuke Yamamoto @yusuke
  • 21. 目的 活動 手段知名度向上 プロモーション ユーザー層を広げるブランド向上 安心して使えるようにユーザー増加 簡単に使えるように Yusuke Yamamoto @yusuke
  • 22. Twitter4Jのプロモーション戦略 プロモーション Yusuke Yamamoto @yusuke
  • 23. Twitter4Jのプロモーション戦略 プロモーション ユーザー層を広げる 安心して使えるように 簡単に使えるように Yusuke Yamamoto @yusuke
  • 24. プロモーション Yusuke Yamamoto @yusuke
  • 25. プロモーション• とにかく知って貰う‣ ブログ Yusuke Yamamoto @yusuke
  • 26. プロモーション• とにかく知って貰う‣ ブログ Yusuke Yamamoto @yusuke
  • 27. プロモーション• とにかく知って貰う‣ Twitter Yusuke Yamamoto @yusuke
  • 28. プロモーション• とにかく知って貰う‣ Twitter Yusuke Yamamoto @yusuke
  • 29. プロモーション• ニュース系サイト Yusuke Yamamoto @yusuke
  • 30. プロモーション• ニュース系サイト: javanews.jp Yusuke Yamamoto @yusuke
  • 31. プロモーション• ニュース系サイト: TheServerSide Yusuke Yamamoto @yusuke
  • 32. プロモーション• ニュース系サイト: digg.com Yusuke Yamamoto @yusuke
  • 33. プロモーション• ニュース系サイト: DZone.com Yusuke Yamamoto @yusuke
  • 34. プロモーション• ニュース系サイト: マイナビ Yusuke Yamamoto @yusuke
  • 35. プロモーション•見つけて貰う• 名前を分かりやすく‣ Twitter + Java = Twitter4J Yusuke Yamamoto @yusuke
  • 36. プロモーション• 高いググラビリティ Yusuke Yamamoto @yusuke
  • 37. ユーザー層を広げる Yusuke Yamamoto @yusuke
  • 38. ユーザー層を広げる • 言語 • プラットフォーム Yusuke Yamamoto @yusuke
  • 39. 対象言語を増やす• ユーザー: プログラマ Yusuke Yamamoto @yusuke
  • 40. 対象言語を増やす• ユーザー: プログラマ‣ 手段: 言語を増やす Yusuke Yamamoto @yusuke
  • 41. 対象言語を増やす• ユーザー: プログラマ‣ 手段: 言語を増やす • プログラミング言語 • 自然言語 Yusuke Yamamoto @yusuke
  • 42. 対象言語を増やす {• ユーザー: プログラマ Java‣ 手段: 言語を増やす .Net • プログラミング言語 C Ruby Python • 自然言語 Yusuke Yamamoto @yusuke
  • 43. 対象言語を増やす {• ユーザー: プログラマ Java‣ 手段: 言語を増やす .Net • プログラミング言語 C { 英語 Ruby 中国語 Python • 自然言語 ヒンディー語 ....日本語 Yusuke Yamamoto @yusuke
  • 44. 対象言語を増やす {• ユーザー: プログラマ Java‣ 手段: 言語を増やす .Net • プログラミング言語 C { 英語 Ruby 中国語 Python • 自然言語 ヒンディー語 ....日本語 Yusuke Yamamoto @yusuke
  • 45. 英語対応• マルチリンガルサイト‣ http://twitter4j.org/en/ : 英語‣ http://twitter4j.org/ja/ : 日本語 Yusuke Yamamoto @yusuke
  • 46. 実装•jsp + サーブレットフィルタ• jspのファイル内に英語と日本語を混ぜて書ける $[ja:日本語]$[en:English] Yusuke Yamamoto @yusuke
  • 47. 対象プラットフォームを増やす• プラットフォーム‣ Java • 1.4.x • 5.0 • 6.0 { リリース当時サポート • 7.0 Yusuke Yamamoto @yusuke
  • 48. Java 1.4.xサポートの難しさ•拡張for文なし• Genericsなし• アノテーションなし• StringBuilderなし• Enumなし Yusuke Yamamoto @yusuke
  • 49. Java 1.4.xサポートの難しさ••• 拡張for文なし• Genericsなし アノテーションなし { StringBuilderなし -target jsr14• Enumなし Yusuke Yamamoto @yusuke
  • 50. Java 1.4.xサポートの難しさ•拡張for文なし• Genericsなし• アノテーションなし { -target jsr14•• StringBuilderなし Enumなし {使わない努力 Yusuke Yamamoto @yusuke
  • 51. 参考情報 http://www.slideshare.net/yusukey/java7-8530853Java7シンタックスで レガシーコードを快適メンテナンス Yusuke Yamamoto @yusuke
  • 52. 対象プラットフォームを増やす• プラットフォーム‣ Java • 1.4.x • 5.0 • 6.0 { リリース当時サポート • 7.0 Yusuke Yamamoto @yusuke
  • 53. 対象プラットフォームを増やす• プラットフォーム‣ Java -target jsr14ではJava 7互換性に問題あり • 1.4.x • 5.0 • 6.0 { リリース当時サポート • 7.0 Yusuke Yamamoto @yusuke
  • 54. 対象プラットフォームを増やす• プラットフォーム‣ Java -target jsr14ではJava 7互換性に問題あり • 1.4.x • 5.0 • 6.0 • 7.0 { 次期バージョンのサポート対象 Yusuke Yamamoto @yusuke
  • 55. 対象プラットフォームを増やす• プラットフォーム‣ Java Yusuke Yamamoto @yusuke
  • 56. 対象プラットフォームを増やす• プラットフォーム‣ Java‣ Google App Engine Yusuke Yamamoto @yusuke
  • 57. 対象プラットフォームを増やす• プラットフォーム‣ Java‣ Google App Engine‣ Android Yusuke Yamamoto @yusuke
  • 58. 対象プラットフォームを増やす• プラットフォーム‣ Java‣ Google App Engine‣ Android • 「対応しています」 • テストはしてない! • 報告があり次第対応 Yusuke Yamamoto @yusuke
  • 59. Android対応• AndroidはJavaジャナイ• 両対応ライブラリは注意が必要http://www.slideshare.net/yusukey/android-6595931 Yusuke Yamamoto @yusuke
  • 60. 安心して使える Yusuke Yamamoto @yusuke
  • 61. 使う側から見て安心できるOSS•一般的なライセンス• 開発がアクティブ• コミュニティがアクティブ• ロードマップが明確• プロジェクトに設定しやすい Yusuke Yamamoto @yusuke
  • 62. 一般的なライセンス•OSI公式ライセンス• 緩め(感染性がない)‣リリース当初: BSD‣ 現在: Apache License 2.0 Yusuke Yamamoto @yusuke
  • 63. 開発がアクティブ•頑張る• Twitter APIの追加変更に即対応 Yusuke Yamamoto @yusuke
  • 64. コミュニティがアクティブ• MLで素早く親切丁寧に対応 Yusuke Yamamoto @yusuke
  • 65. コミュニティがアクティブ• MLで素早く親切丁寧に対応No GGRKS! Yusuke Yamamoto @yusuke
  • 66. ロードマップが明確• JIRAで課題、ロードマップ公開 Yusuke Yamamoto @yusuke
  • 67. • プロジェクトに設定しやすい • 古典的なライブラリの使い方 ‣zip/tgzをダウンロード・展開 ‣ jarをlibsディレクトリに配置 ‣ クラスパスに通す Yusuke Yamamoto @yusuke
  • 68. • プロジェクトに設定しやすい • モダンなライブラリの使い方 • プロジェクトの依存を明記 • 対応ツール • Maven / Ivy / Grape / Gradle / Buildr / SBT • Maven Central Repoよりダウンロード • 自動的にクラスパスに追加 Yusuke Yamamoto @yusuke
  • 69. 簡単に使える Yusuke Yamamoto @yusuke
  • 70. 簡単に使えるOSS•サンプルコードが充実• ドキュメントが充実• ライブラリ依存関係• シンプルなパッケージ構成• 容易なトラブルシューティング Yusuke Yamamoto @yusuke
  • 71. サンプルコードが充実•全メソッドにサンプルコード• .cmd / .sh で簡単に実行できる Yusuke Yamamoto @yusuke
  • 72. ドキュメント• 多くのOSSで問題‣ ドキュメンテーションのメンテナン スコスト Yusuke Yamamoto @yusuke
  • 73. ドキュメント• Twitter4Jのフォーカス‣ 簡単なサンプルコード例‣ 設定方法‣ 開発に参加する方法 Yusuke Yamamoto @yusuke
  • 74. ライブラリ依存関係• 依存関係があると敷居が高い‣ クラスパスが分からない開発者 • NoClassDefFoundError!‣ 他の依存ライブラリと衝突 Yusuke Yamamoto @yusuke
  • 75. ライブラリ依存関係• Twitter4Jはライブラリ依存なし‣ twitter4j-core.jarをクラスパスに通す だけ Yusuke Yamamoto @yusuke
  • 76. ライブラリ依存関係• がんばって自作した‣ OAuth‣ BASE64‣ HttpClient Yusuke Yamamoto @yusuke
  • 77. ライブラリ依存関係• パッケージを変更して内蔵‣ org.json.* → twitter4j.interna.org.json.* Yusuke Yamamoto @yusuke
  • 78. ライブラリ依存関係• あれば自動的に使う‣ ロギング • Log4j / Commons Logging • SLF4J • LogBack • JUL(java.util.logging.*) Yusuke Yamamoto @yusuke
  • 79. シンプルなパッケージ構成•import twitter4j.* で利用可能• 内部実装は twitter4j.internal.* に 配置 Yusuke Yamamoto @yusuke
  • 80. 容易なトラブルシューティング • 例外スタックトレースの工夫 ‣ バージョンを織り込むtwitter4j.TwitterRuntimeException: A JSONArraytext must start with [ at 2 [character 3 line1]Relevant discussions can be on the Internet at: http://www.google.co.jp/search?q=610d24cf or http://www.google.co.jp/search?q=03587c2fTwitterException{exceptionCode=[610d24cf-03587c2f2efc4644-56189413], statusCode=-1, retryAfter=-1,rateLimitStatus=null,featureSpecificRateLimitStatus=null,version=2.2.5} Yusuke Yamamoto @yusuke
  • 81. 容易なトラブルシューティング • 例外スタックトレースの工夫 ‣ 検索用コードを織り込むtwitter4j.TwitterRuntimeException: A JSONArraytext must start with [ at 2 [character 3 line1]Relevant discussions can be on the Internet at:http://www.google.co.jp/search?q=29f6cd28http://www.google.co.jp/search?q=00ded0d8TwitterException{exceptionCode=[610d24cf-03587c2f2efc4644-56189413], statusCode=-1, retryAfter=-1,rateLimitStatus=null,featureSpecificRateLimitStatus=null,version=2.2.5} Yusuke Yamamoto @yusuke
  • 82. 容易なトラブルシューティング• 例外スタックトレースの工夫‣ 検索用コードを織り込む Yusuke Yamamoto @yusuke
  • 83. #q Yusuke Yamamoto @yusuke
  • 84. プロモーション ユーザー層を広げるブログ 言語Twitter プラットフォームニュースサイトググラビリティの高い名称安心して使える 簡単に使える一般的なライセンス サンプルコードが充実開発がアクティブ ドキュメントコミュニティがアクティブ ライブラリ依存関係ロードマップが明確 シンプルなパッケージ構成Maven対応 容易なトラブルシューティング
  • 85. #ありがとうございました